我正在編寫一個Powershell腳本來完成一大堆事情,完成後它將作爲計劃任務運行。出於這個原因,我希望能夠在開始運行腳本時檢查舊實例是否仍然存在,並在舊腳本存在時將其殺死。監控powershell腳本掛起的實例
我想我會用這樣的:
$process = Get_Process | $name
$process.kill
但如何以簡單的方式$ name變量?
有沒有人有更好的建議? 最好的問候, Gísli
我正在編寫一個Powershell腳本來完成一大堆事情,完成後它將作爲計劃任務運行。出於這個原因,我希望能夠在開始運行腳本時檢查舊實例是否仍然存在,並在舊腳本存在時將其殺死。監控powershell腳本掛起的實例
我想我會用這樣的:
$process = Get_Process | $name
$process.kill
但如何以簡單的方式$ name變量?
有沒有人有更好的建議? 最好的問候, Gísli
可以在計劃任務配置窗口做到這一點。這些設置取決於您正在使用的操作系統。
編輯:也就是說,你可以配置一段時間後(即當你的下一個開始時)被殺死的任務。
謝謝。這可能是一個選擇,我必須與我的導師覈對。我正在重寫一個他用perl編寫的腳本,他在那裏有一個函數來殺死進程。這可能是因爲它必須在多個平臺上運行。 – Gisli
爲什麼你需要得到的名字? Get-Process
返回高保真Process
對象,您可以直接對其進行操作。
要獲得某個特定名稱的進程,請使用$n = Get-Process notepad
,然後執行$n.kill()
來殺死它。如果您確實需要再次檢查名稱,請執行$n.Name
。要查看您可以使用的屬性和方法,嘗試$n | get-member
並確保您閱讀手冊:http://technet.microsoft.com/en-us/library/dd347630.aspx
你確定沒有辦法阻止腳本掛起嗎?我會專注於創建可靠的腳本,而不是訴諸於殺死進程。 – Rynant
@Ryant - 當然我正在努力做到這一點,但我需要這個作爲我的應用程序的安全網,因爲它將在我無權訪問的服務器上運行。這只是爲了確保我不累積大量流程並消耗服務器資源。 – Gisli