ページ

2015年4月19日日曜日

Windows7SP1 zero-touch Deployment その3 応答ファイル作成

Windows7SP1 zero-touch Deployment  その3

 

Volumeライセンスでの大量展開は他にかなりのドキュメントがありますのでそちらをご参照ください。
またここではWindows7を扱います。WindowsXP、Windows8~は扱っていません。


ここの続きです。




1. テクニシャンコンピュータの構築


1.6. 無人応答ファイルの作成


WindowsPEが無事起動しPXEbootがひと段落したら、Windowsセットアップの自動化の胆、無人応答ファイルです。

Microsoftのドキュメント的にはこのあたりになります。

・Windows Vista
チュートリアル : 単純な応答ファイルを構築する
https://technet.microsoft.com/ja-jp/library/cc749317(v=ws.10).aspx


・Windows7
展開ツールのチュートリアル
https://technet.microsoft.com/ja-jp/library/dd744287(v=ws.10).aspx

Windows SIM で応答ファイルを操作する
https://technet.microsoft.com/ja-jp/library/dd799285(v=ws.10).aspx


このドキュメントを読んで、はいはいそうですか、なるほどなるほど、となる人は天才ですね。
この一連のドキュメントは不要でしょう。

大半の人は意味不明ですのでとりあえず説明を入れておきます。




1.Windows システム イメージ マネージャーを起動して各種、設定する



テクニシャンコンピュータにこの1.でWindowsAIKをインストールしていますので、スタートメニューから「Windows システム イメージ マネージャー」を起動します。

設定は2つ。
1つ目は「配布共有」。
この1.の共有フォルダを指定します。「C:\share」ですね。「ファイル」-「配布共有の選択(D)...」を選択し、フォルダ選択ダイアログでC:\shareを選んでおきます。

2つ目は下のWindowsイメージペイン。
ここでひと手間必要です。
Windows7SP1のインストールメディア(DVDのことね)の中身をこのテクニシャンコンピュータにコピーしておきます。
例えばCDドライブが E: なら


Robocopy  E:  C:\share\W7SP1\ /MIR



とかです。XCOPYでもOK。ドラッグアンドドロップはやったことないけど。

コピーできたら、「ファイル」-「Windows イメージの選択(I)...」を選択し、フォルダ選択ダイアログで「C:\share\W7SP1\sources\install_Windows 7 PROFESSIONAL.clg」を選んでおきます。

こんな感じになればOK。「$OEM$ Folders」等は勝手に出てきます。







2.無人インストール用の応答ファイルサンプル



おもむろにこのページを開き、無人インストール用応答ファイルサンプルをローカルにダウンロードします。
Windows 7 の Autounattend (自動無人)インストール - Yukinori's blog - Site Home - TechNet Blogs
http://blogs.technet.com/b/yukinork/archive/2012/04/26/windows-7-autounattend.aspx

ブログの指示の通り、unattend.xml / UTF-8 で保存します。
このunattend.xmlをWindows システム イメージ マネージャーで開きます。「ファイル」-「応答ファイルを開く(O)...」を選択し、unattend.xmlを選択します。

そうです。
いきなりゼロから応答ファイルを作ろうとしても理解に時間がかかるので、サンプルを変更しながら作ります。




3.応答ファイルをカスタマイズして保存する。



応答ファイルペインに7つのツリーが出ているはずです。
「1 windowsPE」から「7 oobeSystem」です。
この7つの説明はここではしません。簡単に言うとWindows7をインストールするときに踏むステップです。「3 generalize」「5 auditSystem」は通常踏みません。Sysprepとか監査モードとかWindowsの大量展開、みたいな場合のみです。

ツリーの「+」をすべて開くとなんとなくでも記述されていることがわかると思います。


不要となるのは、
「1 windowsPE」-「x86_Microsoft-Windows-Setup_neutral」-「DiskConfiguration」
以下です。




この部分は1.4.で作成した通り、WindowsPE3.1をPXEで起動させ、DISKPARTバッチファイルとCreatePartitions.txtで済ます部分です。
なのでツリーの「DiskConfiguration」を削除します。

逆に必要となるのは、
「1 windowsPE」-「x86_Microsoft-Windows-Setup_neutral」-「UserData」
以下です。
DELLのWindowsインストールメディアに含まれている「install.wim」には、Starter、Homebasic、Homepremium、Professional、Ultimateが内包されています。

実際に /get-wiminfo すると、


