Deployment Workbenchって難しい

いろいろと挑戦してみている。
 
やりたいこと

  • Windowsのカスタムイメージを作成
  • sysprepで固有情報削除
  • イメージ吸い上げ
  • 複数台に配信

この中で配信が難しい。
カスタムイメージを配信しつつ、固有情報をSQL Serverに管理させたい。
配信はできるようになったけど、SQL Serverに登録した情報が反映されない。
 
現在の構成

どうせWindows7が迫っているので見据えてみる。
 

現在の問題

Deployment Workbench>MDT Deployment Share>Update

=== Making sure the deployment share has the latest x86 tools ===

=== Processing LiteTouchPE (x86) boot image ===

Building requested boot image profile.
Determining if any changes have been made in the boot image configuration.
Loading the existing boot image profile for platform x86.
Calculating hashes for requested content.
No existing ISO found for platform x86 so one must be created.
Changes have been made, boot image will be updated.
Windows PE WIM D:\DeploymentShare\Boot\LiteTouchPE_x86.wim will be used.
WIM file mounted.
Set Windows PE system root.
Set Windows PE scratch space.
Copying WIM to the deployment share.
Creating an ISO.
OSCDIMG 2.45 CD-ROM and DVD-ROM Premastering Utility Copyright (C) Microsoft, 1993-2000. All rights reserved. For Microsoft internal use only. Usage: OSCDIMG [options] sourceroot targetfile -l volume label, no spaces (e.g. -lMYLABEL) -t time stamp for all files and directories, no spaces, any delimiter (e.g. -t12/31/2000,15:01:00) -g encode GMT time for files rather than local time -h include hidden files and directories -n allow long filenames (longer than DOS 8.3 names) -nt allow long filenames, restricted to NT 3.51 compatibility -b "El Torito" boot sector file, no spaces (e.g. -bc:\location\cdboot.bin) -x compute and encode "AutoCRC" values in image -o optimize storage by encoding duplicate files only once -oi ignore diamond compression timestamps when comparing files -os show duplicate files while creating image (-o options can be combined like -ois)
Exit code = 1


System.Management.Automation.CmdletInvocationException: OSCDIMG failed, rc = 1. ---> System.Exception: OSCDIMG failed, rc = 1.
場所 Microsoft.BDD.PSSnapIn.PEManager.CaptureIso(String sourceDir, String captureFile)
場所 Microsoft.BDD.PSSnapIn.UpdateDeploymentPoint.UpdateBootImage(String template, String platform, String dpPath, Boolean createISO, String isoName)
場所 Microsoft.BDD.PSSnapIn.UpdateDeploymentPoint.ProcessRecord()


参考書の336ページに

Vistaメディア[sources]
-Wdsclientapi.dll
-Wdscsl.dll
-Wdsimage.dll
を
Program Files\Microsoft Deployment Toolkit\bin
へコピー

 

変わらない。
あまり関係が無いみたい。うむむ・・・
 
 

続き

イベントビューアにソース「PowerShell」のログが残っていた。

設定: 書式データ ファイルの読み込み中にエラーが発生しました: 
Microsoft.BDD.PSSnapIn、C:\Program Files\Microsoft Deployment Toolkit\Bin\Microsoft.BDD.PSSnapIn.Format.ps1xml : 次の検証例外のため、ファイルがスキップされました: "スクリプトの実行がシステムで無効になっているため、ファイル C:\Program Files\Microsoft Deployment Toolkit\Bin\Microsoft.BDD.PSSnapIn.Format.ps1xml を読み込めません。詳細については、「get-help about_signing」と入力してヘルプを参照してください。"。
 

詳細: 
	ExceptionClass=RuntimeException
	ErrorCategory=NotSpecified
	ErrorId=ErrorsUpdatingFormats
	ErrorMessage=書式データ ファイルの読み込み中にエラーが発生しました: 
