Microsoft365 Get-UserをPowerShellで実行してユーザーアカウントの情報を取得する方法

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

コメント

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