我需要在远程计算机上运行一个长时间运行的程序。目前只要PS会话存在,exe就会运行。如果会话被删除,exe停止。即使PS会话丢失,我怎样才能运行exe
$mmoVMTemplate = "Machine"
for($i=1;$i -le 80; $i++)
{
$mmoVM = $mmoVMTemplate + $i
.\InstallWinRMCertAzureVM.ps1 -SubscriptionName 'my subscription' -ServiceName $mmoVM -Name $mmoVM
$secPassword = ConvertTo-SecureString 'password' -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential('username', $secPassword)
$uri = Get-AzureWinRMUri -ServiceName $mmoVM -Name $mmoVM
$session = New-PSSession -ConnectionUri $uri -Credential $credential
Invoke-Command -Session $session -ScriptBlock {Set-Location "C:\MyProgram\"
start-process -FilePath 'C:\MyProgram\TestTool.exe'}
Disconnect-PSSession -Session $session
Write-Host $mmoVM
}
答案 0 :(得分:1)
使用参数-Wait start-process -FilePath 'C:\MyProgram\TestTool.exe' -Wait
因此,invoke命令会一直等到Test Tool.exe完成。