2023年3月はMSOnlineを使ってMicrosoft365のユーザ作成・Officeライセンスの付与を行っておりましたが、ライセンス付与コマンドの廃止に伴い試行錯誤の末、なんとかできるようになったのでコマンドをコピペの備忘録となります。何度もつまづきながらでやっと出来た。という感じなのでコマンド、インストール等間違っているおそれあります。
IDについては作成-削除を複数回おこなっているため同じUserPrincipalNameでも違う値が表示されています。悪しからず。
記事中の架空アカウント
アカウント情報(以下は当然ながら実在しない当記事の例となります
表示名:ほげ_ほげお
SurName 姓:ほげ
Given name 名:ほげお
メールアドレス:hoge.hogeo@hoge.com
パスワード:Passw@d
配布リスト(メーリングリストと同意)のCSV
PowerShell-7.4.1-win-x64のインストール
新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows
とあったので、ダウンロードしてインストール実行 初回のみ
PowerShell64bit版を管理者として実行する
Microsoft Graph SDKのインストール
初回のみ必要(と思う)適用完了までじっと待ちます。
Install-Module Microsoft.Graph
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its
InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from
'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): A
Microsoft Graph は、Microsoft 365 のデータとインテリジェンスへの入り口です。 Microsoft Graph は、Microsoft 365、Windows、および Enterprise Mobility + Security の膨大な量のデータにアクセスする際に使用できる統合型プログラミング モデルを提供します。 Microsoft Graph を通じてアクセスできる豊富なデータを使用して、何百万人ものユーザーと対話する組織とコンシューマー向けのアプリを構築する
Microsoft Graphへの接続(管理者の資格情報を使用)
Connect-MgGraph -Scopes "Organization.Read.All","User.ReadWrite.All"
OAuth2.0 認証が必要 契約しているテナントの管理アカウントとパスワードを入力する。
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.
ユーザ作成
New-MgUser -DisplayName "ほげ_ほげお" -SurName "ほげ" -GivenName "ほげお" -UserPrincipalName hoge.hogeo@hoge.com -UsageLocation JP -Country JP -PreferredLanguage ja-JP -PasswordProfile @{ForceChangePasswordNextSignIn = $false; Password = "Passwo@d"} -MailNickname hoge.hogeo -AccountEnabled
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
ほげ_ほげお 0c1bf4b2-4c3a-47f5-a749-8d5980930640 hoge.hogeo@hoge.com
ユーザ情報取得
Get-MgUser -UserId hoge.hogeo@hoge.com
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
ほげ_ほげお fe331117-7698-4cd4-a06f-94f4a1c81be4 hoge.hogeo@hoge.com hoge.hogeo@hoge.jp
ライセンス付与(Microsoft365 Bussiness Standard)
$License1 = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphAssignedLicense -Property @{SkuId = "f245ecc8-75af-4f8e-b61f-27d8114de5f3"};
Set-MgUserLicense -UserId "hoge.hogeo@hoge.com" -AddLicenses @($License1) -RemoveLicenses @();
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
ほげ_ほげお 0c1bf4b2-4c3a-47f5-a749-8d5980930640 hoge.hogeo@hoge.com hoge.hogeo@hoge.com
割当が全くないユーザにはこちらの1行でライセンス付与できる。
Set-MgUserLicense -UserId hoge.hogeo@hoge.com-AddLicenses @{SkuId="f245ecc8-75af-4f8e-b61f-27d8114de5f3"} -RemoveLicenses @()
ライセンス情報の確認(参考)
Get-MgSubscribedSku | ft Id, SkuId, SkuPartNumber -Wrap
テナントユーザに割当てられているライセンス確認一覧
Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Select UserPrincipalName,DisplayName,AssignedLicenses | Format-Table -Property UserPrincipalName,DisplayName,AssignedLicenses
Write-Host "Found $licensedUserCount licensed users."
UserPrincipalName DisplayName AssignedLicenses
----------------- ----------- ----------------
hoge.hogeo@hoge.com ほげ_ほげほげお {f245ecc8-75af-4f8e-b61f-27d8114de5f3}
ライセンスの削除(参考)
Set-MgUserLicense -UserId "hoge.hogeo@hoge.com" -AddLicenses @() -RemoveLicenses @("f245ecc8-75af-4f8e-b61f-27d8114de5f3")
ユーザの削除(参考)
Remove-MgUser -UserId "hoge.hogeo@hoge.com"
Microsoft Graph 切断
Disconnect-MgGraph
ClientId : ClientId 英数値の羅列
TenantId : TenantId 英数値の羅列
Scopes : {openid, Organization.Read.All, profile, User.ReadWrite.All…}
AuthType : Delegated
TokenCredentialType : InteractiveBrowser
CertificateThumbprint :
CertificateSubjectName :
Account : admin@hoge.com
AppName : Microsoft Graph Command Line Tools
ContextScope : CurrentUser
Certificate :
PSHostVersion : 7.4.1
ManagedIdentityId :
ClientSecret :
Environment : Global
参考にしたURL
Microsoft Graph PowerShell SDK を使用したライセンス管理操作の紹介
【 Set-MgUserLicense 】コマンドレット――Azure Active Directoryユーザーにライセンスを割り当てる
コメント