Мне нужен значок, чтобы щелкнуть на рабочем столе, который запустит консоль PowerShell, запущенную как другой пользователь, запрашивающий пароль, в увеличенной оболочке.Значок рабочего стола PowerShell для запуска повышенной пользовательской оболочки
Вот что я пробовал:
#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
Все это, когда я нажимаю на значок с именем something.ps1 вызывает вспышку консоли с ошибкой и закрывается.
Я добавил паузу, чтобы попытаться поймать ошибку, но окно не остановится, щелкнув значок. Но когда какой-либо из них выполнялся в ISE, ошибки нет, и консоль должным образом появляется в контексте других пользователей при запуске whoami
.
Я предполагаю, что проблема в UAC, поскольку команды работают в ISE, но не с рабочего стола? Или это кликабельный значок для этого принятия желаемого за действительное?
Оберните его в 'try, catch, finally', поместите команды печати на ходу в' catch' и остановитесь в 'finally'. Вы получите свое исключение. Ваша пауза не работала, потому что исключение убивает выполнение нити, прежде чем приостанавливать его. – ArtK
'psexec.exe' из пакета Sysinternal обычно является лучшим выбором при попытке запуска в качестве других пользователей. – BenH