この記事は PowerShell Advent Calendar 2014 の 21 日目です。
さて、皆さんお使いの Office 365 ですが先日から日本データセンターでの提供が開始されました。既存の契約についても来年から順次日本に移動されるそうです。
となると気になるのが自分のテナントがどこのデータセンターに格納されているのか? ですね。これについては Office 365 ブログで確認方法が案内されていました。
尚、通常の管理画面での確認方法は提供されておらず、PowerShell を使ってサーバーに接続する必要があります。上記の記事では Exchange Online と Lync Online について確認方法が紹介されていましたので順番に確認していきましょう。
Exchange Online に接続する
事前準備
Exchange Online に接続するために以下のモジュールが必要になります。
- IT プロフェッショナル 用 Microsoft Online Services サインイン アシスタント RTW
- Windows PowerShell 用 Azure Active Directory モジュール (64 ビット版)
認証情報の準備
Get-Credential コマンドレットを使って Office 365 のユーザー名、パスワードを入力しておきます。(ここでは認証している訳ではないので、間違えて入力しても何のエラーも出ません)
PS C:\> $credential = Get-Credential
入力後、$credential 変数の中身を見てみるとユーザー名とパスワードが保存されている事がわかります。パスワードは SecureString に格納されていますね。
PS C:\> $credential UserName Password -------- -------- kazuaki@***.*** System.Security.SecureString
Exchange Online への接続
New-PSSession コマンドレットでリモート接続を行います。オプションが長いですが、以下のコマンドをそのまま入力します。
PS C:\> $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.ou tlook.com/powershell -Credential $credential -Authentication "Basic" -AllowRedirection 警告: 接続は次の URI にリダイレクトされました。"https://pod51054psh.outlook.com/powershell-liveid?PSVersion=4.0
警告が出てきますが特に問題はありません。
続けて Import-PSSession コマンドレットでモジュールをインストールします。
PS C:\> Import-PSSession $session 警告: モジュール 'tmp_cm4ox5xj.qsi' からインポートされたコマンドの中には、名前に承認されていない動詞を含むものがあり、このようなコマンドは検出される可能性が低くなる場合があります。承認されていない動詞を含むコマンドを見つけるには、Verbose パラメーターを使用してもう一度 Import-Module コマンドを実行してください。承認されている動詞の一覧を表示するには、「Get-Verb」と入力してください。 ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Script 1.0 tmp_cm4ox5xj.qsi {Add-AvailabilityAddressSpace, Add-DistributionGroupMember...
New-PSSession で接続して、そこから必要なモジュール(コマンド)だけをダウンロードしているイメージでしょうか?これによりあたかもローカル PC のようにコマンドを実行することができます。正直よくわからないけどすごい仕組みですね。
サーバーを確認する
Get-OrganizationConfig コマンドレットの出力のうち OriginatingServer を見ることでデータセンターが判別できるそうです。
PS C:\> Get-OrganizationConfig | Format-List OriginatingServer OriginatingServer : ***************.APC********.prod.outlook.com
これによると 僕のテナントは現在 APC (東アジア) にあるようです。
後処理
以下のコマンドでリモート接続を終了しておきます。
PS C:\> Remove-PSSession $session
リモート接続を切ると Import-PSSession で取り込んだモジュールも使えなくなります。
Lync Online に接続する
事前準備
Lync Online についても事前に以下のモジュールが必要になります
- IT プロフェッショナル 用 Microsoft Online Services サインイン アシスタント RTW (Exchane と同じ)
- Windows PowerShell Module for Lync Online
また Windows Remote Management サービスを実行して、Basic 認証を有効にします。
PS C:\> Start-Service winrm PS C:\> winrm set winrm/config/client/auth '@{Basic="True"}' Auth Basic = true Digest = true Kerberos = true Negotiate = true Certificate = true CredSSP = false
認証情報の準備
Exchange への接続と同じです。上記で入力したものをそのまま再利用できます。
Lync Online への接続
Exchange への接続と同様リモート接続してモジュールを取り込むのですが、New-PSSession ではなく New-CsOnlineSession コマンドレットを使って接続しています。
PS C:\> $session = New-CsOnlineSession -Credential $credential 警告: WSMan NetworkDelayms has been set to 30000 milliseconds. The previous value was 5000 milliseconds. 警告: To improve the performance of the Lync Online Connector, it is recommended that the network delay be set to 30000 milliseconds (30 seconds). However, you can use Set-WinRMNetworkDelayMS to change the network delay to any integer value. PS C:\> Import-PSSession $session ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Script 1.0 tmp_rnd1dyri.feh {Copy-CsVoicePolicy, Disable-CsMeetingRoom, Enable-CsMeeti...
サーバーを確認する
Lync Online の場合は Get-CsTenant コマンドレットの出力の OriginatingServer を見る事でデータセンターがわかります。
PS C:\> Get-CsTenant | Format-List OriginatingServer OriginatingServer : SG**********.lync0f001.local
Lync Online の方が細かい情報がわかるのですね。どうやら今は東アジアの中でもシンガポール (SG) にあるようです。
日本に来た場合は 東京か大阪かもわかるみたいなのでどちらに来るのか楽しみです。
後処理
Exchange と同じく、以下のコマンドでリモート接続を終了しておきます。
PS C:\> Remove-PSSession $session