Azure ADのPowerShell(v1)でMicrosoft365を操作(その1:Microsoft365に接続)

投稿者: | 2020年4月30日

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:コマンド集)」になります

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です