PowerShellでGet-Userコマンドでユーザーアカウントの情報を取得する方法について紹介する。
PowerShellの起動とMicrosoft365への接続
「ファイル名を指定して実行」を起動し、下記のコマンドを実行する
powershell -NoExit -ExecutionPolicy RemoteSigned
PowerShellが起動すると、下記のコマンドを順次実行して、ExchangeOnlineに接続する。ユーザー認証が必要なため、管理者ユーザーでログインする必要がある。
Connect-ExchangeOnline
PowerShell Getコマンドのパラメータをすべて表示する
ユーザーアカウントの一覧を表示するには、下記のコマンドを実行する。
Get-User
上記コマンドではあまり見たい情報が出てこないので、メールボックス(UserMailbox)があるユーザーアカウントで、表示名とメールアドレスの一覧を表示するコマンドを下記に示す。
「-Filter」オプションでメールボックスがあるユーザーのみに絞り、「Select」オプションで出力する項目をカンマ区切りで記述している。
Get-User -Filter "RecipientType -eq 'UserMailbox'" | Select DisplayName,UserPrincipalName
例:表示名、メールアドレス、部署、苗字、名前、事務所、フリガナ、電話番号を出力する
Get-User -Filter "RecipientType -eq 'UserMailbox'" | Select DisplayName,UserPrincipalName,Department,LastName,FirstName,Office,PhoneticDisplayName,Phone
Selectオプションで指定できる項目を調べる
「Select」オプションで指定できる項目はほかにもあり、どのような項目があるか調べるには下記のコマンドを実行する。[メールアドレス] 部分に、特定のメールアドレスを指定して実行してみよう。
Get-User -Identity [メールアドレス] | Format-List
Filterオプションで出力するユーザーアカウントを絞り込む
「-Filter」オプションで出力するユーザーアカウントを絞り込むことができる。
例:名前を条件に絞ると下記のコマンドになる。
Get-User -Filter "DisplayName -like '*[名前]*'" | Select DisplayName,UserPrincipalName
例:部署名を条件に絞ると下記のコマンドになる
Get-User -Filter "Department -like '*[部署名]*'" | Select DisplayName,UserPrincipalName
例:ユーザーアカウントを作成した日を指定した日以降に絞るには下記のコマンドになる
Get-User -Filter "WhenCreated -lt '2022/12/01'" | Select DisplayName,UserPrincipalName
例:ユーザーアカウントを作成した日が30日前以降に以降の場合
$time = (Get-Date).AddDays(-30).Tostring("yyyy/MM/dd") Get-User -Filter "WhenCreated -gt '$time'" | Select DisplayName,UserPrincipalName
条件の比較演算子
条件の比較演算子は、下記を参考にして指定する
比較演算子 | 一般的な比較演算子 | 意味 |
---|---|---|
-like | ワイルドカードと等しい | |
-notlike | ワイルドカードと等しくない | |
-match | 正規表現と等しい | |
-notmatch | 正規表現と等しくない | |
-eq | == | 等しい |
-ne | != | 等しくない |
-gt | > | より大きい |
-ge | >= | 以上 |
-lt | < | より小さい |
-le | <= | 以下 |
CSVファイルに出力する
上記をCSVに出力するには、「Export-Csv」オプションを追加して、下記のコマンドを実行する
Get-User -Filter "RecipientType -eq 'UserMailbox'" | Select DisplayName,UserPrincipalName | Export-csv -path "C:\temp\getuser.csv" -NoTypeInformation -Encoding Default
※エンコードを「Default」としているが、デフォルトエンコードが何かを調べるには下記のコマンドを実行する。
[System.Text.Encoding]::Default
文字コードをUTF8で出力するには、「-Encoding UTF8」と指定して実行する
Get-User -Filter "RecipientType -eq 'UserMailbox'" | Select DisplayName,UserPrincipalName | Export-csv -path C:\temp\getuser.csv -NoTypeInformation -Encoding UTF8
グリッドビューで表示する
CSVファイルに出力するほどではないが、見た目をもう少しどうにかしたい場合は、グリッドビュー画面を活用してみると良い。グリッドビュー画面を表示するには「Out-GridView」オプションを追加して、下記のコマンドを実行する
Get-User -Filter "RecipientType -eq 'UserMailbox'" | Select DisplayName,UserPrincipalName | Out-GridView
コメント