Sysprep適用とファイルの関連付け

インフラ
infra-windows-sysrep-eyecatch

仕事がらPCのイメージ作成を実施する事があります。ここで言うイメージというのはPCのバックアップファイルのようなものを指します。

作成したイメージはPCの固有のイメージですのでたくさんのWindowsPCがある場合は一般化という作業を実施する必要があります。

この一般化Sysprepには少々厄介な部分がありましたのでこのSysprep適用とあわせて記載します。

Sysprepの実行

Sysprepの実行は簡単にできます。イメージを取得したいPCのコマンドラインを管理者で立ち上げて以下のフォルダまで移動します。

C:\Windows\System32\Sysprep

Sysprepを以下のコマンドで実行するとSysprepの適用が実施されます。

sysprep.exe /oobe /generalize /shutdown /unattend:.\Unattend.xml

このUnattend.xmlについては必要な設定が記述されたファイルだと思って下さい。適用するには前記述したADKをインストールしたPCで作成します。

▼このコマンドを実行するとPCが自動的にシャットダウンされるのでそこまで実行したPCのイメージの取得作業を実施します。
Sysprep実行

イメージの取得作業

次にWindowsPEをつかってイメージの取得作業を実施します。USB、CDなどをつかってPEブートを実施します。画面のようなDos窓が開いたら以下のコマンドでイメージを取得する事ができます。

Dism /Capture-Image /ImageFile:.\win8.wim /CaptureDir:C:\ /Name:Win8

保存したい場所などのディレクトリに移動などして実施してください。

私はnet use コマンドでネットワーク越しにイメージを取得します。

ネットワークのドライバが足らない場合はこの時にdrvloadコマンドも実行できますので必要なinfファイルを追加する事もできます。イメージ取得にはある程度時間がかかりますので100%になったら以下のコマンドでPCを再起動します。

wpeutil reboot

これで一般化されたPCの出来上がりです。Unattendxmlの内容を変更することでホスト名やドメイン参加、ユーザの追加、デスクトップの配置や状況なども全ユーザに適用できたりします。

ファイルとの関連付け

しかしここで問題が発生します。

何かというとファイルの関連付けがWindows標準にすべて戻ってしまいます。これがどういう問題なのか?というとAdobeReaderなどのソフトをインストールした場合にPDFという拡張子であるファイルはすべてWindows標準ソフトリーダで開かれてしまいます。

手動で関連付けをAdobeReaderに変更する事もできますが、せっかくインストールしたソフトで開くことができないという事象に悩まされるはめになります。

そこでこのファイルの関連付けをどう修正すればよいのか?という事になりますが結構ややこしいです。

まず*.pdfという拡張子が何で実行されるかという事を調べる必要があります。

▼ファイルの関連付けについては色々な記事がありますので割愛しますが、画像のようにassoc やftypeなどのコマンドで調べてみて下さい。
コマンド

この関連付けをどのようにイメージに反映させるのかというとこれも関連付けを記述したXMLファイルを作成して適用という流れになります。以下にAdobeReaderとGoogleChroomをインストールした後にPDFファイルとhttpを開く際場合のXMLのサンプルを記載します。

<br />
&lt;?xml version=”1.0″ encoding=”UTF-8″?&gt;<br />
&lt;DefaultAssociations&gt;<br />
&lt;Association Identifier=”.pdf” ProgId=”AcroExch.Document.11″ ApplicationName=”Adobe Reader” /&gt;<br />
&lt;Association Identifier=”http” ProgId=”ChromeHTML” ApplicationName=”Google Chrome” /&gt;<br />
&lt;Association Identifier=”https” ProgId=”ChromeHTML” ApplicationName=”Google Chrome” /&gt;<br />
&lt;/DefaultAssociations&gt;<br />

以下のコマンドでエクスポートもできるのでSysyprepを適用させる前のPCで実行したものを読み込むという流れがスムーズです。 ⇒ C:\Windows\system32>Dism /Online /Export-DefaultAppAssociations:C:\util2\AppAssoc.xml

イメージ読み込みの流れ

このXMLファイルをイメージに読み込みする必要があります。イメージの読み込みですが簡単にですが流れを記載します。

  1. WindowsADKをインストールしたPCでSysprepを実行したWIMイメージの読み込み
  2. 展開したマウントファイルへ関連付けXMLの適用
  3. 展開マウントファイルを再度WIMファイルへ変更

ADKについては別の記事に記載したので割愛します。使用したコマンドだけ記述しておきます。

dism /mount-image /imagefile:”C:\Temp\Win8.wim” /index:1 /mountdir:”C:\Temp\winpe_amd64\mount”

Dism.exe /Image:C:\Temp\winpe_amd64\mount /Import-DefaultAppAssociations:C:\util2\AppAssoc.xml

dism /unmount-wim /mountdir:”C:\Temp\winpe_amd64\mount” /commit

最後に

これでおそらくSysprepが適用されたPCでも正常に関連付けがされているはずです。

ご不明な点がありましたら弊社までお気軽にお問合せください。