ドメインに参加するスクリプト ~Windows PowerShell 編
奥主さんのブログエントリーで、コンピューターを Active Directory のドメインに参加させる作業を無人化するスクリプトが紹介されています。
【☆ミ】 スクリプトセンターと Windows PowerShell のススメ
Windows PowerShell のススメとありますので、さっそく試してみました。
$JOIN_DOMAIN = 1
$ACCT_CREATE = 2
$ACCT_DELETE = 4
$WIN9X_UPGRADE = 16
$DOMAIN_JOIN_IF_JOINED = 32
$JOIN_UNSECURE = 64
$MACHINE_PASSWORD_PASSED = 128
$DEFERRED_SPN_SET = 256
$INSTALL_INVOCATION = 262144
$strDomain = "example"
$strPassword = "P@ssw0rd"
$strUser = "administrator"
$ret =
(get-WmiObject Win32_ComputerSystem).JoinDomainOrWorkGroup(
$strDomain, $strPassword, $strDomain + "\" + $strUser,
$null, $JOIN_DOMAIN + $ACCT_CREATE)
if($ret.ReturnValue -eq 0){
shutdown /r /t 0
} else {
$ret
}
ドメイン参加の作業は get-WmiObject の1行にまとめてみました。成功した場合再起動し、失敗した場合は JoinDomainOrWorkGroup メソッドが返すオブジェクトを書き出すようにしています。
上記のスクリプトを join.ps1 などというファイルに保存し、Windows PowerShell から ./join.ps1 とすればドメイン参加できます。もし失敗した場合は、再度 $ret = ./join.ps1 などと、変数で受け止めることにより、リターン値をオブジェクトのまま取得することができます。
ドメイン名、ユーザー名、パスワードをコマンドラインパラメータにするなど、いろいろ工夫してみてください。
※なお、本文中のスクリプトはデモ用途であり、内容・結果を保証するものではありません。