Home > Windows にまつわる e.t.c. > Windows Server / Windows Client OS の sysprep をカスタマイズする

起動後自動処理


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

Windows Server / Windows Client OS の sysprep をカスタマイズする

 

sysprep だけでサービスインができる環境が準備できれば良いのですが、システムによっては初期セットアップが必要なこともあります。

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

自動実行は、sysprep 起動後からログオン画面が出るまでの間にスクリプトがローカル システム特権で実行されるので、OOBE とかの sysprep 動作影響を受けません。

sysprep 起動直後に %WINDIR%\Setup\Scripts\ directory 内の SetupComplete.cmd が存在すれば自動実行されます。

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

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

 

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

##################################
# 自動実行スクリプトをセットする
##################################
# ディレクトリの準備
$WinDir = $env:WINDIR
$TergetDirectory = Join-Path $WinDir "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

# 自動実行スクリプトのマウント ディレクトリ
$TergetDirectory = Split-Path $AutoexecScript -Parent

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

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

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

 

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

 

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

ゴミ掃除をするのであれば、自動実行スクリプトで C:\Windows\Setup\Scripts と自動実行スクリプトそのものを削除すると良いでしょう。
自動応答を設定した場合、自動応答ファイルも残っているので、C:\Windows\System32\Sysprep\Untitled.xml を削除するのも良い考えです。

 

参考情報

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

Sysprep 中に任意のコマンドを実行する方法について | Ask CORE
https://blogs.technet.microsoft.com/askcorejp/2010/05/27/sysprep/ 

 

 

Copyright © MURA All rights reserved.