2017-01-30 4 views
2

승격 된 셸에서 암호를 묻는 다른 사용자로 실행되는 PowerShell 콘솔을 시작할 바탕 화면을 클릭하는 아이콘이 필요합니다. 여기승격 된 다른 사용자 셸을 실행하는 데 PowerShell 바탕 화면 아이콘

내가 시도 것입니다 : 나는 아이콘 이름 something.ps1을 클릭 모두

#1 
Start-Process powershell.exe -Credential "domain\user" -verb runAs 

#2 
Start-Process powershell.exe -Credential "domain\user" -NoNewWindow -ArgumentList "Start-Process powershell.exe -Verb runAs" 

#3 
$username = "domain\user" 
$password = 'the real deal password' 

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force 
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword 
Start-Process powershell.exe -Credential $credential -verb runAs 

이 오류와 함께 콘솔의 플래시를 제공하고 닫습니다.

일시 중지를 추가하여 오류를 잡으려고했지만 아이콘을 클릭해도 창이 일시 중지되지 않습니다. 그러나 이들 중 하나가 ISE에서 실행되면 whoami을 실행하면 오류가없고 콘솔이 다른 사용자 컨텍스트에 제대로 표시됩니다.

명령이 ISE에서 작동하지만 바탕 화면에서 작동하지 않기 때문에 UAC에 문제가 있다고 생각합니까? 또는이 희망찬 생각을 클릭 할 수있는 아이콘입니까? -Verb runAs-Credential이 (-Verb-Credential 다른 파라미터 세트에) 함께 작동하지 않기 때문에

+0

'try, catch, finally'로 감싸고 호스트 인쇄 명령을'catch'에 넣고'finally'에서 멈 춥니 다. 당신은 당신의 예외를 얻을 것이다. 예외로 인해 일시 중지되기 전에 스레드 실행이 중지되므로 일시 중지가 작동하지 않습니다. – ArtK

+0

Sysinternal의'psexec.exe'는 다른 사용자로 실행하려고 할 때 가장 좋은 방법입니다. – BenH

답변

3

스크립트가 실패합니다. here과 유사한 문제를 발견 할 수 있습니다.

당신이 PowerShell을 자체에서이 작업을 수행하려는 경우는, 이런 식으로 뭔가를 시도 할 수 있지만 UAC 프롬프트 (승리 10에서 확인)이 대한 표시됩니다 :

$securePassword = ConvertTo-SecureString '[email protected]' -AsPlainText -Force 
$credential = New-Object System.Management.Automation.PSCredential "username", $securePassword 
Start-Process powershell -Credential $credential -ArgumentList '-noprofile -command &{ Start-Process powershell -verb runas }' 

또는 당신은 psexec을 사용할 수 있습니다 상승 액세스 용 매개 변수는 -h입니다.

1

글쎄, 실제로 작동하지 않는 이유는 무엇입니까? try/catch 문을 사용하지 않아도 작동하지 않습니다. 또한 ps1 파일을 가리키는 바로 가기를 만들어야했습니다.

script.ps1 : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "& pathToPs1\script.ps1"

try{ 
    Start-Process powershell.exe -Credential "domain\user" -ArgumentList “Start-Process powershell.exe -Verb runAs” 
} Catch { 
    Write-host "Hello" 
} 

바로 가기 포인트 (에 시작 : C:\Windows\System32\WindowsPowerShell\v1.0)이 두 커플 모두와

이 근무하고 -Credential-Verb 그건 문제가 아니었다 함께 작동합니까 - 그것을 시도 ISE에서는 오류가 없습니다. UAC의 휴식 시간 인 것처럼 보이며 바탕 화면에서 링크를 클릭하는 것으로 보입니다. 그러나 이것은 해상도가 어떻게 작동하는지에 대한 숙고 된 추측 일뿐입니다.

귀엽지는 않지만 다른 사람에게 도움이되기를 바랍니다. 내 대답에 대한

신용은 try/catch 문을 제안뿐만 아니라, trycatch 당신 덕분에 오류 this linkthis link 및 주석의 조합이었다.