Microsoft.BDD.PSSnapIn、C:\Program Files\Microsoft Deployment Toolkit\Bin\Microsoft.BDD.PSSnapIn.Format.ps1xml : 次の検証例外のため、ファイルがスキップされました: "スクリプトの実行がシステムで無効になっているため、ファイル C:\Program Files\Microsoft Deployment Toolkit\Bin\Microsoft.BDD.PSSnapIn.Format.ps1xml を読み込めません。詳細については、「get-help about_signing」と入力してヘルプを参照してください。"。


	Severity=Warning

	SequenceNumber=2

	HostName=Default MSH Host
	HostVersion=1.0.0.0
	HostId=2833fad8-eacc-475c-aea2-b7863a5e4f9a
	EngineVersion=
	RunspaceId=
	PipelineId=
	CommandName=
	CommandType=
	ScriptName=
	CommandPath=
	CommandLine=

AdditionalInfo:
	Name=;Value=
	Name=;Value=
	Name=;Value=

「get-help about_signing」というのはWindows PowerShellで実行しなさいということ。
やってみたけどサッパリ。
 
Michael Niehaus' Windows and Office deployment ramblingsというブログを見つける。

Add-PSSnapIn Microsoft.BDD.PSSnapIn

やってみた

PS C:\Users\Administrator> add-PSSnapIn Microsoft.BDD.PSSnapIn
Add-PSSnapin : Windows PowerShell スナップイン "Microsoft.BDD.PSSnapIn" を読み込みましたが、次の警告がありました:  拡張
型データ ファイル
Microsoft.BDD.PSSnapIn、C:\Program Files\Microsoft Deployment Toolkit\Bin\Microsoft.BDD.PSSnapIn.Types.ps1xml : 次の検
証例外のため、ファイルがスキップされました: "スクリプトの実行がシステムで無効になっているため、ファイル C:\Program File
s\Microsoft Deployment Toolkit\Bin\Microsoft.BDD.PSSnapIn.Types.ps1xml を読み込めません。詳細については、「get-help abo
ut_signing」と入力してヘルプを参照してください。"。
 の読み込み中にエラーが発生しました。
書式データ ファイルの読み込み中にエラーが発生しました:
Microsoft.BDD.PSSnapIn、C:\Program Files\Microsoft Deployment Toolkit\Bin\Microsoft.BDD.PSSnapIn.Format.ps1xml : 次の検
証例外のため、ファイルがスキップされました: "スクリプトの実行がシステムで無効になっているため、ファイル C:\Program File
s\Microsoft Deployment Toolkit\Bin\Microsoft.BDD.PSSnapIn.Format.ps1xml を読み込めません。詳細については、「get-help ab
out_signing」と入力してヘルプを参照してください。"。
発生場所 行:1 文字:13
+ add-PSSnapIn  <<<< Microsoft.BDD.PSSnapIn

同じところを読めと書かれている。
 
こんどはこんな感じにしてみる

PS C:\Program Files\Microsoft Deployment Toolkit\Bin> add-PSSnapIn Microsoft.BDD.PSSnapIn
Add-PSSnapin : Windows PowerShell スナップイン Microsoft.BDD.PSSnapIn は既に追加されているため、追加できません。スナッ
プインの名前を確認し、再試行してください。
発生場所 行:1 文字:13
+ add-PSSnapIn  <<<< Microsoft.BDD.PSSnapIn
PS C:\Program Files\Microsoft Deployment Toolkit\Bin> Set-ExecutionPolicy RemoteSigned

 
Update Deployment Shareを試すと・・・やっぱりだめ。
 
 

ちゃんと読もうよ!

一つのコマンドで全て完了というわけではなかった。
 
まずは削除から

PS C:\Program Files\Microsoft Deployment Toolkit\Bin> Remove-PSSnapin Microsoft.BDD.PSSnapIn

これで準備完了

