1

我目前正在等待来宾操作系统获得 IP 地址,但它在 Windows 完全重新启动之前(即在 Windows 登录并且所有启动服务都运行之前)获得了 IP 地址。

do
{
    Start-Sleep -Seconds 5
    Write-Host "Waiting for VM reboot"
    $VMInfo = Get-VM $VMName
    $GuestIP = $VMInfo.Guest.IPAddress
}
until ($GuestIP -eq $IP)

有人知道等待更好的属性吗?

4

1 回答 1

2

您可以改用等待工具。实际上,当 VC 知道来宾 IP 时,vmtools(以及其他大多数东西)已经启动了。所以你的方法看起来不错,假设你的客人有静态 IP。如果您的客人从 DHCP 获取其 IP,则 IP 总是有可能发生变化。在这种情况下,您可以确保 $guestIP 不为空,而不是将其与预期值进行比较:

until ($GuestIP)

不用说,如果您需要某些特定的部件,最安全的做法是检查该部件。也许gwmi win32_service或者invoke-vmscript如果检查需要一些额外的复杂性。

于 2014-03-12T15:16:49.647 回答