この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
はじめに
ADユーザーのグループごとに対象のシステムや権限を管理しているときに、一時的な対処などでユーザーの所属しているグループを移動させたいといった場合があるかと思います。数ユーザーの移動ならともかく企業や組織が管理しているユーザー数が数十以上となってくると、手作業でユーザーを管理することは大変ですし、ミスの温床となると思います。そこで本ブログではADユーザーのグループを簡単に移動する方法をご紹介します。
グループ移動の考え方
今回ご紹介する方法はとてもシンプルです。Group1に所属しているユーザーをGroup2に移動する方法を考えます。

今回ご紹介する方法ではユーザーグループを削除して追加するといったアプローチでユーザーのグループ移動を実行します。

グループ移動のコマンド
まず、移行するユーザーのリストを作成します。
スクリプトを実行する前に画像のような形でCSVファイルでユーザーのリストを作成してください。今回はtest1~test4というユーザーをまとめてグループ移動させます。

ユーザーリストが作成できたら早速ユーザーのグループ削除を実行します。
まず、削除前のtestユーザーの所属グループは以下です。
現在ユーザーはDomainUsersの他にgroup1に所属しています。

削除のスクリプトは以下です。こちらをPowerShellで実行します。
実際にはgroup1を外すようにスクリプトを実行しました。
$CSV = Import-CSV <ユーザーリストのパス> -Encoding default
net group <削除するグループ名> $CSV.UserList /DELETE

スクリプトを実行後のユーザーグループは以下となり、group1は消えています。

続いてグループを追加します。
追加のスクリプトは以下です。
今度はgroup2に追加するようにスクリプトを実行しました。
$CSV = Import-CSV <ユーザーリストのパス> -Encoding default
net group <追加するグループ名> $CSV.UserList /ADD

スクリプトを実行後のユーザーグループは以下となり、group2が追加されています。

以上で結果的にユーザーのグループがgroup1からgroup2へと移動されました。
追記
今回ご紹介したスクリプトを編集して、削除と追加のスクリプトは以下のように連続で実行することができます。
$deletegroup ="<削除するグループ名>"
$addgroup ="<追加するグループ名>"
$CSV = Import-CSV <ユーザーリストのパス> -Encoding default
net group $deletegroup $CSV.UserList /DELETE
net group $addgroup $CSV.UserList /ADD