$vmrun = "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" $vmx = "E:\vm\coal-dev-debian\coal-dev-debian.vmx" $vmuser = "root" $vmpass = "abc@123" $composeFile = "/root/coal-env/dev/docker-compose.yaml" & $vmrun -T ws start $vmx nogui $count = 0 $vmStartTime = Get-Date while ($true) { $count++ if ($count -gt 10) { Write-Host "Timeout" Throw "等待虚拟机IP超时 $count 次 $vmx" } $ip = & $vmrun -T ws getGuestIPAddress $vmx if ($?) { Write-Host "IP: $ip" break } else { Write-Host "Waiting for IP..." Start-Sleep -Seconds 5 } } $vmEndTime = Get-Date $vmStartSeconds = [math]::Round(($vmEndTime - $vmStartTime).TotalSeconds, 2) Write-Host "VM start time: $vmStartSeconds seconds" Write-Host "start docker compose in vm...." & $vmrun -gu $vmuser -gp $vmpass -T ws runProgramInGuest $vmx /usr/bin/docker compose -f $composeFile up -d if ($?) { Write-Host "docker compose started" } else { Write-Host "docker compose start failed" }