C:\Program Files\Windows AIK\Tools\PETools>dism /get-wiminfo /wimfile:C:\share\W7SP1_PROFESSIONAL\sources\install.wim

展開イメージのサービスと管理ツール
バージョン: 6.1.7600.16385

イメージの詳細: C:\share\W7SP1_PROFESSIONAL\sources\install.wim

インデックス: 1
名前: Windows 7 STARTER
説明: Windows 7 STARTER
サイズ: 8,072,604,598 バイト

インデックス: 2
名前: Windows 7 HOMEBASIC
説明: Windows 7 HOMEBASIC
サイズ: 8,125,226,573 バイト

インデックス: 3
名前: Windows 7 HOMEPREMIUM
説明: Windows 7 HOMEPREMIUM
サイズ: 8,566,642,846 バイト

インデックス: 4
名前: Windows 7 PROFESSIONAL
説明: Windows 7 PROFESSIONAL
サイズ: 8,447,825,392 バイト

インデックス: 5
名前: Windows 7 ULTIMATE
説明: Windows 7 ULTIMATE
サイズ: 8,607,765,255 バイト

操作は正常に完了しました。


と、5つのイメージが含まれていることがわかります。

WIMファイルにある5つのWindowsイメージを選択するのは「UserData」-「ProductKey」です。
Windowsイメージペインを展開して右クリック、「WindowsPEに設定を追加」を選択します。


「WindowsPEに設定を追加」しか選べませんが。
あとは右のプロパティペインで、「Key」にプロダクトキーを入力します。


プロダクトキー自身はこれもDELLのWindowsインストールメディアに含まれています。


C:\Program Files\Windows AIK\Tools\PETools>notepad C:\share\W7SP1_PROFESSIONAL\sources\$OEM$\$$\setup\scripts\slp.cmd


slp.cmdにはプロダクトキーが書かれていますので、そのままコピペしてください。
「Key」プロパティの下の「WillShowUI」にも「OnError」を入れておきます。


ついでに言うと、同じscriptsフォルダにある、unattend.xmlにはDELLのプリインストール設定が書かれていますので、内容を(できればWindows システム イメージ マネージャーを2個起動して)コピペするとDELLのロゴなんかがコンピュータのシステムに出てきます。




あとは
「4 specialize」-「x86_Microsoft-Windows-Shell-Setup_neutral」
の「ComputerName」がコメ印ですので任意のコンピュータ名を入れておきます。

「7 oobeSystem」にあるユーザーアカウントを編集して完了です。


もしもうちょっと応答ファイルを編集したいな、という場合でもこれで1度編集を終わり、Windowsの無人インストールを完了できるかどうか試したほうがいいです。
今後、無人インストール時にWindows更新プログラム等のパッケージを追加していくことになりますが、一気に編集をし続けると応答ファイルのどこでエラーになったかわからなくなります

つまり編集したときは別名でファイル保存し、いつでも過去の応答ファイルに戻れるようにしておくべきです。

時間を無駄にしないための工夫ですね。


あとは「ツール(T)」-「応答ファイルの検証(V)」を実行し、ウインドウ下のメッセージペインに「警告またはエラーはありません」が表示されていればOK。

名前を付けて、C:\shareに保存します。



続きはまた次回。

2015年4月8日水曜日

Windows7SP1 zero-touch Deployment その2


Windows7SP1 zero-touch Deployment  その2

 

Volumeライセンスでの大量展開は他にかなりのドキュメントがありますのでそちらをご参照ください。
またここではWindows7を扱います。WindowsXP、Windows8~は扱っていません。


ここの続きです。




1. テクニシャンコンピュータの構築


1.4. WindowsPE3.1の作成(オリジナルコマンド追加)



WindowsPEの起動時、Startnet.cmdというバッチファイルが実行されます。ここにはwpeinit.exeを呼び出すコマンドのみが記述されてますが、自前で用意したバッチファイルを追記しておけばWindowsPE起動時に実行されるという寸法です。
Windows PE で特定のアプリケーションを起動させる方法について

WindowsPEから自動的に呼び出す必要があるのは以下の2つ。

  • ディスクユーティリティ
  • Windowsセットアップ


Windowsをインストールするときにはパーティションを自前で切るのが通例ですが、端末の目的によってはパーティションサイズを指定する必要があります。
Windowsインストール時にパーティション操作をするのはDISKPART.exeです。

このDISKPARTはスクリプトファイル(ただのテキストファイルです)をオプションで引数にできますので、自前バッチファイルに

