新しいPCを使用する為の初期設定はPCの電源を入れてから、パスワードの設定、アンチウィルスソフトのインストール、ドメインに参加、Officeライセンス認証、プリンタドライバのインストール、通常使用するソフトのインストール など・など、古いPCからデータコピーする前までの状態にするには1時間程度要します。
そこで、少しでも作業効率を高めるためにADドメインに参加させる作業をGUIからpowershellスクリプトを実行するbatファイルを作成してみました。
ADドメインに参加するbatファイル
chcp 65001
@echo off
REM ################# 処理実行の確認 ######################
SET /P selected=”ドメインに登録しますか?(Y=YES / N=NO)”
if /i {%selected%}=={y} (goto :yes01)
if /i {%selected%}=={yes} (goto :yes01)
REM ################# NO 処理の中断 #######################
ECHO “NO が選択されました。ドメイン登録を中断し、処理を終了します。”
pause
EXIT
REM ################# YES ドメイン登録の開始 #################
:yes01
powershell -Command”$user=’Administrator’;
$password=ConvertTo-SecureString -AsPlainText ‘P@$$w0rd’ -Force;
$credential=New-Object system.Management.Automation.PSCredential $user,$password;
Add-computer -DomainName ‘domain’ -Credential $credential;
Restart-Computer”
【コマンドの説明】
chcp 65001
メモ帳で作成したbatファイルを「UTF-8」で保存したが、実行すると文字化けするので記述しました。
コマンドプロンプトで使う文字エンコードを変更するためのコマンド
数字 エンコード
932 Shift-JIS
65001 UTF-8
20932 EUC-JP
@echo off
「コマンドの画面表示を消す」という指示のコマンドです。
処理実行の確認
SET /P selected=”ドメインに登録しますか?(Y=YES / N=NO)”
if /i {%selected%}=={y} (goto :yes01)
if /i {%selected%}=={yes} (goto :yes01)
「Y」キーか「YES」キーを入力して「enter」キーを押すと開始されます。
NO 処理の中断
ECHO “NO が選択されました。ドメイン登録を中断し、処理を終了します。”
pause
EXIT
「Y」キーまたは「YES」キー以外を入力して「enter」キーを押すと処理が中断されます。
powershell -Command
-Commandオプションで引数に直接スクリプトを指定する方法
拡張子「.ps1」でないファイルであっても入力リダイレクトでデータを送り込むことができます。
ドメインに登録する為の資格情報
$user=’Administrator’;
ユーザーに管理者名を設定します。
ConvertTo-SecureString
$password=ConvertTo-SecureString -AsPlainText ‘P@$$w0rd’ -Force;
セキュアストリングとしてパスワードを設定します。
ConvertTo-SecureString
Credentialに渡すときはSecureStringでないとだめなのでプレーンテキストをセキュリティで保護された文字列に変換します。
-AsPlainText ‘P@$$w0rd’
セキュリティで保護された文字列に変換するプレーンテキスト文字列を指定します。
実行には’P@$$w0rd’を管理者権限のパスワードにします。
-Force
PowerShell7以降ではAsPlainTextパラメータを使用する時にはForceパラメータは不要になりました。
PowerShell7前と互換性を維持するために記述しています。
New-Object
.NetFramWorkまたはCOMオブジェクトのインスタンスを作成します。
system.Management.Automation.PSCredential
Credentialに管理者IDとSecureStringに変換したパスワードを渡します。
Add-computer
ローカルコンピュータをドメインに参加させます。
-DomainName ‘domain’
ドメイン名’domein’を指定します。
-Credential $credential
ドメイン登録の資格者情報を指定します。
Restart-Computer
コンピュータを再鼓動します。
参考にさせてもらったURL
【PowerShell】コマンドでADドメイン参加を管理・確認 | SEの道標 (nesuke.com)