Office365 PowerShellの効率的な接続について

PowerShellを利用してOffice365(Exchange Online)に接続する際、Get-Credentialを利用して接続用クレデンシャルを作成するケースは多いかと思います。
この方法では、都度ID/パスワードを入力する必要があるため、管理業務で都度接続を行うようなケースでは効率が落ちてしまいます。

【こんな感じに】

$uc = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $uc -Authentication Basic -AllowRedirection
Import-PSSession $session

Get-Mailbox -id "XXXXXXXX@XXXXXXXXXXXXX"

最初のGet-Credentialで資格情報入力が出てきます。
都度入力が必要となります。

f:id:mohessu:20161231205536p:plain

というわけで資格情報をコードに埋め込んでしまうことで、
都度の入力を減らすことができます。

注意)そもそも都度入力することで、パスワードを記載したpsスクリプトの流出を防げたりもするので、ケースバイケースということを忘れずに対応しましょう。

ユーザーIDとパスワードで先にクレデンシャルを作っておくと、そのクレデンシャルを利用して接続を行うことができます。

【こんなコードです】

$user = "XXXXXXXX@XXXXXXXXXXXXX"
$pass = ConvertTo-SecureString -String "パスワード" -AsPlainText -Force
$cd = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $user, $pass
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cd -Authentication Basic -AllowRedirection
Import-PSSession $session

f:id:mohessu:20161231210525p:plain

運用局面に入っていると、手順ミスがそのままバイオレーションとしてペケカウントされるケースもあるため、事前に作れるシェルスクリプトはとっても重宝しますよね。
スクリプト化できるものは少しでもスクリプトにし、手順を減らせるように運用を進めていきましょう!

音楽:天虎