diskpart /s CreatePartitions.txt

てな感じで追記しておきます。
サンプル: 展開スクリプトを使用して Windows パーティション、システム パーティション、回復パーティションを適用する



Windowsセットアップについては当然ですが、セットアップユーティリティ=setup.exeはネットワーク上の共有フォルダに展開されています。

よって追記するバッチファイルに共有(TECHPCのことです)へのアクセスを設定します。

net use Z: \\TECHPC\share /user:username password
Z:\setup.exe /unattend:unattend.xml

こんな感じ。

Z: とか\\TECHPC とかは随時変更してください。IPアドレス直指定がいいかも。



これらのバッチファイル群は選択しやすいようにシーケンシャルな記述ではなく、ユーザーが選択できるようにインタラクティブにしておき、端末ごとに一括適用できるようにしておくと便利です。

あと上の CreatePartitions.txt、unattend.xml、自前バッチファイルはWindowsPEのシステムフォルダに格納しておきます。
システムフォルダはmountフォルダにマウントしているとすると、
\mount\Windows\System32
です。

これ以上は長くなるので今度の機会に。



このあとPXEサーバを設定しますが、以下の2ファイルが必要になりますのでWindowsPEをマウント中の今のうちに抜き出しておきます。

  • mount\Windows\Boot\PXE\bootmgr.exe
  • mount\Windows\Boot\PXE\pxeboot.n12

この2ファイルをC:\PXEにコピーしときます。



WindowsPEのカスタマイズはこの辺で切り上げますのでアンマウントします。

コミットオプションをつけるとカスタマイズを反映します。


Dism /unmount-wim /mountdir:C:\winpe\mount /commit


カスタマイズをキャンセルしてアンマウントは /discard。


Dism /unmount-wim /mountdir:C:\winpe\mount /discard


マウントしたまま寝てしまって、気付いたら再起動がかかってり、マウントしたファイルを開いているのにアンマウントしちゃってにっちもさっちもいかなくなったら、これで。


Dism /Cleanup-Wim



展開イメージのサービスと管理のコマンド ライン オプション



1.5. 追加設定 - PXEサーバ機能



ほとんどのドキュメントはUSBブートを推奨していますが、いまどきPXEブートできないPCもほとんどないでしょう。一部のモバイルオンリーPCにNICはそもそもありませんが。


というわけでPXEサーバ機能を持たせます。
ここがわかりやすいですね。参考になります、ありがとうございます。


悩み多き文教市場のインフラ屋さん
Windows PE 3.0 をネットワークブートさせる (TFTPD32)


上記のとおりですが、説明しておきます。


TFTP32
http://tftpd32.jounin.net/

ここから tftpd32 standard edition (zip) をダウンロードして解凍します。
解凍したファイルは先ほどのC:\PXEに展開しておきます。

そしてC:\winpe\ISO\フォルダの中身をC:\PXEにコピーします。

1.4.でコミットしたboot.wimをC:\PXE\sources\boot.wimに置き換えます。

1.4.で抜き出しておいたbootmgr.exe、pxeboot.n12をC:\PXE\bootに入れます。

ツリーでいうとこんな感じです。

C:\PXE\
       |     bootmgr
       |     EUPL-EN.pdf
       |     pxeboot.com
       |     tftpd32.chm
       |     tftpd32.exe
       |     tftpd32.ini
       |
       +---boot\
       |        +---fonts\
       |        |      bcd
       |        |      boot.sdi
       |        |      bootmgr.exe
       |        |      etfsboot.com
       |        |      pxeboot.n12
       |        |
       |
       +---sources\
       |        |      boot.wim  (変更したやつね)
       |
       +---EFI\
                +---microsoft\


んでもって設定します。




設定は上の通りですが、注意点としては

  • "Current Directory"は"C:\PXE"
  • "Settings"の"DHCP"タブ、"Boot File"の指定は、"バックスラッシュbootバックスラッシュpxeboot12.n12"です
  • もちろんC:\PXEフォルダに共有、アクセス許可がかかっている(読み取りで)
  • VirtualBoxなんかでDHCPを持たせていないこと。VirtualBoxに「NATネットワーク」機能がありますが、このDHCP機能のせいでTFTPD32の吐き出すIPアドレスを受け取れなくなります。
  • サーバ、クライアントがVirtualBoxのゲストOSのとき、それぞれのネットワーク設定を「内部ネットワーク」で試してみる
  • ゲストOSの起動順序、ネットワークをONにしている

