脱!公務員ブログ

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

【人事異動対応】PowerShellでActiveDirectoryユーザーのセキュリティグループをCSVで一括変更する方法

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

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

このスクリプトを使用すると、手作業で行っているユーザー編集のムラを無くし、短時間で効率的にADユーザーのセキュリティグループを変更することができます。

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

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

PowerShellのアイコン画像

スクリプトのサンプル

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

AD上にファイルを設置し処理を実行すると、同フォルダにあるCSVファイルを読み込んで、CSVファイルの値の内容に応じてAD上のユーザーのセキュリティグループを変更します。

読み込んだCSVの値に応じてADユーザーのセキュリティグループを一括で変更するPowerShell

仕様

  • Source.csvの行数分処理を行う
  • 読み込んだCSVUTF-8エンコードする(文字化け対応)
  • CSVの項目名は以下の通り「memo」,「SyozokuCD」,「script」,「group1」,「group2」,「group3」,「group4」,「group5」
  • 「memo」の値でユーザーを特定する(AD上のユーザーの「電話」タブのメモ欄にあらかじめ社員番号や職員番号をセットしておくこと)

★参考記事 AD上のユーザーをCSVで一括作成するPowerShell

www.withdrawal-civilservice.com

  • ログオンスクリプトを「script」の値に変更
  • セキュリティグループは、「Domain Users」+CSVの「group1」,「group2」,「group3」,「group4」,「group5」の値でセット
  • セキュリティグループの変更の動作は、いったん「Domain Users」以外の権限を削除し、「group1」から「group5」の値のセキュリティグループを追加する
  • ユーザーのセキュリティグループ変更ができなかった場合(memoの値でユーザーが見つからない)、同フォルダに処理時刻入りのファイル名で処理できなかったデータを確認するためのエラーログをテキストで出力

使い方

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

処理が終わると、ユーザーのセキュリティグループがCSVの値により一括で変更されます。(念のためAD上でセキュリティグループが変更されていることの確認を行う)

「memo」欄の値の不一致によりエラーになった場合、同フォルダ内に「yyyyMMddHHmm_エラーログ.txt」が出力されるので、内容を確認して処理できなかったユーザーの対処を行ってください。

入力CSVファイルについて

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

  • memo → 社員番号や職員番号(一意なID)
  • SyozokuCD → 部署のコード等(空欄でもOK)
  • script → ログオンスクリプトの値(ない場合は空でOK)
  • group1~5 → 変更後のユーザーのセキュリティグループの値(Domain Usersは不要)

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

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

下記の記事に書かれている内容を応用することで、変更用のCSVを生成することができます。

www.withdrawal-civilservice.com

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

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

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

あとがき

CSVファイルを読み込んでActiveDirectoryユーザーのセキュリティグループを一括で変更するPowerShellでした。

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

また、他にもPowerShellでインフラ管理業務に使えるものを紹介している記事がありますので、ご興味のある方は下記リンクからご一読ください。

↓長期間ログオンしていないADユーザーをPowerShellCSV出力する方法です。不要アカウントを整理する作業に活用できます。

www.withdrawal-civilservice.com

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

www.withdrawal-civilservice.com

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

www.withdrawal-civilservice.com