簡體   English   中英

PSExec觸發的Windows Powershell腳本在完成運行時不會終止Powershell進程

[英]Windows powershell script triggered by PSExec is not killing Powershell process when it finishes running

我需要在幾台需要提升權限的Windows 2008服務器上完成一系列任務,因此,我不得不創建一系列計划任務,這些任務通過psexec運行。 由於它們必須按順序運行,因此我發現並修改了一個Powershell腳本,該腳本會“停滯”直到在遠程計算機上完成計划的任務。 我的問題是,當我在遠程計算機上使用psexec啟動腳本時,一旦腳本完成運行(由控制台輸出中的消息指示),PowerShell.exe不會干凈退出,而是會掛出並保留整個處理。 延遲腳本退出后,我需要Powershell退出,但是即使最后有一個exit關鍵字,它也保留在內存中並阻止進程完成。 我對Powershell並沒有非常的經驗,所以我會附上我的腳本,以防我在其中做一些愚蠢的事情:

while($true) {
$status = schtasks /query /tn "AutoDeploy"| select-string -patt "AutoDeploy"
if($status.tostring().substring(64,7) -eq "Running") { "Waiting for task to complete..." } else { break }
start-sleep -s 5
}
"Task complete."
exit

預先感謝您的任何見解。

這對我有用(使用不同的任務名稱)並且不會掛起psexec:

$taskName = "AutoDeploy"
while (1)
{
    $stat = schtasks /query /tn $taskName | 
                Select-String "$taskName.*?\s(\w+)\s*$" | 
                Foreach {$_.Matches[0].Groups[1].value}
    if ($stat -ne 'Running')
    {
        "Task completed"
        break
    }
    "Waiting for task to complete"
    Start-Sleep 5
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM