Windows セットアップへのカスタム スクリプトの追加
Windows セットアップ スクリプト
Setupcomplete.cmd と ErrorHandler.cmd は、Windows セットアップの処理中または処理後に実行されるカスタム スクリプトです。 これを使用すると、アプリケーションをインストールしたり、cscript/wscript スクリプトを使用して他のタスクを実行したりすることができます。
- %WINDIR%\Setup\Scripts\SetupComplete.cmd: このスクリプトはローカル システムのアクセス許可で実行され、デスクトップが表示された直後に開始されます。 この設定は、OEM プロダクト キーを使用する場合は無効になります。ただし、Enterprise エディションおよび Windows Server オペレーティング システムの場合を除きます。
- %WINDIR%\Setup\Scripts\ErrorHandler.cmd: このスクリプトは、セットアップで致命的なエラーが発生した場合に自動的に実行されます。 ローカル システムのアクセス許可を使用して実行されます。
セットアップの完了後にスクリプトを実行する (SetupComplete.cmd)
演算の順序
Windows がインストールされると、ログオン画面が表示される前に、%WINDIR%\Setup\Scripts\ ディレクトリ内で SetupComplete.cmd ファイルが Windows セットアップによって検索されます。
SetupComplete.cmd ファイルが見つかると、このスクリプトが実行されます。 Windows セットアップによって、操作が C:\Windows\Panther\UnattendGC\Setupact.log ファイルに記録されます。
セットアップでは、SetupComplete.cmd の実行後にスクリプトの終了コードやエラー レベルの確認は行いません。
警告
システムを再起動して SetupComplete.cmd を再開することはできません。 shutdown -r などのコマンドを追加して、システムを再起動しないでください。 これにより、システムは異常な状態になります。
インストール中にコンピューターがドメインに参加する場合、ドメインで定義されているグループ ポリシーは、Setupcomplete.cmd が完了するまでコンピューターに適用されません。 これは、グループ ポリシー構成アクティビティがスクリプトに干渉しないようにするためです。
Windows セットアップで致命的なエラーが発生した場合にスクリプトを実行する (ErrorHandler.cmd)
ErrorHandler.cmd は、多数のシステムを同時にインストールする場合に便利です。 これにより、Windows セットアップ中にエラーが発生した場合に検出できます。 その場合、エラーの原因に対処するカスタム コマンドまたはアクションを含むスクリプトが自動的に実行されます。
Windows セットアップ中に致命的なエラーが発生し、インストールを完了できない場合、ディレクトリ %WINDIR%\Setup\Scripts\ErrorHandler.cmd 内のコマンド スクリプトが検索されます。 スクリプトが見つかったかどうかに応じて、2 つのアクションのいずれかが実行されます。
- スクリプトが見つからない場合は、エラー テキストと共にダイアログ ボックスが表示されます。 ユーザーはダイアログ ボックスを閉じて Windows セットアップを終了する必要があります。
- スクリプトが見つかった場合、スクリプトは同期的に実行されます。 ダイアログ ボックスまたはエラー テキストは表示されません。 ErrorHandler.cmd スクリプトの実行が完了すると、Windows セットアップが終了します。
Windows セットアップのフェーズに応じて、以前のバージョンのオペレーティング システムや Windows プレインストール環境 (Windows PE) など、Windows セットアップが実行された環境にコンピューターが戻ります。
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 セットアップ コマンド ライン オプション」を参照してください。
Unattend を使用してスクリプトを実行する
これらの設定のいずれかを使用して Unattend.xml ファイルを作成し、Windows セットアップの処理中に実行します。 これは OEM プロダクト キーと共に使用できます。
同時に開始できるサービスまたはコマンドを実行するには、RunAsynchronousCommands を使用してください。
これらの設定の一部はユーザー コンテキストで実行されます。他の設定は、構成パスに応じてシステム コンテキストで実行されます。
Windows セットアップの開始時にスクリプトを実行するには、Microsoft-Windows-Setup\RunAsynchronousCommand または RunSynchronousCommand を追加します。 これは、ハード ディスク パーティションを設定する場合に役立ちます。
PC が監査モードに入ったときに実行されるスクリプトを実行するには、auditUser 構成パスに Microsoft-Windows-Deployment\RunAsynchronousCommand または RunSynchronousCommand を追加します。 これは、アプリの自動インストールやテストのようなタスクに役立ちます。
Out of Box Experience (OOBE) の後、デスクトップが表示される前に実行するには、Microsoft-Windows-Shell-Setup\LogonCommands\AsynchronousCommand または FirstLogonCommands\SynchronousCommand を追加します。 これは、ユーザーが言語を選択した後に、言語固有のアプリまたはコンテンツを設定する場合に特に役立ちます。
長いスクリプトを使用するとユーザーが迅速にスタート画面にアクセスできなくなるため、これらのスクリプトは慎重に使用してください。 製品版の Windows の場合、これらのスクリプトには追加の制限が適用されます。 詳細については、OEM パートナー センターのライセンスとポリシーに関するガイダンスを参照してください。
Note
FirstLogonCommands を使用してスクリプトを追加すると、Ctrl+Shift+F3 キーを使用して監査モードで起動した場合でも、これは次の起動時にトリガーされます。 これらのスクリプトをトリガーせずに監査モードで起動するには、設定に Microsoft-Windows-Deployment\Reseal\Mode = Audit を追加します。
関連トピック
Windows セットアップ テクニカル リファレンスカスタム イメージの展開監査モードまたは OOBE での Windows のブートWindows セットアップ中の Windows へのデバイス ドライバーの追加