これで起動できるはず。


ここでIPアドレスを受け取れれば、


みたいな画面になります。
下のIP: 192.168.200.10. はサーバ=TFTPD32のIPアドレス。


TFTPD32側はこんな感じ。


起動完了!
wpeutil shutdown
でWindowsPEをシャットダウンしておきます。

PXEブートについてはこのへんで終わります。
続きはまた次回

2015年4月4日土曜日

Windows7SP1 zero-touch Deployment その1


Windows7SP1 zero-touch Deployment  その1

 

Volumeライセンスでの大量展開は他にかなりのドキュメントがありますのでそちらをご参照ください。
またここではWindows7を扱います。WindowsXP、Windows8~は扱っていません。



ここではOEMライセンスで、かつOSの再インストールを想定しています。

例えば長年稼働しているPCで、GHOST等のバックアップ/クローニングを実施していない場合や、原因不明のトラブル等でハードウェアの一部ごとリカバリする場合です。

大量展開では

  • Volumeライセンスを購入
  • 参照コンピュータを構築しイメージング
  • イメージの展開


となるわけですが

  • ときどきしかWindowsをセットアップしない
  • セットアップするハードウェアがバラバラ
  • 構築されているアプリケーションのバージョンアップが多く、バージョンが合わない
  • そもそもライセンスを契約する金がない(致命的やな)

となればイメージングできません。

ましてや3年前のイメージを展開/リカバリしたところでセキュリティパッチの適用、アプリケーションのバージョンアップとインストール・・・
という面倒くさいことになります。
ましてやトラブルの原因ごとリカバリしてしまっては・・・
Windowsを素でインストールすれば、トラブルもすっきり解消です。
 (Sysprep/Dismでもコンポーネントとパッケージの追加ができますので、セキュリティパッチくらいは再展開しないままでのインストールは可能です。これも面倒くさいので普通はしないかな?)


ということでここでは以下の手筈で環境構築とインストールを行います。


  1. テクニシャンコンピュータの構築
  2. 仮想環境の構築
  3. 仮想環境での展開
  4. 実環境での展開

とくに仮想環境は重要です。
いきなり実環境でテストしないでください
Windowsの展開ではトラブルはつきものです。そのトラブルの度にWindowsをインストールし直しになりますので、多量の時間がかかります。
仮想環境ではいくらかの時間短縮が望めますので、無人インストールの初期テストは仮想環境をおすすめします。




1. テクニシャンコンピュータの構築




Microsoftがいうところのテクニシャンコンピュータです
ここでは長いのでTECHPCとします。
詳細はMicrosoftのリンク先を参照してください。

SEの雑記
https://engineermemo.wordpress.com/waik/

このSEの雑記さんがくわしいです。



簡易ネットワーク環境の図

画像は
Microsoft - 試験環境を構築する
http://technet.microsoft.com/ja-jp/library/dd744515(v=ws.10).aspx
から

実PCになってますが、仮想PCで十分です
VirtualBOXでテストしてますが、上記の「セットアップ先のコンピュータ」が実PCとなる場合は、仮想PCのネットワーク設定を「ブリッジアダプタ」にしてください。

仮想PCをホストしているネットワーク(実環境ネットワーク)に仮想PCが追加されますので、簡単にターゲットPCをテストできます。




ここでは仮想PC上にテクニシャンコンピュータ - TECHPCを構築することにします。
OS/Windwosがない人はWindows7評価版(32bit)をインストールしておいてください。


以下のWindows7用AIKをインストールします。

Windows® 7 用の Windows® 自動インストール キット (AIK)
http://www.microsoft.com/ja-jp/download/details.aspx?id=5753


WAIKをインストール後、補足プログラムを上書きします。

Windows® 7 SP1 用の Windows® 自動インストール キット (AIK) 補足プログラム 
http://www.microsoft.com/ja-jp/download/details.aspx?id=5188


補足プログラムの説明とインストール方法(上書きするだけです)。

Windows 7 SP1 用の Windows AIK について
http://blogs.technet.com/b/askcorejp/archive/2011/04/01/windows-7-sp1-windows-aik.aspx




Windows7インストールを無人にするための無人応答ファイルを作成します。この応答ファイルを作成するためにWindows システム イメージ マネージャ (Windows System Image Manager、以下WSIM)があります。
これはWindowsAIKに含まれています。