PS C:\Program Files\Microsoft Deployment Toolkit\Bin> Add-PSSnapIn Microsoft.BDD.PSSnapIn
PS C:\Program Files\Microsoft Deployment Toolkit\Bin> New-PSDrive -NAME MDTDrive -PSProvider MDTProvider -Root \\server_name\DeploymentShare$

Name       Provider      Root                       CurrentLocation
----       --------      ----                       ---------------
MDTDrive   MDTProvider   \\ss2008\DeploymentShare$


PS C:\Program Files\Microsoft Deployment Toolkit\Bin>

ずーっとこの設定は有効になるらしいけど、だめになっていたら

Restore-MDTPersistentDrive

ってのをやるとOK

いろんな確認

ちゃんと出来ているかどうかの確認は「:」を忘れずに 

PS C:\> dir MDTDrive:

Name
----
Applications
Operating Systems
Out-of-Box Drivers
Packages
Task Sequences
Selection Profiles
Linked Deployment Shares
Media

 

細かい確認

Want to see all the drivers?  Try:
  dir 'MDTDrive:\Out-of-Box Drivers'

Want to create a new folder?  Try:
  mkdir ‘MDTDrive:\Out-of-Box Drivers\New Folder’

Want to see all the deployment share properties?  Try:
  Get-ItemProperty MDTDrive:

Want to update the deployment share (generating boot images)?  Try:
  Update-MDTDeploymentShare -Path MDTDrive:

最後のUpdateを行うとPowerShellでUpdate Deployment Shareが始まる。進行状況は「○」だった。
 
そして結果は・・・

PS C:\> Update-MDTDeploymentShare -path MDTDrive:
Update-MDTDeploymentShare : OSCDIMG failed, rc = 1.
発生場所 行:1 文字:26
+ Update-MDTDeploymentShare  <<<< -path MDTDrive:

いやーーーーーーー
 
それでもUpdate Deployment share Wizardを試す

=== Making sure the deployment share has the latest x86 tools ===

=== Processing LiteTouchPE (x86) boot image ===

Building requested boot image profile.
Determining if any changes have been made in the boot image configuration.
Loading the existing boot image profile for platform x86.
Calculating hashes for requested content.
Changes have been made, boot image will be updated.
Windows PE WIM D:\DeploymentShare\Boot\LiteTouchPE_x86.wim will be used.
WIM file mounted.
Set Windows PE system root.
Set Windows PE scratch space.
Copy: C:\Program Files\Microsoft Deployment Toolkit\Samples\kenmituo.bmp to C:\Users\ADMINI~1\AppData\Local\Temp\2\MDTUpdate.3940\Mount\Windows\system32\winpe.bmp
Remove: C:\Users\ADMINI~1\AppData\Local\Temp\2\MDTUpdate.3940\Mount\Windows\system32\winpe.bmp
Copying WIM to the deployment share.
Creating an ISO.
 OSCDIMG 2.45 CD-ROM and DVD-ROM Premastering Utility Copyright (C) Microsoft, 1993-2000.  All rights reserved. For Microsoft internal use only.  Usage: OSCDIMG [options] sourceroot targetfile         -l  volume label, no spaces (e.g. -lMYLABEL)        -t  time stamp for all files and directories, no spaces, any delimiter              (e.g. -t12/31/2000,15:01:00)        -g  encode GMT time for files rather than local time        -h  include hidden files and directories        -n  allow long filenames (longer than DOS 8.3 names)        -nt allow long filenames, restricted to NT 3.51 compatibility        -b  "El Torito" boot sector file, no spaces              (e.g. -bc:\location\cdboot.bin)        -x  compute and encode "AutoCRC" values in image        -o  optimize storage by encoding duplicate files only once        -oi ignore diamond compression timestamps when comparing files        -os show duplicate files while creating image            (-o options can be combined like -ois)  
Exit code = 1


