PowerShell ADアカウント確認やグループ参加コマンドメモ

IT雑記
この記事は約4分で読めます。
記事内に広告が含まれています。

Windows PowerShellによるADアカウント情報の確認やグループ参加コマンドです。

※よく忘れるためほぼ個人用で残します。

アカウント情報確認

「管理者権限」でPowershellを起動しないと最低限の情報しか入ってこない。

# 任意アカウントの基本情報を取得
get-aduser -filter {SamAccountName -eq "アカウント名"}

# 任意アカウントの詳細情報を取得
get-aduser -filter {SamAccountName -eq "アカウント名"} -Properties *

# 任意アカウントの基本情報+最終ログイン情報を取得
get-aduser -filter {SamAccountName -eq "アカウント名"} -Properties LastLogonDate

# 有効アカウント一覧を取得
# (Select-Objectで概要要素のみに絞込み)
get-aduser -filter {enabled -eq $true} | Select-Object sAMAccountName

# 有効アカウントとメールアドレスの一覧を取得
# (Select-Objectで複数要素はカンマ区切りで指定)
get-aduser -filter {enabled -eq $true} | Select-Object sAMAccountName,mail

グループ操作

こちらも基本的には管理者権限で操作する。

# 指定グループの所属ユーザを取得(管理者権限じゃなくても可)
Get-ADGroupMember -Identity "グループ名"

# グループ参加
Add-ADGroupMember -Identity "グループ名" -Members "アカウント名"

# グループ離脱(確認有)
Remove-ADGroupMember -Identity "グループ名" -Members "アカウント名"

# グループ離脱(確認無)
Remove-ADGroupMember -Identity "グループ名" -Members "アカウント名" -Confirm:$false

複数アカウントが書かれたCSVファイルを読み込みながらグループ設定する場合は次の通り。

# グループ参加(リスト読込)
Import-Csv c:\account.csv | Foreach-Object {
Add-ADGroupMember -Identity "グループ名" -Members $_.sAMAccountName
}

※CSVファイルは以下フォーマットを想定(1行目がヘッダ)
sAMAccountName
アカウント1
アカウント2
:

なお、指定グループの所属ユーザ情報取得においてmailを取得するには一工夫必要。Get-ADGroupMemberの戻りにmailは含まれていないため、得られた結果を「Get-ADUser」に渡す。

Get-ADGroupMember -Identity "グループ名" | %{Get-ADUser -Properties * -Filter {Name -eq $_.Name} } | Select-object mail

※ % = ForEach-Objectのエイリアス
※ $_ = パイプラインに渡されたオブジェクトの変数

(参考) 出力結果のCSV出力

出力内容が長いと「result..」のように途切れることがあるけど、CSV出力なら途切れない。「| Export-CSV -f c:\結果.csv」のようにパイプで繋いであげればOK。

# 実行例
get-aduser -filter {enabled -eq $true} | Select-Object sAMAccountName,mail | Export-CSV -f c:\結果.csv

既存コマンドの最後にくっつけるだけなので簡単です。

(参考) コマンドを使えるようにするために

サーバによってはコマンドが使えません(以下は例)。

Get-ADGroupMember : 用語 'Get-ADGroupMember' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ Get-ADGroupMember -Identity "hoge"
+ ~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-ADGroupMember:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

機能「Windows PowerShellのActive Directoryモジュール」のインストールが必要です。

以上。

コメント

Top
タイトルとURLをコピーしました