脱!公務員ブログ

元地方公務員(市役所職員)のSEが、自身の体験を元に公務員の実態や役立つ知識や経験談、IT関連の技術的な情報、美味しいお店の情報、趣味(野球、音楽、ゲーム、麻雀)に関すること、私自身の波乱に満ちた人生経験について発信します。記事を読んだ後は少し知識が増えて、笑顔になれる(ネタ要素満載)、そんなブログですので是非お立ち寄り下さい♪

PowerShellでActiveDirectoryのユーザーをCSVで一括作成する方法

本記事は、PowerShellを利用してActiveDirectoryのユーザーをCSVで一括作成するスクリプトのサンプルです。

統合アカウント管理ソリューション的なものを持っていない企業や自治体の情シスの方は、基本AD上で手作業によるユーザー作成を行っていることと思います。

このスクリプトを使用すると、手作業で行っているユーザー登録のムラを無くし、短時間で効率的にAD上にユーザーを作成することができます。

セキュリティグループやログオンスクリプト等も合わせて設定を行う仕様になっておりますので、必要に応じてカスタマイズすることで環境に合わせたものにすることも可能です。

それではご説明させていただきます。

PowerShellのアイコン画像

スクリプトのサンプル

スクリプトのサンプルです。

AD上にファイルを設置し処理を実行すると、同フォルダにあるCSVファイルを読み込んで、CSVファイルの値の内容に応じて指定したOU配下にユーザーを作成します。

読み込んだCSVの値に応じてActiveDirectory上にユーザーを作成するPowerShell

仕様

  • Source.csvの行数分ユーザー作成を行う
  • 読み込んだCSVUTF-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」の値でセット
  • 社員番号を「電話」タブのメモ欄にセット(識別用の項目として)

使い方

  1. 処理を行うAD上のサーバーに、スクリプトファイルとCSVファイルを保存
  2. スクリプト2行目の「$csvPath」の値を保存したCSVファイルのパスにする
  3. スクリプトの17~19行目の「$Path」の値を、ユーザーを作成したいOUの値にする
  4. 管理者権限でPowerShellを実行する

処理が終わると、指定したOUにユーザーが一括で作成されます。

入力CSVファイルについて

入力CSVファイルの項目別にセットすべき値です。

  • AccountName → ユーザーログオン名
  • Name → AD上のツリーで表示させたいユーザー名
  • DisplayName → ユーザーログオン時に表示させたい表示名
  • password → 初期パスワードの値
  • script → ログオンスクリプトの値(ない場合は空でOK)
  • memo → 社員番号(一意なID)
  • group1~5 → ユーザーを所属させたいセキュリティグループの値(Domain Usersは不要)

各項目にセットすべき値は、お使いの環境を確認の上で調整してください。

参考情報ですが、CSVファイルの内容を社員情報や所属情報などから自動生成するツール(ExcelVBAなどで実装)を利用すると、さらに作業を効率化することができます。(こちらについては、後日記事を作成する予定です。)

以下はCSVファイルのサンプル画像です。

入力CSVファイルのサンプル画像

※見やすくするために、Excelのアプリケーションで表示しています。

あとがき

CSVファイルからActiveDirectory上にユーザーを一括作成するPowerShellでした。

記事に記載しているスクリプトをコピペし、記事に記載した内容を参考に環境に応じて調整するだけで簡単に使えるものですので、ぜひご活用ください!

PowerShellで指定したフォルダ配下の全ファイルのファイルパスと、容量を降順にソートしてCSV出力するスクリプトの記事です。ファイル整理作業のお供にどうぞ。

www.withdrawal-civilservice.com

PowerShellでAzureADからメールエイリアスを抽出する方法の記事

www.withdrawal-civilservice.com