Упаковщик скриптов Powershell для работы в качестве администратора - PullRequest
0 голосов
/ 15 мая 2019

Я пишу скрипт для развертывания через групповую политику.Сценарий удаляет ряд параметров реестра, чтобы исправить проблему, возникшую у нас при сборке 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 
}

Мне просто нужен способ выполнения кода во втором сценарии, но я не могу понять, как это сделать, так какне ведет себя, как ожидалось.Извините, я уверен, что упускаю что-то очевидное.

...