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モジュール」のインストールが必要です。
以上。
コメント