PowerShellでOffice365やAzureADを操作するための事前準備

こんにちはますのです。
4月や10月などの入社対応の一環で500人規模のOffice365ライセンスを管理する対応がありました。いつも5人程度だから手動対応なのです。。。500人分ポチポチなんて泣いてしまうのです。

色々調べたらありますね!Office365のライセンス関連をコマンドでお触りする方法が!!その時に行った事前設定を記載していきます。ライセンス付与の方法などは別の機会に詳しく記載しますね!

結論:「Install-Module MSOnline」をPowerShellで実行するだけ!

PowerShellを管理者権限で実行して、「Install-Module MSOnline」を入力してほぼ完了します。
もしこのコマンドだけでうまくいかない場合は前提条件が整っていないかもしれないので後述する内容を確認してみてくださいね。

【準備1】.NET Frameworkのバージョンを4.5.2 以降にする

バージョンが古くても動作することがあるようですが、動作が安定しないことがある様子。社内システム的な問題が無いようであれば新しいものを入れて試したほうが良さそうですね。

現在インストールされている.NET Frameworkのバージョンを確認する際はコマンド「Get-ChildItem」をお試しあれです。
↓の場合は「4.7.02053」バージョンであるため更新は不要になります。

PS c:¥ > Get-ChildItem ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP’ -recurse | Get-ItemProperty -name Version,Release -EA 0 | Where { $_.PSChildName -match ‘^(?!S)\p{L}’} | Select PSChildName, Version, Release

PSChildName Version Release
———– ——- ——-
Client 4.7.02053 460805

Full 4.7.02053 460805
Client 4.0.0.0

【準備2】PowerShellのバージョンを5.0 以降にする

.NET Frameworkと同様、WMFと言われる「Windows Management Framework」もバージョンが古くても動くようですが特に理由がない限りは新しいものに更新しておきましょう。

ちなみにWindows10では出荷時にインストール済みのようです。
現在インストールされているWMFのバージョンを確認する際はこのコマンドをお試しあれです。
↓の場合は「5.1.14393.2969」バージョンであるため更新は不要になります。

PS c:¥ > $psversiontable

Name Value
—- —–
PSVersion 5.1.14393.2969
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
BuildVersion 10.0.14393.2969
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

【準備3】OS: Windows 7 SP1、 Windows Server 2008 R2 以降であること

クライアントOSのWindows7では64bit必須のようです。32bitの方はインストールできないかもです。
もしくは出来たとしても処理できるユーザ数がとても少なくなるかも。以前のバージョンの際にしか試してませんが、その際は32bitで大量処理はできなかったと記憶しています。

Azure AD PowerShellをインストールする

上記の準備1〜3が完了したら、一番最初にご紹介したコマンドを実行するのみでイケるはずです!
では実際にコマンドを入力してみましょう。

先ず、管理者権限でPowerShellを起動し、「Install-Module MSOnline」を実行します。

PS c:¥> Install-Module MSOnline

しばらくすると「NuGetプロバイダーが必要」というメッセージが表示されるため、「y」で続行します。続いて「信頼されていないリポジトリ」とメッセージが表示されますが同様に「y」で続行します。

続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、’2.8.5.201′ 以降のバージョンの NuGet
プロバイダーが必要です。NuGet プロバイダーは ‘C:\Program Files\PackageManagement\ProviderAssemblies’ または
‘c:\Users\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-PSRepository コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。’PSGallery’
からモジュールをインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は “N”): y

モジュールがインストールされたか確認する

「Install-Module MSOnline」正しく正常し、モジュールがインストールされたことをコマンド「 Get-InstalledModule」で確認します。
↓で「MSOnline」が表示されれば完了です!

PS c:¥ > Get-InstalledModule

Version Name Repository Description
——- —- ———- ———–
1.1.183.17 MSOnline PSGallery Microsoft Azure Active Directory Module for Windows PowerShell

ちなみにOffice365へ接続する際はコマンド「Connect-MsolService」を実行し、Office365の管理用IDとPWを入力してアクセスするようになりますのでお試しください。

あとがき

Office365のライセンスをコマンドベースであれこれ出来るのは管理側としては助かる場面が多いので、導入して損はないと感じたであります!
誰にライセンス付与されてるかリストを抽出したり、一括でPowerBIのアカウントを付与したりと他部署の方から依頼があったときもサクサクっと出来たのでOffice365導入される際はぜひ検討ください。

最新情報をチェックしよう!