Get-MsolUser PowerShell Attributes & Properties

この記事は2021年に更新されました。 WAADは2018年に引退しましたが、この記事に記載されているコマンドレットは、WAADを使用している組織にとって依然として有用であることに注意してください。

Office 365 Windows Azure Active Directory、略してWAADを管理する際にGet-MSolUser PowerShellコマンドレットは重要な役割を果たすことを知るOffice 365管理者は多くありません。

Windows Server Tutorials

Office 365 WAADに関する日々の運用タスクにおいてGet-MSolUserが非常に便利であると言えます。

しかし、Get-MsolUserコマンドレットや他のOffice 365 PowerShellコマンドレットを使用する前に、Windows 7以降を実行しているコンピューターにMicrosoft Online Sign-In Assistant for IT ProfessionalとWindows Azure Active Directory Module for Windows PowerShellをインストールしなければなりません。

注意:2015年10月に、Microsoft開発者は多要素対応 (MFA) のOffice 365ユーザー アカウントをサポートする新しいバージョンのAzure Active Directory Moduleをリリースしています。 旧バージョンのAzure Active Directory Moduleは、MFA対応のアカウントをサポートしていません。 Azure PowerShellのMFAバージョンは、Microsoft connectサイトからダウンロードできます。

今回は、30日間の無料体験ができるOffice 365 Business Premiumを使用しています。 ExampleIT.com というドメインを追加しましたが、これは電子メール、SharePoint、Lync などの Office 365 サービスや、ユーザーがデスクトップやモバイル デバイスで Word、Excel、PowerPoint などの Office アプリケーションをダウンロードできるようにするために使用するドメインです。

MSOnline Sign-In AssistantとAzure PowerShell Moduleをコンピューターにインストールしたら、スタート>検索>「Windows Azure Active Directory Module」と入力し、ショートカットを右クリックし、「管理者として実行」をクリックして昇格モードでAzure PowerShellウィンドウを開いてください。 次に、「Connect-MSolservice」を使用して Office 365 Tenant に接続し、Get – MSOlUser コマンドレットを使用して WAAD ユーザーを探索することができます。

デフォルトでは、GetMsolUser PowerShell コマンドレットを実行すると、User Principal Name や Display Name、ユーザーがライセンスを取得しているかどうかが表示されるようになっています。

get-msoluser PowerShell Cmdlet - Screenshot #1

上記の出力にあるように、Get-MSOlUserはOffice 365で作成されたすべてのユーザーのUserPrincipalName, DisplayNameおよびライセンスの状況を一覧表示します。 isLicense status列は、ユーザーがOffice 365サービスに加入しているかどうかを示します。

これは、パラメーターなしでGet-MSOlUserコマンドレットを実行したときに表示される基本的な出力です。 しかし、Get-MSolUser コマンドレットでできることは、これ以外にもたくさんあります。

たとえば、次のようになります。

  • ユーザーの検索
  • ユーザーの作成日の特定
  • ユーザーが最後にパスワードを変更した日の特定
  • どのライセンスがユーザーに関連しているか
  • ユーザーに適用するパスワードポリシー
  • ユーザーがオンザフライから同期されているかどうか
  • ユーザーはオンザフライから同期されているか?Premises Active Directory の有無

Get-MsolUser PowerShell コマンドのリストには、日々の運用で役に立つと思われるオプションが含まれています。

Get Creation Date and Time for Office 365 Users

ユーザーのリストを作成時間と共に取得するには、次のPowerShellコマンドを実行します:

GET-MSOLUSER | SELECT-OBJECT USERPRINCIPALNAME, WHENCREATED | FT -AUTOSIZE

下のPowerShellウィンドウに示すように、「WhenCreated」プロパティにユーザーの作成時間が表示されます。

Get-MsolUser PowerShell コマンドレット - スクリーンショット #2

リストを CSV ファイルにエクスポートする場合は、次のコマンドを使用します:

Get-MsolUser -ALL | Select-Object UserPrincipalName, WhenCreated | Export-CSV AllUsersWithWhenCreated.CSV -NoTypeInformation

ファイル名 “AllUsersWithWhenCreated.” の CSV ファイルは、”WhenCreated” という名前のファイルであることがわかります。CSV」というファイル名の CSV ファイルがローカル フォルダーに生成されます。

Tip: Export-CSV PowerShell コマンドレットは、すべての Windows PowerShell コマンドレットに対応しています。

ユーザーの検索

Office 365 Admin Center でユーザーの検索はできますが、Get-MSOLUser コマンドレットの使用により CSV ファイルに出力を格納する機会が提供されます。 たとえば、表示名に「Rick」を含むユーザーの一覧を取得するには、次のコマンドを実行します。:

GET-MSOLUSER -SEARCHSTRING "RICK" | SELECT-OBJECT USERPRINCIPALNAME, ISLICENSED | EXPORT-CSV USERSWITHRICK.CSV -NOTYPEINFORMATION

List Users that are Enabled/Disabled

