如何在Powershell上运行远程程序以实现长时间运行的程序

时间:2014-08-24 17:29:16

标签: powershell powershell-remoting

我需要在远程计算机上运行一个长时间运行的程序。目前只要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


}

1 个答案:

答案 0 :(得分:1)

使用参数-Wait start-process -FilePath 'C:\MyProgram\TestTool.exe' -Wait 因此,invoke命令会一直等到Test Tool.exe完成。