PowershellでのMicrosoft365への接続を一括で実施するモジュール(Office365,AzureAD,Exchange Online,Teams)
こんにちは!
Microosft365ユーザーが増えてくるといろんなことをやってみようとしてPowershellを利用しよう!!って方が合わせて多くなってきていますね!
今回ユーザー様からこんなお問い合わせをいただきました。
「AzureADのコマンドレットを利用したいのだけど、Connect-MsolServeceしたのにコマンドがないってエラーになる!!」と!
Microosft365をPowershellで接続して利用する場合、必要なコマンドレットによって複数のサービスに接続することになります。
- Microsoft365(MSOLService)
- AzureAD
- Exchange Online
- Teams
これらに一つずつ接続してもよいのですが、実際利用し始めるとまた接続コマンド打たなきゃ・・・・って結構面倒だったりします。
面倒だからとりあえずスクリプト化するかってなるのですが、スクリプト化してしばらくするとスクリプトひらくのすら面倒に・・・・・笑
どんだけめんどくさがりなんやって感じですが!
ってことで今回は
「Microsoft365サービスに一斉接続するPowershellモジュールの作成」
について書いていきます!
※注意
本記載では接続する先のモジュールがインストールされていることが前提になっています。
初利用でモジュールをインストールしていない人は
Powershellを管理者で起動し、Install-Module xxxを実行してくださいね!
xxxはAzureADならAzureADPreview,Office365ならMSOLServiceです。
詳しくは以下を参照ください。
まず、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 }
そして好きな名前で保管します。
この時、拡張子は[.psm1]とします。
今回はConnectM365Services.psm1というファイル名にしています。
次にこのファイルを配置するフォルダを探します。
実際このファイルをImport-Module "ファイルのフルパス"とすれば利用できるのですが、毎回インポートするのってめっちゃ面倒ですよね??
なので、Powershell起動すると作ったモジュールがインポートされるようにしておこうと思います。
画面したのコンソールにて以下のコマンドを実行
$env:PSModulePath
するとパスの一覧が表示されます。
上記に表示されたいくつかのパスのどれかにモジュールを保存します。
今回はC:\Users\ユーザー名\Documents\WindowsPowershell\Modulesに保管します。
エクスプローラーで上記パスを開きます。
※Modulesフォルダがない場合は自分でフォルダを作成してください。
上記で作成した.psm1ファイルと同一名称のフォルダを作成します。
そのフォルダ内に.psm1ファイルを格納します。
これで準備は完了!!
あとは再度Powershellを起動し、Connect-M365Servicesとうって実行するだけ!
ちゃんとTab補完も効きますし、ise上では候補にもあがってきます!
下図は候補にあがっていることを表示しています。
あとは実行すれば一括接続ができます!!
毎回複数実行が面倒ならぜひ使ってみてください!
- 最後に!
Twitterでも情報発信したいと思いますので、興味があったらフォローしてください!
*1:
このファイルではFunctionとしてConnect-M365Servicesというファンクションを作成しています。
モジュールをインポートした後、Connect-M365Servicesを実行すると、各種Microsoft365サービスに接続するコマンドレットが流れます。
ExchangeOnlineはV1モジュールになっているので、V2モジュールがいいよって方は修正してください