バッチファイルを使ってドメイン参加を自動化する方法をご紹介します。
また、ドメイン参加が成功した場合に再起動する方法も合わせてご紹介します。
ドメイン参加後は再起動が必要になるので、今回は再起動もバッチファイル内に組み込んでみます。
細かい説明は置いといて、とりあえず完成したファイルだけみたい方は目次でまとめに飛んで下さい。
ドメイン参加
ドメイン参加を行うにはwmicコマンドを使用します。
1 2 3 4 |
@echo off SET BAT_LOG=%~dp0log\%COMPUTERNAME%.log wmic ComputerSystem WHERE "name='%COMPUTERNAME%'" CALL JoinDomainOrWorkgroup Name="domain.local" Password="password" Username="user" FJoinOptions=3 > %BAT_LOG% |
実行する際は管理者権限での実行が必要になります。
また、ドメイン参加がちゃんとできているかを判定するために、ログの作成もしています。
ログの作成方法については、以前に紹介をしているのでここでは省略します。
後はドメイン名、パスワード、ユーザ名をそれぞれの環境に合わせて変更すればOKです。
■Name=”domain.local” ・・・ ドメイン名の指定。「domain.local」の部分を環境に合わせて変更 ■Password=”password” ・・・ パスワードの指定。「password」の部分を環境に合わせて変更 ■Username=”user” ・・・ ユーザ名の指定。「user」の部分を環境に合わせて変更 ※それぞれの値は「“”」で括る必要があります。 |
最後の「FJoinOptions=3」はコンピュータをドメインに参加させ、ドメイン上にアカウントを作成するオプションです。
詳細は下記リンクに載っているので、気になる方はそちらを参照して下さい。
https://msdn.microsoft.com/en-us/library/aa392154(VS.85).aspx
ドメイン参加確認
上記のコマンドはドメイン参加がちゃんと行えた場合、「ReturnValue = 0」を返します。
なので、ログの中に「ReturnValue = 0」がある場合は成功、ない場合は失敗ということになります。
ログの中からReturnValue = 0があるかを探すには下記コマンドを使用します。
■find /i ”検索したい文字” 検索するファイル名 ※検索したい文字は「“”」で括る必要があります。 |
これでReturnValue = 0の検索を行い、検索ができた場合は成功、検索ができなくエラーになった場合は失敗となります。
直前のコマンドの終了コードは環境変数の「%ERRORLEVEL%」に格納されています。
この値が0の時は正常に終了、1の時はエラーが発生したということになります。
これらを使ってドメイン参加のエラー判定をします。
1 2 3 4 5 6 7 8 9 10 11 12 |
find /i "ReturnValue = 0" %LOG_BAT% IF "%ERRORLEVEL%" == "0" ( echo ドメイン参加完了しました。 echo 再起動します。 shutdown /r /t 60 EXIT ) else ( echo ドメイン参加に失敗しました。 echo 処理を中断します。 Pause EXIT ) |
これでドメイン参加が成功したときのみ再起動を行うようになります。
まとめ
上記までの内容をまとめると下記になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
@echo off rem ログファイルを指定します。 SET BAT_LOG=%~dp0log\%COMPUTERNAME%.log rem ドメインに参加します。 wmic ComputerSystem WHERE "name='%COMPUTERNAME%'" CALL JoinDomainOrWorkgroup Name="domain.local" Password="password" Username="user" FJoinOptions=3 > %BAT_LOG% rem ドメイン参加が成功したかログを確認します。 find /i "ReturnValue = 0" %LOG_BAT% rem ドメイン参加の状況によって処理を分岐させます。 IF "%ERRORLEVEL%" == "0" ( echo ドメイン参加完了しました。 echo 再起動します。 shutdown /r /t 60 EXIT ) else ( echo ドメイン参加に失敗しました。 echo 処理を中断します。 Pause EXIT ) |
以上、完成です。
コメントを残す