將自訂指令碼新增至 Windows 安裝程式

Windows 安裝程式腳本

Setupcomplete.cmdErrorHandler.cmd 是在 Windows 安裝程式期間或之後執行的自訂腳本。 它們可用來安裝應用程式,或使用 cscript/wscript 腳本執行其他工作。

  • %WINDIR%\Setup\Scripts\SetupComplete.cmd:此腳本會以本機系統許可權執行,並在使用者看到桌面之後立即啟動。 使用 OEM 產品金鑰時會停用此設定,但企業版和 Windows Server 作業系統除外。
  • %WINDIR%\Setup\Scripts\ErrorHandler.cmd:此腳本會在安裝程式遇到嚴重錯誤時自動執行。 它會以本機系統許可權執行。

在安裝程式完成之後執行腳本, (SetupComplete.cmd)

作業順序

  1. 安裝 Windows 之後,但在登入畫面出現之前,Windows 安裝程式會在%WINDIR%\Setup\Scripts\目錄中搜尋SetupComplete.cmd檔案。

  2. 如果找到 SetupComplete.cmd 檔案,Windows 安裝程式會執行腳本。 Windows 安裝程式會在 C:\Windows\Panther\UnattendGC\Setupact.log 檔案中記錄動作。

    安裝程式在執行 SetupComplete.cmd之後,不會驗證腳本中的任何結束代碼或錯誤層級。

    警告

    您無法重新開機系統並繼續執行 SetupComplete.cmd。 您不應該藉由新增 shutdown -r之類的命令來重新開機系統。 這會讓系統處於不良狀態。

  3. 如果電腦在安裝期間加入網域,則在Setupcomplete.cmd完成之前,不會將定義在網域中定義的群組原則套用至電腦。 這是為了確保群組原則設定活動不會干擾腳本。

如果 Windows 安裝程式遇到嚴重錯誤, (ErrorHandler.cmd) 執行腳本

當您同時安裝許多系統時,ErrorHandler.cmd 很有用。 這可協助您偵測 Windows 安裝程式期間發生錯誤的時間。 執行時,安裝程式會自動執行腳本,其中包含自訂命令或動作,以解決錯誤的原因。

如果 Windows 安裝程式發生嚴重錯誤且無法完成安裝,Windows 安裝程式會在下列目錄中搜尋命令腳本: %WINDIR%\Setup\Scripts\ErrorHandler.cmd。 視是否找到腳本而定,會發生兩個動作的其中一個。

  • 如果找不到指令碼,則會顯示包含錯誤文字的對話方塊。 使用者必須在 Windows 安裝程式結束之前關閉對話方塊。
  • 如果找到指令碼,則指令碼會同步執行。 不會顯示對話方塊或錯誤文字。 ErrorHandler.cmd腳本執行完成之後,Windows 安裝程式就會結束。

根據 Windows 安裝程式的階段,電腦會返回執行 Windows 安裝程式的環境,例如舊版作業系統或 Windows 預先安裝環境 (,例如 Windows PE) 。

當 Windows 安裝程式發生一個以上的錯誤並執行一次以上 ErrorHandler.cmd 指令碼時,可能會有更多情況。 開發 ErrorHandler.cmd的程式碼時,請確定您可以多次執行此腳本。

使用 ErrorHandler.cmd

若要使用 ErrorHandler.cmd,您可以執行下列其中一項:

  • 掛接映射,並在 %WINDIR%\Setup\Scripts\ErrorHandler.cmd中將其新增至映射。 取消掛接映像。

    -或-

  • ErrorHandler.cmd 新增至暫存檔位置 (例如 C:\Temp\ErrorHandler.cmd) ,然後使用 /m 選項執行 Windows 安裝程式。

    Setup /m:C:\Temp
    

    若要深入瞭解,請參閱 Windows 安裝程式Command-Line選項

使用自動執行腳本

使用其中一個設定在 Windows 安裝程式期間執行,建立Unattend.xml檔案。 這可以搭配 OEM 產品金鑰使用。

若要執行可以同時啟動的服務或命令,請使用 RunAsynchronousCommands。

其中有些設定會在使用者內容中執行,其他設定則會根據組態階段在系統內容中執行。

Windows 安裝程式技術參考:在 Windows 安裝程式期間將自訂映射開機 Windows 部署到稽核模式或 OOBE將設備磁碟機新增至 Windows