Home > Windows にまつわる e.t.c. > Windows Server / Windows Client OS のカスタム インストール メディアを作成する

インストール後自動処理


このページはサブコンテンツです。検索等でこのページに直接来られた方は以下のメインページも参照してください。

Windows Server / Windows Client OS のカスタム インストール メディアを作成する
http://www.vwnet.jp/Windows/WS16/2017070901/EditISO.htm

 

【重要】
動作検証していませんが、OEM プロダクト キーが使われている場合は、自動実行処理はできないとテクニカルドキュメントにあります
(末尾「参考情報」参照)

 

自動応答では、インストールオペレーションの自動化できますが、インストール後に何か設定をしようとしても出来ることは限られています。

そのような時は、インストール後に自動実行されるスクリプトを設定します。

自動実行スクリプトは、インストールが完了しログオンが表示される前に ローカル システム特権で実行されます。

OS インストール直後に %WINDIR%\Setup\Scripts\ directory 内の SetupComplete.cmd が存在すれば自動実行されるので、installwim をマウントした $IsoDirectory + Windows\Setup\Scripts\ に SetupComplete.cmd をセットしておけば、OS インストール後にスクリプトを実行することができます。

PowerShell スクリプト を使って設定する場合は、SetupComplete.cmd に以下のようにセットします。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File [実行スクリプト名]

 

例えば、C:\1stExec\autoexec.ps1 を起動する場合は、以下のようにセットします。

##################################
# 自動実行スクリプトをセットする
##################################
# ディレクトリの準備
$TergetDirectory = Join-Path $OfflineDirectory "Windows\Setup\Scripts"
if( -not (Test-Path $TergetDirectory)){ md $TergetDirectory }

# 自動実行コマンドファイル
$TergetFile = Join-Path $TergetDirectory "SetupComplete.cmd"

# 自動実行スクリプト
$AutoexecScript = "C:\1stExec\autoexec.ps1"

# SetupComplete.cmd を作る
$Content = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File $AutoexecScript"
Set-Content -Value $Content -Path $TergetFile

# 自動実行スクリプトのマウント ディレクトリ
$AutoexecDirectory = Split-Path $AutoexecScript -Parent
$AutoexecDrive = Split-Path $AutoexecScript -Qualifier
$AutoexecFile = Split-Path $AutoexecScript -Leaf
$TergetDirectory = $AutoexecDirectory -replace $AutoexecDrive, $OfflineDirectory
$TergetFile = Join-Path $TergetDirectory $AutoexecFile

# ディレクトリ作成
if( -not ( Test-Path $TergetDirectory )){ md $TergetDirectory }

# 自動実行スクリプト作成
Set-Content -Value "# Edit this" -Path $TergetFile -Encoding UTF8

# 自動実行スクリプトフォルダーを開く
ii $TergetDirectory

 

作成された autoexec.ps1 を編集するか、作成済みの autoexec.ps1 と入れ替えします。

 

OS インストール後も SetupComplete.cmd は残ったままになっていますが、セットアップ完了時のみ実行なので sysprep 等の再パッケージングをしない限り実行されることはありません。

ゴミ掃除をするのであれば、OS インストール後に自動実行するようにしたスクリプトで C:\Windows\Setup\Scripts と自動実行スクリプトそのものを削除すると良いでしょう。

 

参考情報

Windows セットアップへのカスタム スクリプトの追加
https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn898472(v=vs.85).aspx

 

 

Copyright © MURA All rights reserved.