Microsoft365(office365) の管理は通常はブラウザから管理ツールを使って行います。ユーザ登録やライセンスの許可などの場合は、多くのユーザアカウントで同じ作業の繰り返しとなります。
ここでは、Azure ADのPowerShellもVersion 1 でcsvファイルを使いユーザの一括登録や設定を行うことができます。
目次
Microsoft365への接続
Microsoft365 のアカウントなどの情報は、Microsoft Azure Active Directory(MS Online)で管理されています。これはMicrosoftクラウド上の Active Directory です。
PowerShell で MS Online に接続することで、Microsoft365 を操作できるようにします。
Microsoft Online Services サインイン アシスタント
Microsoft Online Services サインイン アシスタントをインストールします。
IT プロフェッショナル 用 Microsoft Online Services サインイン アシスタント RTW
<https://www.microsoft.com/ja-jp/download/details.aspx?id=41950>
MicrosoftのWebサイトでもMicrosoft Online Services サインイン アシスタントをインストールするように記載されていますが、私の環境ではインストールしなくても作業はできました。
PowerShellのMS Onlineモジュール
PowerShell 用の MS Online モジュールをインストールします。それにより Microsoft365 を操作するための各種コマンドを実行できるようになります。
①Powershellを ”管理者” で起動
②MS Online モジュールをインストール
コマンドは「Install-Module MSOnline」です。
インストール中に2回質問がありますが、どちらも「Y」→Enterとします。
PS> Install-Module MSOnline 続行するには NuGet プロバイダーが必要です PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または 'C:\Users\susumu\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 信頼されていないリポジトリ 信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery' からモジュールをインストールしますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y
これで MS Online に接続する準備ができました。
MS Onlineに接続
①変数にMicrosoft365のユーザ名とパスワードを保存
コマンドは「$credential = Get-Credential」です。
PS> $credential = Get-Credential コマンド パイプライン位置 1 のコマンドレット Get-Credential 次のパラメーターに値を指定してください: Credential
IDとパスワードを入力する画面が表示されますので、Office365 の管理者権限を持つユーザーのIDとパスワードを入力します。
②Microsof365に接続
コマンドは「Connect-MsolService -Credential $credential」です。エラーも何も出なければ接続できています。
接続後にドメインの確認をするコマンドは「Get-MsolDomain」です。
また、ライセンスの確認(ライセンス数や使用数)の確認コマンドは「Get-MsolAccountSku」です。
PS> Connect-MsolService -Credential $credential #ドメインの確認 PS> Get-MsolDomain Name Status Authentication ---- ------ -------------- xxxxxxxx.onmicrosoft.com Verified Managed #ライセンスの確認 PS> Get-MsolAccountSku AccountSkuId ActiveUnits WarningUnits ConsumedUnits ------------ ----------- ------------ ------------- xxxxxxxxxxxxxx:O365_BUSINESS_PREMIUM xxx 0 xxx xxxxxxxxxxxxxx:FLOW_FREE 10000 0 xxx
これで、PowerShell で Office365 を操作ができる状態となりました。
次回以降に(PowerShell 画面を閉じた後)に再度接続する場合は、「①変数にMicrosoft365のユーザ名とパスワードを保存」から実施してください。
接続の自動化
以下のスクリプトでMicrosoft365への接続とコマンド操作を自動化することができます。
# #例えば autoconn.ps1 として作成する # # Microsoft 365 の 管理者のアカウントと、パスワード $AdminAccount = '<管理者のメールアドレス>' $AdminPass = '<管理者のパスワード>' # パスワードを Secure String に変換 $secPass = ConvertTo-SecureString $AdminPass -AsPlainText -Force # Office 365 管理者アカウントの認証情報を格納 $Credential = New-Object System.Management.Automation.PSCredential($AdminAccount, $secPass) # Office 365 へ接続 Connect-MsolService -Credential $credential #以下に実行したいコマンドを入れる #例えばドメインの確認 Get-MsolDomain
次の操作
次回は、「Azure ADのPowerShell(v1)でMicrosoft365を操作(その2:コマンド集)」になります