Запустите SysPrep удаленно с помощью команд из Azure PowerShell - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу запустить несколько команд для удаленного выполнения Sysprep через powershell.

Итак, сначала я создал сеанс, используя это:

$UserName = "IPAddress\username"
$Password = ConvertTo-SecureString "password" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($UserName, $Password)
$s = New-PSSession -ComputerName IPAddress -Credential $psCred

Затем назначьте переменные, используемые в Sysprep:

$sysprep = 'C:\Windows\System32\Sysprep\Sysprep.exe'
$arg = '/generalize /oobe /shutdown /quiet'
$sysprep += " $arg"

И, наконец, запустите это:

Invoke-Command -Session $s -ScriptBlock {$sysprep}

Когда я запускаю последнюю команду, на самом деле ничего не происходит. Но в блоке сценария вместо $sysprep, если я даю какую-либо другую команду, например запуск / остановку службы, она дает какой-то ответ. Но команды SysPrep, похоже, не работают. Может кто-нибудь подсказать, что я делаю неправильно.

1 Ответ

0 голосов
/ 03 сентября 2018

Вы пытаетесь вызвать объект scriptblock для запуска, пока $sysprep является строкой . Вы можете использовать для этого командлет Start-Process. Вот так:

$sysprep = 'C:\Windows\System32\Sysprep\Sysprep.exe'
$arg = '/generalize /oobe /shutdown /quiet'
Invoke-Command -Session $s -ScriptBlock {param($sysprep,$arg) Start-Process -FilePath $sysprep -ArgumentList $arg} -ArgumentList $sysprep,$arg
...