また、「-EnabledFilter」パラメータを追加すると、Get-MSolUserコマンドレットを用いて有効または無効になっているユーザーの一覧を取得することが可能です。 EnabledFilter」パラメーターは、2つの値をサポートしています。 これらのコマンドに示すように、EnabledOnlyとDisabledOnlyの2つの値をサポートしています。

GET-MSOLUSER -ENABLEDFILTER ENABLEDONLY -ALL | EXPORT-CSV ENABLEDOFFICE365USERS.CSV -NOTYPEINFORMATION

GET-MSOLUSER -ENABLEDFILTER DISABLEDONLY -ALL | EXPORT-CSV DISABLEDOFFICE365USERS.CSV -NOTYPEINFORMATION

最初のコマンドは有効になっているユーザー、2番目のコマンドは現在無効になっているユーザー一覧を取得します。

同期されたユーザーの取得

Office 365 では、DirSync、AADSync または AADConnect ツールを使用してオンプレミス Active Directory からユーザーを同期して Office 365 WAAD に入力する「Synchronized Identity」シナリオを実装することが可能です。 この同期により、Office 365で個別にユーザーを作成する必要がなくなります。

Azure PowerShellコマンドレットは、オンプレミスActive Directoryから同期されているユーザーを一覧表示するために使用できるスイッチを提供しないことに注意することが重要です。 これは、Get-MSOlUser コマンドレットが非常に強力である理由です。
オンプレミス Active Directory から同期されるすべてのユーザーには、”ImmutableID” というユーザー属性が付与されます。 ImmutableID」属性は、ユーザーがオンプレミスActive Directoryから同期されたときに永続します。

GET-MSOLUSER -ALL | WHERE IMMUTABLEID -NE $NULL

このコマンドは、ImmutableID属性に値が割り当てられていないすべてのユーザーに問い合わせるようにGet-MSOlUserに指示します。

Get Last Synchronization Time for Users

On-premises Active Directoryから同期されるすべてのユーザーには同期のタイムスタンプが存在します。 これらのコマンドは、1人のユーザーまたは複数のユーザーの最終同期時刻を取得します。

1 人のユーザーの最終同期時刻を取得するには:

GET-MSOLUSER -USERPRINCIPALNAME "" | SELECT-OBJECT USERPRINCIPALNAME, LASTDIRSYNCTIME

また、すべてのユーザーに対してこのコマンドを実行し、出力を CSV ファイルに保存するには、このコマンドを使用します。

GET-MSOLUSER -ALL | SELECT-OBJECT USERPRINCIPALNAME, LASTDIRSYNCTIME

Get-MsolUser PowerShell コマンドレットを使用して取得できる貴重な Office 365 ユーザー情報は他にもありますが、まずは必要な情報を保持している Office 365 ユーザーに対して利用可能なプロパティがあるかどうかを知る必要があります。

Office 365ユーザーに関連するユーザー プロパティの一覧を取得するには、「Get-MSOlUser|Get-Member」コマンドを実行します。 必要なユーザー情報を保持している可能性のあるユーザー プロパティがわかったら、次の Get-MSOlUser 構文を使用してユーザー情報を取得します:

GET-MSOLUSER -USERPRINCIPALNAME "" | SELECT-OBJECT PROPERTY1, PROPERTY2, PROPERTY3

Getting Information for All Office 365 Users

上記で説明したいくつかの PowerShell コマンドで -MaxResults または -ALL パラメータが使用されていることに気づいたかも知れません。 デフォルトでは、Get-MsolUserコマンドレットは、1つのコマンドで500人のユーザーしか取得できません。

Office 365 WAADに500人以上のユーザーがいる場合、-ALLパラメーターまたは-MaxResultsパラメーターを使用する必要があります。 MaxResultsパラメーターは、-MaxResultsパラメーターで指定された値まで返すようにGet-MSolUserコマンドレットに指示し、-ALLパラメーターは、すべてのOffice 365ユーザーの結果を取得することが可能です。 コマンドの要件に基づいてこれらのパラメーターを使用することを忘れないでください。

Get-MSOLUSER for flexibility

Microsoft Office 365 は、Office 365 Admin Center を介してタスクを実行する時間を劇的に短縮できる PowerShell コマンドレットを提供します。 Office 365 クラウド環境におけるタスクのほとんどはユーザーに関連付けられているため、Get-MsolUser PowerShell コマンドレットを使用すると、Office 365 WAAD インスタンスの管理に関してより柔軟性が高まります。

Nirmal Sharma は MCSEx3, MCITP および Microsoft MVP in Directory Services を取得しています。 専門はディレクトリサービス、Microsoft Azure、Failover Cluster、Hyper-V、System Center、Exchange Serversで、1994年からMicrosoftテクノロジーに携わっています。 余暇には、様々なサイトにヒントや記事を書いたり、ADHealthProf.ITDynamicPacks.Netソリューションのヘルスパックに貢献したりして、他の人を助け、自分の知識の一部を共有することを好んでいます。 Nirmalの連絡先は、

です。

Leave a Reply