SEくぼたの事件簿

インフラSEとしての活動を記録していきます

PowershellでのMicrosoft365への接続を一括で実施するモジュール(Office365,AzureAD,Exchange Online,Teams)

こんにちは!

Microosft365ユーザーが増えてくるといろんなことをやってみようとしてPowershellを利用しよう!!って方が合わせて多くなってきていますね!

今回ユーザー様からこんなお問い合わせをいただきました。

AzureADのコマンドレットを利用したいのだけど、Connect-MsolServeceしたのにコマンドがないってエラーになる!!」と!

Microosft365をPowershellで接続して利用する場合、必要なコマンドレットによって複数のサービスに接続することになります。

  1. Microsoft365(MSOLService)
  2. AzureAD
  3. Exchange Online
  4. Teams

これらに一つずつ接続してもよいのですが、実際利用し始めるとまた接続コマンド打たなきゃ・・・・って結構面倒だったりします。

 

面倒だからとりあえずスクリプト化するかってなるのですが、スクリプト化してしばらくするとスクリプトひらくのすら面倒に・・・・・笑

どんだけめんどくさがりなんやって感じですが!

 

ってことで今回は

「Microsoft365サービスに一斉接続するPowershellモジュールの作成」

について書いていきます!

※注意

本記載では接続する先のモジュールがインストールされていることが前提になっています。

初利用でモジュールをインストールしていない人は

Powershellを管理者で起動し、Install-Module xxxを実行してくださいね!

xxxはAzureADならAzureADPreview,Office365ならMSOLServiceです。

詳しくは以下を参照ください。

docs.microsoft.com

 

まず、PowershellにはImport-Moduleというコマンドレットがあり

作成したモジュールをインポートすることが可能です。

この機能を利用します!

Powershellでは.psm1という拡張子で保管したファイルをImport-Moduleでインポートすると.psm1内に記載されているファンクション(関数)を利用することができます。

 

  • では実際に作っていきます!!!

今回スクリプトPowershell_iseを利用して作っています。

スタート画面からPowershell_iseを検索してクリックします。

表示されたスクリプト画面に以下の通り記載します。

Function Connect-M365Services{

    $Cred = Get-Credential

    Connect-MsolService -Credential $Cred

    $exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri “https://outlook.office365.com/powershell-liveid/” -Credential $Cred -Authentication “Basic” -AllowRedirection

    Import-PSSession $exchangeSession -DisableNameChecking

    Connect-AzureAD -Credential $Cred

    Connect-MicrosoftTeams -Credential $Cred
}

f:id:KKubo19:20201006230937p:plain

そして好きな名前で保管します。

この時、拡張子は[.psm1]とします。

今回はConnectM365Services.psm1というファイル名にしています。

*1

 

次にこのファイルを配置するフォルダを探します。

実際このファイルをImport-Module "ファイルのフルパス"とすれば利用できるのですが、毎回インポートするのってめっちゃ面倒ですよね??

なので、Powershell起動すると作ったモジュールがインポートされるようにしておこうと思います。

 

画面したのコンソールにて以下のコマンドを実行

$env:PSModulePath

f:id:KKubo19:20201006231346p:plain

するとパスの一覧が表示されます。

f:id:KKubo19:20201006233047p:plain

上記に表示されたいくつかのパスのどれかにモジュールを保存します。

今回はC:\Users\ユーザー名\Documents\WindowsPowershell\Modulesに保管します。

エクスプローラーで上記パスを開きます。

※Modulesフォルダがない場合は自分でフォルダを作成してください。

f:id:KKubo19:20201006231812p:plain

上記で作成した.psm1ファイルと同一名称のフォルダを作成します。

そのフォルダ内に.psm1ファイルを格納します。

f:id:KKubo19:20201006231934p:plain

これで準備は完了!!

あとは再度Powershellを起動し、Connect-M365Servicesとうって実行するだけ!

ちゃんとTab補完も効きますし、ise上では候補にもあがってきます!

下図は候補にあがっていることを表示しています。

f:id:KKubo19:20201006232334p:plain

あとは実行すれば一括接続ができます!!

毎回複数実行が面倒ならぜひ使ってみてください!

 

  • 最後に!

Twitterでも情報発信したいと思いますので、興味があったらフォローしてください!

*1:

このファイルではFunctionとしてConnect-M365Servicesというファンクションを作成しています。

 モジュールをインポートした後、Connect-M365Servicesを実行すると、各種Microsoft365サービスに接続するコマンドレットが流れます。

ExchangeOnlineはV1モジュールになっているので、V2モジュールがいいよって方は修正してください