自社の対応案件の中でどうしても必要になってきたので自身の備忘のため・・・
Micorosoft公式のドキュメントを見ればすぐにわかると思いますが、
実際にインストールした時の挙動を備忘としてのこしています。
ほか、気楽に利用できるスクリプトもあるのだと思いますが、
せっかくなので標準で利用できるPowerShellを利用してみようと思い
モジュールをインストールからテナントへ初回ログインまでを実施してみました。
参考文献
わかる人はこれだけ見ればわかると思います。ただ、こまごまとしたものが見たくない!
という場合は下記の導入方法からコマンドを実行してみてください。
※エラーが出た場合は公式ドキュメントをまずは見てみてください。
導入方法
Graphモジュールをインストールする。
Install-Module Microsoft.Graph
続行するには NuGet プロバイダーが必要ですと表示された場合は「Y」+Enterを押して続行
続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet
プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または
'C:\Users\user\AppData\Local\PackageManagement\ProviderAssemblies' に配置する必要があります。'Install-PackageProvider
-Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGet プロバイダーをインストールすることもできます。今すぐ
PowerShellGet で NuGet プロバイダーをインストールしてインポートしますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
リポジトリについて信頼するか確認が出てくるので、こちらも「Y」+Enter
信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit
ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
からモジュールをインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
しばらくインストールの表示が出るので待機
Installing package 'Microsoft.Graph' Installing dependent package 'Microsoft.Graph.Sites' [ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ] Installing package 'Microsoft.Graph.Sites' Downloaded 0.00 MB out of 20.39 MB. [ ]
インストールの表示が消えた後もしばらくプロンプトが返ってこないが、中断しない。Ctrl+Cなどでリセットすると最初からやり直しになる。
コンソールが返ってきたらインストール完了です。
インストールできたかどうかは下記のコマンドでバージョン確認することにより可能です。
Get-Module -Name Microsoft.Graph -ListAvailablepowershell
実行例は下記の通り
PS C:\WINDOWS\system32> Get-Module -Name Microsoft.Graph -ListAvailable
ディレクトリ: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 2.25.0 Microsoft.Graph
PS C:\WINDOWS\system32>
できたら接続してみましょう!
接続するには下記のコマンドです。
PS C:\WINDOWS\system32> Connect-MgGraph -Scopes "User.Read.All","Group.ReadWrite.All"
パスワードを入力し、場合によっては多要素認証を通ると下記の通りアクセス許可の要求が表示されるので「承諾」を押して続行してください。
無事にうまくいくと下記の通り表示されるはずです。
PS C:\WINDOWS\system32> Connect-MgGraph -Scopes "User.Read.All","Group.ReadWrite.All"
Welcome to Microsoft Graph!
Connected via delegated access using 14d82eec-204b-4c2f-b7e8-296a70dab67e
Readme: https://aka.ms/graph/sdk/powershell
SDK Docs: https://aka.ms/graph/sdk/powershell/docs
API Docs: https://aka.ms/graph/docs
NOTE: You can use the -NoWelcome parameter to suppress this message.
今ログインしている組織情報を取得するには下記のコマンドを実行してください。
Get-MgOrganization | Format-List
下記の通り組織情報が取得できると思います。
PS C:\WINDOWS\system32> Get-MgOrganization | Format-List
AssignedPlans : {1fe6227d-3e01-46d0-9510-0acad4ff6e94, a312bdeb-1e21-40d0-84b1-0e73f128144f, d8c
638e2-9508-40e3-9877-feb87603837b, c7ce3f26-564d-4d3a-878d-d8ab868c85fe...}
Branding : Microsoft.Graph.PowerShell.Models.MicrosoftGraphOrganizationalBranding
BusinessPhones : {4000000000
CertificateBasedAuthConfiguration :
City :
Country :
CountryLetterCode : SG
CreatedDateTime : 2024/01/08 6:31:58
DefaultUsageLocation :
DeletedDateTime :
DisplayName : ※テナントの表示名です。保護のため削除しています※
Extensions :
Id : ※テナントのID情報です。保護のため削除しています※
MarketingNotificationEmails : {}
MobileDeviceManagementAuthority :
OnPremisesLastSyncDateTime :
OnPremisesSyncEnabled :
PartnerTenantType :
PostalCode :
PreferredLanguage : en
PrivacyProfile : Microsoft.Graph.PowerShell.Models.MicrosoftGraphPrivacyProfile
ProvisionedPlans : {Microsoft.Graph.PowerShell.Models.MicrosoftGraphProvisionedPlan, Microsoft.Grap
h.PowerShell.Models.MicrosoftGraphProvisionedPlan, Microsoft.Graph.PowerShell.Mo
dels.MicrosoftGraphProvisionedPlan, Microsoft.Graph.PowerShell.Models.MicrosoftG
raphProvisionedPlan...}
SecurityComplianceNotificationMails : {}
SecurityComplianceNotificationPhones : {}
State :
Street :
TechnicalNotificationMails : ※技術担当者のメール。保護のため削除しています。
TenantType : AAD
VerifiedDomains : ※承認されたドメイン。保護のため削除しています。
AdditionalProperties : {[directorySizeQuota, System.Collections.Generic.Dictionary`2[System.String,Syst
em.Object]], [onPremisesSyncStatus, System.Object[]]}
セッションごとにログインが必要ですが、以降はほかのコマンドを利用してM365の管理情報を取得。更新が可能になります。