System.Management.Automation.CmdletInvocationException: OSCDIMG failed, rc = 1. ---> System.Exception:OSCDIMG failed, rc = 1.
   場所 Microsoft.BDD.PSSnapIn.PEManager.CaptureIso(String sourceDir, String captureFile)
   場所 Microsoft.BDD.PSSnapIn.UpdateDeploymentPoint.UpdateBootImage(String template, String platform, String dpPath, Boolean createISO, String isoName)
   場所 Microsoft.BDD.PSSnapIn.UpdateDeploymentPoint.ProcessRecord()
   場所 System.Management.Automation.Cmdlet.DoProcessRecord()
   場所 System.Management.Automation.CommandProcessor.ProcessRecord()
   --- 内部例外スタック トレースの終わり ---
   場所 System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate)
   場所 System.Management.Automation.Internal.PipelineProcessor.SynchronousExecute(Array input, Hashtable errorResults)
   場所 System.Management.Automation.Internal.PipelineProcessor.Execute(Array input)
   場所 System.Management.Automation.Runspaces.LocalPipeline.InvokeHelper()

「Creating an ISO.」で引っかかるのは同じ。
 

視点を変えてみる

エラーが出た際に「view Script」というボタンがあるので押してみる

Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS001" -PSProvider MDTProvider -Root "D:\DeploymentShare"
update-MDTDeploymentShare -path "DS001:" -Verbose

やっていることは参照したブログと同じっぽい。
 

やり直す

いろんなバージョンのMDTやAIKを(インストール|アンインストール)を繰り返しすぎたと反省する。

すっきり作業
  • MDTをアンインストール
  • WindowsAIKをアンインストール
  • 上記のインストールフォルダを削除
  • 「D:\DeploymentShare」の中身を削除

フォルダはアクセス設定があるから残す。
 

入れ直し

いろいろやってダメなら最初からやり直しが有効だ!ってことを再確認することになった。
 
とりあえずUpdate Deployment Shareは無事に完了した。
 
んで、配信してみると・・・Databaseの内容は反映されない。
フリダシに戻っただけだよ・・・
 

Databaseは後回し

とりあえずアップデートは終了したのでWindows7を配信してみる。
Task Sequencesでunattend.txtを編集して日本語にしてみる。そして更新。
そーすると

setup.exe - Entry Point Not Found

The procedure entry point ?GetQFDN_Ipv6@@YGKPAG0HH@Z
could not be located in the dynamic link library wbmcomn.dll.

なんじゃこりゃ?
 
つらつらと眺める。
Deployment Workbench>Deployment Share>MDT Deployment Share(D:\DeploymentShare)
プロパティの「Windows PE x86 Components」にselection profileってのがある。
初期設定の「All Drivers and Packages」になっている。
 
んで、Advanced Configuration>Selection Profilesの同じ項目を眺めると・・・「Operation System」と「Task Sequences」にチェックが入っておりませんがな。旦那!
 
「New Selection Profil」を作ってみる。

  • 「Operating Systems」にフォルダーを作成しておいたので、Windows7フォルダを選択
  • 「Task Sequences」にフォルダーを作成しておいたので、Windows7フォルダを選択

個別のファイルを選択できないので、フォルダを用意しておくのが良いっぽい。
 
んで、PE x86にもどってWindows7を選択して自己満足に浸る。
そして気がつく。フォルダ分けはx86とx64を区別するための物ということを・・・
 
Windows7を改め、Windows x86に変更しておく。

配信してみるとユーザー名を入力したあと、真っ黒の画面のまま変化が起きない。
イベントビューア(カスタムビューでソース「MSSQL$SQLEXPRESS」で全てを取得する感じを作っておく)でみると

ユーザー 'NT AUTHORITY\ANONYMOUS LOGON' はログインできませんでした。 [クライアント: 192.168.1.2]

MDT2010 Beta1 データーベース利用時のトラブルについてを参考にして、D:\DeploymentShareにANONYMOUS LOGONを「何でもあり」なアクセス権で設定する。
 
