從任務計劃程序運行時腳本無法啟動 exe

從任務計劃程序運行時腳本無法啟動 exe

我有一個非常奇怪的問題。
powershell腳本是啟動一個exe檔。當手動運行(右鍵單擊>運行)或透過 powershell 控制台中的腳本呼叫運行時,它工作正常。但是,當我在任務規劃程式中建立任務時,它基本上會建立一個具有正確名稱的進程,但該進程是空的並且不執行任何操作。它不需要CPU,程式不會在工作列中列出,並且程式視窗不會開啟。該腳本基本上只包含:

Start-Process -FilePath <Path to exe>

我也嘗試過:

& <path to file>

但這也不起作用。此任務使用參數啟動程式 powershell.exe

-ExecutionPolicy Unrestricted -Command "& C:\Scripts\MyScript.ps1"

我以管理員用戶身份運行它,並嘗試檢查“以最高權限運行”。這也沒有幫助。

當我執行任務然後手動啟動程式時,會產生兩個具有相同名稱但不同句柄的獨立進程。通常該程式只能執行一個實例。

這顯然是任務計劃程序的問題,因為如果手動運行該腳本可以正常工作。有人能幫我一下嗎?

答案1

我遇到了聽起來非常相似的問題。通常,我遇到此問題的應用程式會開啟並開始處理檔案佇列。在這種情況下,正如您所描述的,當從計劃任務運行時它將完全空閒。最終起作用的是從計劃任務調用的批次文件,然後調用啟動 .exe 的 .ps1。

批次檔中的行如下所示,是從排程任務中呼叫的,其設定與您的描述相符。我的設定中的 LaunchProcess.ps1 包含 exe 的標準啟動進程。我沒有使用過這個過去的 2008r2 伺服器,但我想它可以一直工作到目前。

批次檔檔名 = restartProcess.bat

SET ThisScriptsDirectory=%~dp0 SET PowerShellScriptPath=%ThisScriptsDirectory%LaunchProcess.ps1 PowerShell -NoProfile -ExecutionPolicy Bypass -command "& {start-process PowerShell -ArgumentList '-NoProfile -ExecutionPolic ByPowerShell -Polic ByPowerell -"%"%"運行方式}";

相關內容