本記事は、PowerShellを利用してActiveDirectoryのユーザーをCSVで一括作成するスクリプトのサンプルです。
統合アカウント管理ソリューション的なものを持っていない企業や自治体の情シスの方は、基本AD上で手作業によるユーザー作成を行っていることと思います。
このスクリプトを使用すると、手作業で行っているユーザー登録のムラを無くし、短時間で効率的にAD上にユーザーを作成することができます。
セキュリティグループやログオンスクリプト等も合わせて設定を行う仕様になっておりますので、必要に応じてカスタマイズすることで環境に合わせたものにすることも可能です。
それではご説明させていただきます。
スクリプトのサンプル
スクリプトのサンプルです。
AD上にファイルを設置し処理を実行すると、同フォルダにあるCSVファイルを読み込んで、CSVファイルの値の内容に応じて指定したOU配下にユーザーを作成します。
読み込んだCSVの値に応じてActiveDirectory上にユーザーを作成するPowerShell
仕様
- Source.csvの行数分ユーザー作成を行う
- 読み込んだCSVはUTF-8にエンコードする(文字化け対応)
- CSVの項目名は以下の通り「AccountName」,「Name」,「DisplayName」,「password」,「script」,「memo」,「group1」,「group2」,「group3」,「group4」,「group5」,「flag」
- 「flag」の値が1かそれ以外でユーザーを作成するOUを可変させる
- 初回ログオン時パスワード変更必要のフラグをON
- ログオンに最低限必要な情報以外に、セキュリティグループとログオンスクリプトをセットする
- セキュリティグループは、「Domain Users」+CSVの「group1」,「group2」,「group3」,「group4」,「group5」の値でセット
- 社員番号を「電話」タブのメモ欄にセット(識別用の項目として)
使い方
- 処理を行うAD上のサーバーに、スクリプトファイルとCSVファイルを保存
- スクリプト2行目の「$csvPath」の値を保存したCSVファイルのパスにする
- スクリプトの17~19行目の「$Path」の値を、ユーザーを作成したいOUの値にする
- 管理者権限でPowerShellを実行する
処理が終わると、指定したOUにユーザーが一括で作成されます。
入力CSVファイルについて
入力CSVファイルの項目別にセットすべき値です。
- AccountName → ユーザーログオン名
- Name → AD上のツリーで表示させたいユーザー名
- DisplayName → ユーザーログオン時に表示させたい表示名
- password → 初期パスワードの値
- script → ログオンスクリプトの値(ない場合は空でOK)
- memo → 社員番号(一意なID)
- group1~5 → ユーザーを所属させたいセキュリティグループの値(Domain Usersは不要)
各項目にセットすべき値は、お使いの環境を確認の上で調整してください。
参考情報ですが、CSVファイルの内容を社員情報や所属情報などから自動生成するツール(ExcelVBAなどで実装)を利用すると、さらに作業を効率化することができます。
★CSVファイルをExcelVBAで作成する方法の記事
www.withdrawal-civilservice.com
以下はCSVファイルのサンプル画像です。
※見やすくするために、Excelのアプリケーションで表示しています。
あとがき
CSVファイルからActiveDirectory上にユーザーを一括作成するPowerShellでした。
記事に記載しているスクリプトをコピペし、記事に記載した内容を参考に環境に応じて調整するだけで簡単に使えるものですので、ぜひご活用ください!
また、他にもPowerShellでインフラ管理業務に使えるものを紹介している記事がありますので、ご興味のある方は下記リンクからご一読ください。
↓長期間ログオンしていないADユーザーをPowerShellでCSV出力する方法です。不要アカウントを整理する作業に活用できます。
↓PowerShellで指定したフォルダ配下の全ファイルのファイルパスと、容量を降順にソートしてCSV出力するスクリプトの記事です。ファイル整理作業のお供にどうぞ。
www.withdrawal-civilservice.com
↓PowerShellでAzureADからメールエイリアスを抽出する方法の記事