如何在 Windows 10 上自動重新啟動崩潰的應用程式

要在 Windows 10 上自動重新啟動崩潰的應用程序,可以使用 PowerShell 監視器和工作排程器。監視器會檢查經典桌面應用程式的進程;當應用程式退出時,腳本會等待 60 秒,然後重新開啟它。

此操作會在應用程式退出後重新啟動套用,包括正常關閉。但它無法恢復未保存的工作或修復崩潰原因。任務計劃程序的「如果任務失敗」選項會重試失敗的計劃任務;它不會持續監控應用進程,因此本指南使用了一個小型監視腳本。

開始之前

請使用此方法運行穩定的傳統桌面程式.exe。 Microsoft Store 應用程式和啟動器會切換到其他輔助進程的程式可能無法可靠地追蹤。如果應用程式本身包含重新啟動或恢復選項,請使用該選項。

設定重啟監視器

  1. 1. 找到應用程式的可執行檔。

    從“開始”功能表,右鍵單擊應用程式快捷方式,然後選擇“更多”>“開啟檔案位置”(如果可用)。右鍵點選捷徑,選擇「屬性」 ,然後複製「目標」中的路徑。請使用實際的可執行文件,而不是.lnk快捷方式、更新程式或崩潰報告程式。

    檔案總管視窗顯示已選取位於「程式檔案」資料夾中的 ExampleApp.exe。
    選擇程式的主可執行檔。
  2. 2. 建立並儲存 PowerShell 腳本

    打開記事本,貼上這段腳本,並將範例路徑替換為您複製的路徑。路徑必須包含在單引號內。

    記事本顯示用於啟動、等待和延遲應用程式進程的 PowerShell 命令。
    腳本會檢查該進程,等待其退出,然後在延遲一段時間後再次嘗試。
    $exe = 'C:\Path\To\ExampleApp.exe'
    $processName = [System.IO.Path]::GetFileNameWithoutExtension($exe)
    $workingDirectory = Split-Path -Path $exe -Parent
    $delaySeconds = 60
    
    while ($true) {
        $process = Get-Process -Name $processName -ErrorAction SilentlyContinue |
            Select-Object -First 1
    
        if (-not $process) {
            try {
                $process = Start-Process -FilePath $exe -WorkingDirectory $workingDirectory -PassThru -ErrorAction Stop
            } catch {
                Start-Sleep -Seconds $delaySeconds
                continue
            }
        }
    
        Wait-Process -Id $process.Id -ErrorAction SilentlyContinue
        Start-Sleep -Seconds $delaySeconds
    }

    Start-Process開啟可執行文件,同時Wait-Process等待其停止運作。這種延遲有助於防止應用程式頻繁崩潰時快速重新啟動。請參閱 Microsoft 的Start-Process和Wait-Process文件。

    在記事本中,選擇“文件”>“另存為”,選擇“文檔”,命名文件Restart-App.ps1,並將“儲存類型”設為“所有文件”,這樣記事本就不會新增其他內容.txt。

    Windows「另存為」對話方塊設定為將 Restart-App.ps1 儲存到「文件」中,並選取所有檔案。
    將腳本儲存為 .ps1 副檔名,然後選擇「所有檔案」。
  3. 3. 建立一個在登入時執行的任務

    在“開始”功能表中搜尋“任務計劃程序”並打開它。選擇“創建任務”。在「一般」標籤上,輸入名稱,例如「重新啟動 ExampleApp」,然後選擇「僅在使用者登入時執行」,這樣應用程式視窗就會在您的桌面會話中開啟。

    在「任務規劃程式常規」標籤中,選擇「僅在使用者登入時執行」作為重新啟動任務的選項。
    將任務保留在已登入使用者的桌面工作階段中。

    開啟「觸發器」標籤,選擇「新建」,將「開始任務」設定為「登入時」,如果出現提示,請選擇您的帳戶,然後按一下「確定」 。這遵循 Microsoft 文件中關於任務排程器中登入觸發器和可執行操作的規格模式。

    任務排程器觸發器標籤設定為在目前 Windows 使用者登入時啟動。
    選擇使用該應用程式的帳戶的登入方式。
  4. 4. 配置操作並防止重複監視

    在「操作」中,選擇「新建」,然後選擇「啟動程式」 。在“程式/腳本”powershell.exe中輸入“ ”。在「新增參數」中,使用下列腳本路徑,並將其變更為您的 Windows 使用者資料夾:YourName

    -NoProfile -WindowStyle Hidden -ExecutionPolicy RemoteSigned -File "C:\Users\YourName\Documents\Restart-App.ps1"

    RemoteSigned此策略僅適用於目前 PowerShell 進程,不會變更電腦範圍的政策。組織的策略仍然可能阻止腳本執行。請參閱 Microsoft 的PowerShell 執行策略指南。

    在應用程式視窗旁邊,開啟「任務計畫程式」新操作對話框,程式為 powershell.exe,參數為 Restart-App.ps1。
    透過 Windows PowerShell 執行已儲存的監視器。

    在「設定」中,將「如果任務已在運行,則套用下列規則:不要啟動新實例」設定為「如果任務已在運行,則套用下列規則」。這樣,如果您手動執行任務,就不會啟動第二個監視器。按一下“確定”儲存設定。

    在「任務計劃程序設定」標籤中,選擇「不啟動新實例」。
    允許運行一個監視任務副本。
  5. 5. 測試重新啟動功能,並在需要時停止重新啟動。

    在任務計劃程式庫中,選擇任務並點選「執行」。如果應用程式已打開,監視器會等待其運行。保存您的工作,關閉應用程序,並等待大約一分鐘;它應該會重新打開。由於每次退出都會觸發重啟,因此正常關閉應用程式也是一種有用的測試方法。

    任務計劃程式庫顯示已選取的重新啟動任務,應用程式視窗旁邊有「執行」和「停用」按鈕。
    執行該任務進行測試,或停用該任務以停止將來自動重新啟動。

    若要停止目前監視程序,請以滑鼠右鍵按一下該任務並選擇「結束」。選擇「停用」可阻止其在下次登入時啟動,或在停用後刪除該任務。

