編集

編集

Windows セットアップ中にフェーズ 3 の開始からフェーズ 5 の開始までの間のどこかで cmd スクリプトを実行するにはどうすればよいですか? ハードウェア検出が開始される前に、ハードウェアに依存するファイルを USB ドライブから C: ドライブにコピーする必要があります。WinPE で実行される wmic を使用してハードウェアを判別します。

編集: 興味のある方は...

Boot.Wim\Index2 の場合:

  1. setup.exe を usetup.exe に変更します
  2. Boot.Wim-Index:2-Root\Windows\system32\startnet.cmd を変更します。
    wpeinit
    start /w usetup.exe /unattend:yourfile.xml /noreboot
    do what you want here
    wpeutil reboot
    

これを使用してファイルを操作します。Windows 内で作業する必要がある場合は、スクリプトを \windows\setup\scripts\SetupComplete.cmd ファイルに追加します。

SetupComplete.cmd は非表示で実行されるため、介入なしで実行されるようにしてください。

答え1

これによればMicrosoft Technet の記事次の手順を実行すると、フェーズ 3 の最後にカスタム スクリプトを実行できます。

Windows セットアップが完了した後、%WINDIR%\Setup\Scripts\SetupComplete.cmd ファイルにコマンドを追加することで、さらにカスタマイズを行うことができます。このファイルを使用すると、ユーザーがログオンする前に、追加のアプリケーションをインストールしたり、カスタム Windows スクリプト (cscript/wscript) を実行したり、システムにその他の変更を加えたりすることができます。

Setupcomplete.cmd ファイル内のコマンドは、ローカル システム権限で実行されます。

Windows がインストールされた後、ログオン画面が表示される前に、Windows セットアップは %WINDIR%\Setup\Scripts\ ディレクトリで SetupComplete.cmd ファイルを検索します。

SetupComplete.cmd ファイルが見つかった場合は、そのファイルが実行されます。それ以外の場合は、インストールは通常どおり続行されます。Windows セットアップは、Setupact.log ファイルにアクションを記録します。

システムを再起動して SetupComplete.cmd の実行を再開することはできません。

セットアップでは、SetupComplete.cmd を実行した後、スクリプト内の終了コードやエラー レベルは検証されません。

Setupcomplete.cmd の機能は、RunSynchronous コマンドおよび RunAsynchronous コマンドとは異なります。Setupcomplete.cmd は Windows セットアップが完了した後に実行されますが、RunSynchronous コマンドおよび RunAsynchronous コマンドは Windows セットアップ中に実行されます。

したがって、実行したいスクリプトは何でも、単に「SetupComplete.cmd」ファイルに追加し、Windows イメージ内の %WINDIR%\Setup\Scripts に配置する必要があります。インストール プロセスでは、そこにスクリプトが見つかる限り、自動的に実行されます。

(コピー&ペーストで申し訳ありませんが、それ以外にはあまり意味がありません。)

編集

注意:コピーするファイルがハードウェアドライバファイルである場合は、Windows PEイメージまたはWindowsイメージ自体に追加するだけでよく、スクリプトを気にする必要はありません。Microsoft Technet の記事やり方が書かれています。(ちょっと長すぎるのでコピー/貼り付けはしません。)

その他の一般的なファイル (画像、ドキュメントなど) の場合は、Windows イメージ内の任意のフォルダーに追加することもできます。DSIM を使用してこれを行う方法は次のとおりです。Microsoft Technet の記事この記事は Windows 8/8.1 ライブラリにありますが、Windows 7 でも手順は同じです。

ファイルのコピーのみを行うスクリプトは避けてください (スクリプトがそれだけを行う場合)。ファイルまたはドライバーをイメージに追加すれば、何らかの理由でスクリプトが失敗した場合に何が起こるかを心配する必要がなくなります。

編集2

以下のコメントによると、WinPE中にハードウェアを決定するためにWMICを使用しているとのことですが、この詳細に従ってWinPEにスクリプトを追加できるかもしれません。Microsoft Technet の記事ファイルをコピーするにはまだ早すぎると思いますが、確実に知るにはテストする必要があります。WinPE イメージにネットワーク インターフェイスのドライバーを追加したことはわかっていますが、それはあなたが行っていることとは少し異なります。

しかし最良の選択肢は、Microsoft Deployment Toolkit (MDT) を使用して、ハードウェア プロファイルやコンピューターのメーカー/モデルに基づいてドライバーを設定することだと思います。これはまさにこのタイプのシナリオ向けに設計されており、いつどこにどのドライバーをインストールするかをカスタマイズできます。これは Windows AIK を使用するだけの場合よりも少し複雑になる可能性がありますが、ドライバーのニーズがこれほど具体的であれば、より良い結果が得られると思います。

私が初めて MDT を使い始めたときに従ったチュートリアルは次のとおりです。

  1. WindowsNetworking.com - AIK を使用した Vista の導入- これは Vista 向けですが、ほとんどの手順は Vista 7 でも同じです。AIK の知識に応じて、MDT について説明しているパート 24 にスキップできます。
  2. WindowsNetworking.com - AIK を使用して 7 を展開する- これは、前のリンクの続きのようなもので、最初のリンクの詳細をすべて説明しているわけではなく、Vista AIK と 7 AIK の間の変更点についてのみ説明しています。MDT を使用したドライバーの管理に関するセクションは、パート 23 から始まります。パート 25 と 26 が最も重要だと思います。

カスタム スクリプトは実行したい時点では実行できないと思うので、スクリプトを使用するよりも、展開のためのより良いオプションになると思います。これがお役に立てば幸いです。

関連情報