Как выполнить сценарий в другом сценарии с другими учетными данными, кроме администратора

#powershell

Вопрос:

У меня есть сценарий powershell, который запускается от имени администратора, проблема в том, что часть сценария должна запускаться от имени другого стандартного пользователя. Моя идея заключалась в следующем: создать второй скрипт, который будет запускаться внутри первого, с параметрами, позволяющими запускать его от имени другого пользователя

Вот что я попробовал:

 $username = 'domainusername'
$password = 'password'

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
Start-Process powershell 'C:Softwarescript_executed_as_user.ps1' -Credential $credential
 

но он выполняется неправильно (без сообщения об ошибке)
у кого-нибудь есть ключ к разгадке ?

Ответ №1:

Путем рефакторинга вашей Start-Process строки мы можем увидеть сообщение об ошибке:

 Start-Process powershell -ArgumentList "-noexit", "-command amp;{C:Softwarescript_executed_as_user.ps1}" -Credential $credential
 

это открывает новое окно и заставляет его оставаться открытым.

Я получаю окно с сообщением

C:Softwarescript_executed_as_user.ps1 : Термин ‘C:Softwarescript_executed_as_user.ps1″ не распознается как имя командлета, функции, файла сценария или действующей программы. Проверьте правильность написания имени или, если был указан путь, убедитесь, что он правильный, и повторите попытку.

Проблема в том, что вам не хватает на вашем пути:

 C:Softwarescript_executed_as_user.ps1
 

должно быть

 C:Softwarescript_executed_as_user.ps1