このテクニシャンコンピュータ - TECHPCですが、通常はWindowsAIKのインストールとWindowsPEの作成のみです。
しかしここでは上記に加えて

  • TFTP/PXEサーバ
  • DHCPサーバ
  • 配布共有(インストールイメージやパッケージ、アプリケーションを格納している)

それぞれの機能をこのTECHPCに持たせます。
もちろん別々のPCでも構いませんが、お客様環境/部門環境では統合したほうがいいでしょう。特に小さなネットワーク環境では。


というわけで追加設定です。


1.1. 追加設定 - Windowsとフォルダの設定



Windowsの以下の機能を切っておくと後々便利です。

  • ユーザー アカウント制御の設定 - 通知しない
  • Windowsファイアウォール - Windowsファイアウォールを無効にする

使用するフォルダをつくります。
ついでに共有しておきます。
なぜかバッチファイルで記述します。



mkdir C:\winpe      
WindowsPE展開用フォルダ
mkdir C:\share       Windows展開用フォルダ / 配布共有元
mkdir C:\PXE         TFTPフォルダ
mkdir "C:\share\$OEM$ Folders"
mkdir "C:\share\Out-of-Box Drivers"
mkdir C:\share\Packages

net share share=C:\share /grant:Everyone,FULL
icacls C:\share /T /grant:r Everyone:(OI)(CI)(F)
net share PXE=C:\PXE /grant:Everyone,READ
icacls C:\PXE /T /grant:r Everyone:(OI)(CI)(RX)



確認はnet shareコマンドか、管理ツールかな?GUIに慣れきってますね。


1.2. WindowsPE3.1の作成(パッケージ追加)



WindowsPE3.1を作成します。ここからPCを起動し、Windowsのインストーラはコマンドラインから指定します。
注意点としては、

絶対にWindows7用WindowsAIKでWindowsPE3.1を作成してください。
これからインストールするWindowsアーキテクチャが32bitなら32bitWindowsPEを、
64bitWindowsアーキテクチャなら64bitWindowsPEを作成してください。

アーキテクチャが違ったり、バージョンが違ったり(例えばWindowsPE4.0でWindows7をインストール)するとインストールの途中でこけます

構成パスでいう「windowsPE」offlineServicing」ではデバイスドライバを、さっき作ったWindowsPEから引っこ抜いてインストーラに渡します

なのでアーキテクチャが違ったりするとトラブルのもとになります。
(WindowsPE4.0からWindows7をインストールしようとして何度もこけまくった...)



PEの作成コマンドについては後日追加予定です。
ここらへんがMicrosoftのドキュメントになります。

Windows PE イメージを構築する
http://technet.microsoft.com/ja-jp/library/dd799244(v=ws.10).aspx


注意点としてはWindowsPEのイメージに以下の追加をすること。

スクリプト/スクリプト日本語パッケージ(あんまりスクリプトぐりぐりしないけど)。


Dism /image:C:\winpe\mount /Add-Package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-scripting.cab"

Dism /image:c:\WinPE_x86\mount /Add-Package /packagepath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\ja-jp\winpe-scripting_ja-jp.cab"



その他はここから参照してね。

1.3. WindowsPE3.1の作成(ドライバ追加)

DELL-PC用インストールドライバCABパッケージの追加をします。
VirtualBox等の仮想環境のみでテストするなら不要かな?

DELL-PC用のWindowsPE用にドライバを一括で固めたCABファイルがここにあります。

Dell Command | Deploy - Driver Packs for Enterprise Client OS Deployment
http://en.community.dell.com/techcenter/enterprise-client/w/wiki/2065.dell-driver-cab-files-for-enterprise-client-os-deployment

ここの

WinPE - CAB Availability (follow the links for CAB details and to download)

WinPE versionCurrent CAB
WinPE 5.xA04 (04/14/2015)
WinPE 4.x A05 (09/15/2014)
WinPE 3.xA16 (04/14/2015)
WinPE 2.xA00 (05/26/2009)


っていうやつです。WinPE 3.x A16ですね。

Windows7をインストールできるDELL製PCのPE用ドライバが一括で適用できます。
なんて便利やねん...
すげえ。
同じく下のほうにターゲットとなるDELL製PCのドライバが転がってますのでダウンロードしておきます。


でダウンロードしたら


Dism /image:C:\winpe\mount /add-driver /driver:"C:\share\Out-of-Box Drivers\PE" /recurse


/recurse で一括適用です。




続きは次回でござる。