將自訂指令碼新增至 Windows 安裝程式
Windows 安裝程式腳本
Setupcomplete.cmd 和 ErrorHandler.cmd 是在 Windows 安裝程式期間或之後執行的自訂腳本。 它們可用來安裝應用程式,或使用 cscript/wscript 腳本執行其他工作。
- %WINDIR%\Setup\Scripts\SetupComplete.cmd:此腳本會以本機系統許可權執行,並在使用者看到桌面之後立即啟動。 使用 OEM 產品金鑰時會停用此設定,但企業版和 Windows Server 作業系統除外。
- %WINDIR%\Setup\Scripts\ErrorHandler.cmd:此腳本會在安裝程式遇到嚴重錯誤時自動執行。 它會以本機系統許可權執行。
在安裝程式完成之後執行腳本, (SetupComplete.cmd)
作業順序
安裝 Windows 之後,但在登入畫面出現之前,Windows 安裝程式會在%WINDIR%\Setup\Scripts\目錄中搜尋SetupComplete.cmd檔案。
如果找到 SetupComplete.cmd 檔案,Windows 安裝程式會執行腳本。 Windows 安裝程式會在 C:\Windows\Panther\UnattendGC\Setupact.log 檔案中記錄動作。
安裝程式在執行 SetupComplete.cmd之後,不會驗證腳本中的任何結束代碼或錯誤層級。
警告
您無法重新開機系統並繼續執行 SetupComplete.cmd。 您不應該藉由新增 shutdown -r之類的命令來重新開機系統。 這會讓系統處於不良狀態。
如果電腦在安裝期間加入網域,則在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。
其中有些設定會在使用者內容中執行,其他設定則會根據組態階段在系統內容中執行。
新增 Microsoft-Windows-Setup\RunAsynchronousCommand 或 RunSynchronousCommand ,以在 Windows 安裝程式啟動時執行腳本。 這可能有助於設定硬碟磁碟分割。
將Microsoft-Windows-Deployment\RunAsynchronousCommand 或 RunSynchronousCommand新增至auditUser組態傳遞,以執行電腦進入稽核模式時執行的腳本。 這對自動化應用程式安裝或測試等工作很有説明。
新增 Microsoft-Windows-Shell-Setup\LogonCommands\AsynchronousCommand 或 FirstLogonCommands\SynchronousCommand, 以在全新體驗 (OOBE) 之後執行,但在使用者看到桌面之前。 這在使用者已選取其語言之後,設定特定語言的應用程式或內容特別有用。
請謹慎使用這些腳本,因為長腳本可防止使用者快速到達 [開始] 畫面。 對於 Windows 的零售版本,其他限制適用于這些腳本。 如需詳細資訊,請參閱 OEM 合作夥伴中心的授權和原則指引。
注意
當您使用 FirstLogonCommands 新增腳本時,即使使用Ctrl+Shift+F3開機進入稽核模式,也會在下一次開機時觸發腳本。 若要開機到稽核模式而不觸發這些腳本,請新增設定:Microsoft-Windows-Deployment\Reseal\Mode = Audit。
相關主題
Windows 安裝程式技術參考:在 Windows 安裝程式期間將自訂映射開機 Windows 部署到稽核模式或 OOBE將設備磁碟機新增至 Windows