故障排除

  • 應用程式無法開啟:請檢查兩個路徑,並確認檔案以 . 結尾.ps1,而不是.ps1.txt. 結尾。請先在 PowerShell 視窗中執行腳本以查看是否有錯誤。請勿違反工作或學校政策;請諮詢管理員。
  • 應用程式會開啟兩次:進程名稱通常與執行檔名稱相同(不含空格.exe)。如果不同,請將其設定$processName為實際的進程名稱。編輯腳本前,請先停止該任務。
  • 應用程式持續崩潰:請在排查應用程式故障期間停用該任務。監視器只能重新啟動應用;它無法修復缺少的元件或應用錯誤,無法恢復未儲存的文檔,也無法可靠地處理應用程式商店中那些會切換到其他進程的應用程式和啟動器。

留下評論

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher Studio 將照片轉換成繪畫、鉛筆素描或卡通。學習如何選擇效果、調整預覽、保存作品。

使用音訊標識符詳細分析和識別音訊文件

使用音訊標識符詳細分析和識別音訊文件

了解音訊標識符揭示的位元率、編碼器和標籤訊息,其傳統工作流程如何運作,以及當前哪些工具可以檢查文件或識別歌曲。

我的照片索引:一款適用於 Windows 的開源照片管理器。

我的照片索引:一款適用於 Windows 的開源照片管理器。

My Photo Index 是一款舊版 Windows 相片目錄管理工具,用於標記、評分和瀏覽本機影像。請查看其文件功能、相容性限制以及一個維護良好的替代方案。

使用屬性變更器變更檔案和資料夾屬性、日期和時間

使用屬性變更器變更檔案和資料夾屬性、日期和時間

學習如何使用屬性變更器安全地編輯 Windows 檔案屬性和時間戳記、更新 JPEG EXIF 照片日期以及預覽批次變更。

如何在 Windows 10 中為每個顯示器設定不同的桌布

如何在 Windows 10 中為每個顯示器設定不同的桌布

為每個 Windows 10 顯示器設定單獨的壁紙,識別顯示器,調整影像適應度,並解決缺少顯示器選擇的問題。

pViewer:一款極簡圖像檢視器和漫畫閱讀器

pViewer:一款極簡圖像檢視器和漫畫閱讀器

了解 pViewer 的功能、照片和漫畫模式的工作原理、應該下載哪個 Windows 版本,以及舊版和重寫版之間的差異。

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

設定 Windows 7 或 8 投影片放映,建立一個小型 VBScript 快捷方式,並指派鍵盤熱鍵來切換到下一張桌布。

NeoDownloader:設定參數並從網站批量下載圖片

NeoDownloader:設定參數並從網站批量下載圖片

學習如何建立 NeoDownloader 專案、選擇爬取範圍、設定映像過濾器和目標位置,以及查看批次下載。

XnConvert:批次應用特效和轉換影像格式

XnConvert:批次應用特效和轉換影像格式

使用 XnConvert 可以批次套用特效、調整照片大小和轉換影像格式。選擇輸出設定、預覽編輯效果並保護您的原始文件。

使用 ManicTime 追蹤工作時間和電腦使用情況

使用 ManicTime 追蹤工作時間和電腦使用情況

了解 ManicTime 如何追蹤應用程式使用情況、活躍時間和空閒時間以及文檔,然後將您的活動歷史記錄轉換為專案標籤和時間表。