Я пишу скрипт для развертывания через групповую политику.Сценарий удаляет ряд параметров реестра, чтобы исправить проблему, возникшую у нас при сборке Windows.Сценарий должен запускаться от имени администратора, поскольку ключи в ульях, для удаления которых требуются права администратора, необходимы.
Поскольку GP запускает сценарии powershell как зарегистрированный пользователь, я смотрю на создание оболочки, которая будет читать зашифрованныепароль для учетной записи локального пользователя, а затем запустите сценарий с ним.
Мой сценарий может прочитать учетные данные, но я получаю ошибки при выполнении команды запуска процесса.Если я попытаюсь сослаться на скрипт, он выдаст ошибку, что путь не существует, даже если вы можете сбросить содержимое, используя cat.
Затем я попытался прочитать его в переменную и запустить powershell с помощью -командный аргумент.Если я сделаю это, я получу ошибку.
"Start-Process: эта команда не может быть запущена из-за ошибки: параметр неверен"
Я понимаю, что мне нужно заключить код в фигурные скобки, но я не уверен, какэто делается, так как объединение их в строку не работает.
if($connected) {
$Encrypted = Get-Content <PATH TO PASSWORD FILE>
$pass = ConvertTo-SecureString -String $Encrypted -Key (1..16)
$user = <MY ADMIN ACCOUNT>
$Credential = New-Object System.Management.Automation.PSCredential $user, $pass
echo $(pwd)
echo $(cat <PATH TO SCRIPT>)
$code = $( cat <PATH TO SCRIPT> )
#Invoke-Command -ScriptBlock {$code} -Credential $Credential
#Start-Process powershell.exe <PATH TO SCRIPT> -Credential $Credential
Start-Process powershell.exe -ArgumentList "-command $code" -Credential $Credential
}
Мне просто нужен способ выполнения кода во втором сценарии, но я не могу понять, как это сделать, так какне ведет себя, как ожидалось.Извините, я уверен, что упускаю что-то очевидное.