【发布时间】:2020-02-12 22:13:02
【问题描述】:
我正在构建一个执行以下操作的脚本
- 使用 Powershell 远程从 Hyper-V 连接到新创建的 VM 模板
- 更改 IP
- 更改计算机名
- 重新启动计算机名称才能生效
- 安装 AD 角色
- 创建域
大多数步骤似乎都有效,我只卡在第 4 步。
我使用以下行。
Invoke-Command -FilePath C:\Support\createdomain.ps1 -VMName TEMPLATE-DC
它要求提供 VM 的凭据,然后继续执行这些操作。直到我重新启动。
Restart-Computer -Wait -For PowerShell -Timeout 300 -Delay 2
我还尝试了以下操作,这会重新启动 VM,但也会停止 Powershell 会话并且不运行 Start Sleep
Restart-Computer -Force
Start-Sleep -s 300
所以我的问题是:如何在远程机器上运行 powershell 脚本,在这种情况下是虚拟机。并重新启动并等待它重新启动以恢复脚本?
这是我得到的错误
The background process reported an error with the following message: "The Hyper-V socket target process has ended.".
+ CategoryInfo : OperationStopped: (TEMPLATE-DC:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : JobFailure
+ PSComputerName : TEMPLATE-DC
【问题讨论】:
-
您正在更改系统的 IP 地址和名称。不确定您希望如何与该虚拟机保持连接。
-
我使用 VMName 参数连接到 powershell,因此它连接到 vmname 而不是计算机名称或 IP 地址。事实上,VM 的虚拟交换机在其自己的网络中是私有的。
标签: powershell reboot