运行 通过 Azure powershell 命令远程执行 SysPrep

Run SysPrep remotely through commands from Azure powershell

我想 运行 一些命令通过 powershell 远程执行 Sysprep。

所以首先我使用这个创建了一个会话:

$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}

当我 运行 最后一个命令时,脚本块中没有任何事情发生 actually.But,而不是 $sysprep,如果我给 start/stop 之类的任何其他命令提供服务,它给出了一些回应。但是 SysPrep 命令似乎 work.Can 没有人提出我做错了什么。

您正在尝试将 脚本块对象 调用到 运行,而 $sysprep 是一个 字符串 。您可能希望为此使用 Start-Process cmdlet。像这样:

$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