拡張ディスク用ドライブ作成スクリプト(CreateUserDrive.vbs)は、拡張ディスクを利用できるようにするための作業を自動的に行うツールです。
次の図のようにVM作成時に自動で実行したり、任意のタイミングでソフトウェア配布により実行したりすることができます。
CreateUserDrive.vbsは、<SystemProvisioningのインストールディレクトリ>\opt配下にインストールされます。対応OSはWindows7のみです。
CreateUserDrive.vbsの詳細な動作の説明、具体的な利用方法は以下のとおりです。
(1)動作詳細
CreateUserDrive.vbsは、仮想マシンのディスクの状態をチェックし、状況に合わせて以下の処理を実行します。
システムディスクと別のディスクが存在し、それにパーティションが存在しない場合、処理対象の拡張ディスクと判断します。この場合、拡張ディスクに対して以下の処理を実行します。
Diskの署名
パーティションの作成
フォーマット
ドライブ文字として、D:を割り当てます。
このとき、CD-ROM/DVD Driveが、Dドライブだった場合、そのドライブ文字を別の文字に変更します。
システムディスクと別のディスクが存在し、それにパーティションが1個存在する場合も処理対象の拡張ディスクと判断します。この場合、拡張ディスクに対して以下の処理を実行します。
そのパーティションのサイズ拡張を実行
以下のような想定外の構成だった場合、処理を実行せずエラーで終了します。
システムディスクに相当するものがない
拡張ディスクがない
拡張ディスクが2個以上存在する
拡張ディスクにパーティションが2個以上存在する
(2)使用方法(VM作成時の自動実行)
CreateUserDrive.vbsがVM作成などを行ったときに自動実行されるように、使用するテンプレートや固有情報に仕掛けを組み込む必要があります。
仕掛けの主なポイントは以下のとおりです。
イメージ展開時にCreateUserDrive.vbsが実行されるように、マスタVMにCreateUserDrive.vbsを配置し、テンプレート中にCreateUserDrive.vbsが含まれるようにします。
固有情報反映でCreateUserDrive.vbsが自動実行されるように、Windows OSが提供するSysprepのコマンド実行機能を利用します。下記の2つの機能を利用します。下記を利用するためには、Sysprep応答ファイルの使用が必須となります。
<RunSynchronousCommand>
Sysprep 実行中に実行されます。Sysprep応答ファイル内に記述して設定します。
ここでは、SetupComplete.cmdファイルを作成する処理の実行で利用します。
SetupComplete.cmd
Sysprepによるセットアップの最後に実行されます。
SetupComplete.cmdファイルに実行するコマンドを記述し、%WinDir%\Setup\Scriptsに置きます。
ここでは、CreateUserDrive.vbsの実行のために利用します。
上記を利用するために、以下のように準備や操作を行います。
マスタVMに以下のディレクトリを作成し、CreateUserDrive.vbs を置きます。
C:\Sysprep\AutoRun
上記ディレクトリに格納されたCreateUserDrive.vbsが含まれたテンプレートを作成します。
ホストプロファイルに使用するSysprep応答ファイルを設定します。
Sysprep応答ファイルには、セットアップの最後に実行されるSetupComplete.cmdから、C:\Sysprep\AutoRun配下のスクリプトが実行されるように、以下を追記します。以下の内容は、SigmaSystemCenterが提供するSysprep応答ファイルのサンプルファイルに記述されています。
<RunSynchronousCommand wcm:action="add"> <Order>2</Order> <Path>cmd.exe /c "echo for %%i in (%SystemDrive%\Sysprep\Autorun\*) do cmd /c "%%i" > %WINDIR%\Setup\Scripts\SetupComplete.cmd"</Path>
新規リソース割り当てなど、固有情報反映の処理が行われる操作を実行します。固有情報反映処理の最後にCreateUserDrive.vbsが実行されます。固有情報反映の処理が行われる操作は以下のとおりです。
新規リソース割り当て
リソース割り当て
再構成(Reconstruct, Revert)
(3)使用方法(ソフトウェア配布による実行)
ソフトウェア配布により実行する方法では、DeploymentManagerのシナリオでCreateUserDrive.vbsが実行されるようにします。拡張ディスクの作成や拡張などを行った後に、任意のタイミングでシナリオを実行できます。
以下のように準備や操作を行います。
DeploymentManager上で、CreateUserDrive.vbsのパッケージをイメージビルダで作成し、その実行シナリオを登録します。シナリオ登録後、DPM収集でSigmaSystemCenterにシナリオの情報を取り込みます。
拡張ディスクの作成や拡張などを実行する操作を実行し、拡張ディスクをCreateUserDrive.vbsが処理できる状態にします。
指定ソフトウェア配布でCreateUserDrive.vbsのシナリオを実行します。