ちょいと忘れていた「イベントを格納する共有フォルダ」
D:\MigDataとD:\Logsを作り、それぞれに設定を施す

  • セキュリティの詳細設定で「このオブジェクトの親からの継承可能なアクセス許可を含める」のチェックを外す
  • 「Domain Computers」を追加、「このフォルダのみ」「ファイルの作成/データの書き込み」
  • 「Domain Users」を追加、「このフォルダのみ」「ファイルの作成/データの書き込み」
  • CREATOR OWNER」を追加、「サブフォルダとファイルのみ」「フルコントロール

MDTのサービスアカウントを作製して「CREATOR OWNER」と同じ設定にしろと「Microsoft® Deployment Toolkit 2008
Microsoft Deployment Toolkit 管理パック」のwordファイルには書いてあるけど、すっ飛ばす。

またエラーが出た。

D:\DeploymentShareにANONYMOUS LOGONを「何でもあり」なアクセス権で設定する。

ここを改める。参考にしたサイトを眺める。

Active Directoryユーザとコンピュータから、BuiltinのAdministratorグループを選択して、プロパティより、メンバータブの所属するメンバーに"ANONYMOUS LOGON"を一時的に追加する。

そしてUpdateしてOSの再起動もする。
 
またエラーが出た。

ERROR - Unable to map a network drive \\hoge_server\SQL Share$.
The net work name cannot be found.

Databaseの「SQL Share」を「DeploymentShare」としてみる。
 
(F12でネットワークブートして、User、passwd、domainを入力してから長い。10分以上掛かっている?)
 
またエラーが出た。
なぜかSQL Shareが見つからない・・・
 
これは夢に出てきて解決できた。
MDT Deployment Shareのプロパティに「Rules」ってのがあって、ここに「SQL Share」が残っていた。
全て消したら直った。
 
またエラーが出た。(XPのイメージを配信中)

Windows Setup
Setup cannot upgrade your current installation to Windows XP.
Setup cannot continue.

Deployment Summary

Operating system deployment did not complete successfully

Details...
Unatteded install failed, rc = 1
ZTI ERROR - Non-zero return code by LTIApply, rc = 1
Litetouch deployment failed, Return Code = -2147467259 0x80004005

Logsの中のsetuperr.logを参照する

2009-09-10 17:54:43, Error      [0x06060c] IBS    CallBack_LanguagePack_SetThreadLanguage: Error retrieving thread language from blackboard. hr = [-2147023728][gle=0x00000490]

なんだか、正規版じゃないみたいな扱いのことしか分からない。
って、適当に転がっていた未使用のパッケージをよく見たら「アップグレード版」だった。
悲しい・・・
SP+メー-カーで作り直している間にWindows7を試す
 
またエラーが出た

Setup.exe - Entry Point Not found
The procedure entry point ?GetOFDN_Ipv6@@YGKPAG0HH@Z
could not be located in the dynamic link library wbemcomn.dll. 
 
 
Operating system deployment did not complete successfully
Details...
Setup failed applyng image C:\MINNT\operating Systems\Windows 7 x86\Sources\install.wim,rc = 31
ZTI ERROR - Non-zero return code by LTIApply, rc = 31
Litetouch deployment failed, Return Code = -2147467259 0x80004005 
 
D:\Logs
2009-09-11 14:45:55, Error      [0x06060c] IBS    CallBack_LanguagePack_SetThreadLanguage: Error retrieving thread language from blackboard. hr = [-2147023728][gle=0x00000490]

 

Windows7のエラー

おそらく・・・
Deployment Share>MDT Deployment Share>Packages
ここにLanguage pacをぶち込まないと解決しないっぽい。
そんなファイルはダウンロードし忘れていた。海外のあやしいサイトからDLする気分にもなれず・・・
正規版のVLが届くまでお預けかな・・・
 

Windows XPのエラー

SP+メーカーを使わない素のXP SP3を入れてみる

Windows Setup
The file nvrd32.sys could not be found.
Prease any key to continue.

悩む。Cドライブをフォーマットしてみる。