使用PowerShell远程运行ec2config.exe -sysprep

时间:2014-09-26 22:53:00

标签: powershell amazon-ec2

我正在完成从实例创建AMI的过程,因为我需要在关闭机器之前运行sysprep,然后从中创建AMI。

麻烦就是我使用PowerShell做的事情,它不会执行sysprep。

这就是我的invoke-comment现在的样子

$securePassword = ConvertTo-SecureString $newAdminPassword -AsPlainText -force
$credential = new-object -typename System.Management.Automation.PsCredential(".\Administrator",$securePassword)
Invoke-Command -ComputerName $hostName -ScriptBlock { Start-Process "C:\Program Files\Amazon\Ec2ConfigService\Ec2Config.exe" -ArgumentList '-sysprep' -NoNewWindow -PassThru  -Verbose -R} -Credential $credential

它不运行此命令,只打印出此输出

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName                    PSComputerName
-------  ------    -----      ----- -----   ------     -- -----------                    --------------
      7       1      252        108     3     0.00   2556 Ec2Config                      10.1.7.254

知道这里有什么问题吗?

1 个答案:

答案 0 :(得分:1)

嗯,那个输出表明它正在运行该命令。 -Passthru Start-Process参数将Process对象传递给管道,它不会等待进程终止。

我想问题是您希望命令在进程完成时等待,以便您可以执行下一个作业,即重新启动计算机并对其进行映像。如果您想等待该过程完成,您可能会发现只使用invoke-expression&运算符来运行Ec2Config.exe命令更容易。