kazuakix の日記

Windows Phone とか好きです

PowerShell で Lync Online に接続してみる

準備編書いたまま続き書くのを忘れていました。
PowerShell で Lync Online に接続してみます。

PowerShell でセッションを開始

Get-Credential コマンドレットで認証情報を作っておきます。

PS C:\WINDOWS\system32> $credential = Get-Credential

コマンド パイプライン位置 1 のコマンドレット Get-Credential
次のパラメーターに値を指定してください:
Credential

ログオン画面のようなものが出てくるので Lync Online のユーザー名、パスワードを入力します。

f:id:kazuakix:20140615204701j:plain,w360

一応、中身を確認しておきましょう。

PS C:\WINDOWS\system32> $credential

UserName                                          Password
--------                                          --------
kazuaki@******.net             System.Security.SecureString

ここでは認証している訳ではないので、間違えて入力してもそのまま通っちゃいます。

リモートセッションの開始

上で作成した認証上を使って New-CsOnlineSession コマンドレットを実行します。

PS C:\WINDOWS\system32> $session = New-CsOnlineSession -Credential $credential


特に何のメッセージも表示されないので $session に何かセットされているか確認してみます。

PS C:\WINDOWS\system32> $session

 Id Name            ComputerName    State         ConfigurationName     Availability
 -- ----            ------------    -----         -----------------     ------------
  1 Session1        admin0f.onli... Opened        Microsoft.PowerShell     Available

それっぽいものが入っているのでよしとしましょう。

セッションのインポート

Import-PSSession コマンドレットを実行して、PowerShell のモジュールを追加します。

PS C:\WINDOWS\system32> Import-PSSession $session

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------

Script     1.0        tmp_r1b3xcqh.onn                    {Copy-CsVoicePolicy, Disable-CsMeetingRoom, Enable-CsMeeti...

ここで表示されている tmp_r1b3xcqh.onn が追加されたモジュール名になります。

使用できるコマンドレットの確認

上で追加されたモジュールで使用できるコマンドレットを確認します。

PS C:\WINDOWS\system32> Get-Command -Module tmp_r1b3xcqh.onn

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Copy-CsVoicePolicy                                 tmp_r1b3xcqh.onn
Function        Disable-CsMeetingRoom                              tmp_r1b3xcqh.onn
Function        Enable-CsMeetingRoom                               tmp_r1b3xcqh.onn
Function        Get-CsAudioConferencingProvider                    tmp_r1b3xcqh.onn
Function        Get-CsClientPolicy                                 tmp_r1b3xcqh.onn
Function        Get-CsConferencingPolicy                           tmp_r1b3xcqh.onn
Function        Get-CsDialPlan                                     tmp_r1b3xcqh.onn
Function        Get-CsExternalAccessPolicy                         tmp_r1b3xcqh.onn
Function        Get-CsExUmContact                                  tmp_r1b3xcqh.onn
Function        Get-CsHostedVoicemailPolicy                        tmp_r1b3xcqh.onn
Function        Get-CsImFilterConfiguration                        tmp_r1b3xcqh.onn
Function        Get-CsMeetingConfiguration                         tmp_r1b3xcqh.onn
Function        Get-CsMeetingRoom                                  tmp_r1b3xcqh.onn
Function        Get-CsOnlineUser                                   tmp_r1b3xcqh.onn
Function        Get-CsPresencePolicy                               tmp_r1b3xcqh.onn
Function        Get-CsPrivacyConfiguration                         tmp_r1b3xcqh.onn
Function        Get-CsPushNotificationConfiguration                tmp_r1b3xcqh.onn
Function        Get-CsTenant                                       tmp_r1b3xcqh.onn
Function        Get-CsTenantFederationConfiguration                tmp_r1b3xcqh.onn
Function        Get-CsTenantHybridConfiguration                    tmp_r1b3xcqh.onn
Function        Get-CsTenantLicensingConfiguration                 tmp_r1b3xcqh.onn
Function        Get-CsTenantPublicProvider                         tmp_r1b3xcqh.onn
Function        Get-CsUserAcp                                      tmp_r1b3xcqh.onn
Function        Get-CsVoicePolicy                                  tmp_r1b3xcqh.onn
Function        Grant-CsClientPolicy                               tmp_r1b3xcqh.onn
Function        Grant-CsConferencingPolicy                         tmp_r1b3xcqh.onn
Function        Grant-CsDialPlan                                   tmp_r1b3xcqh.onn
Function        Grant-CsExternalAccessPolicy                       tmp_r1b3xcqh.onn
Function        Grant-CsHostedVoicemailPolicy                      tmp_r1b3xcqh.onn
Function        Grant-CsVoicePolicy                                tmp_r1b3xcqh.onn
Function        New-CsEdgeAllowAllKnownDomains                     tmp_r1b3xcqh.onn
Function        New-CsEdgeAllowList                                tmp_r1b3xcqh.onn
Function        New-CsEdgeDomainPattern                            tmp_r1b3xcqh.onn
Function        New-CsExUmContact                                  tmp_r1b3xcqh.onn
Function        Remove-CsExUmContact                               tmp_r1b3xcqh.onn
Function        Remove-CsUserAcp                                   tmp_r1b3xcqh.onn
Function        Remove-CsVoicePolicy                               tmp_r1b3xcqh.onn
Function        Set-CsExUmContact                                  tmp_r1b3xcqh.onn
Function        Set-CsMeetingConfiguration                         tmp_r1b3xcqh.onn
Function        Set-CsMeetingRoom                                  tmp_r1b3xcqh.onn
Function        Set-CsPrivacyConfiguration                         tmp_r1b3xcqh.onn
Function        Set-CsPushNotificationConfiguration                tmp_r1b3xcqh.onn
Function        Set-CsTenantFederationConfiguration                tmp_r1b3xcqh.onn
Function        Set-CsTenantHybridConfiguration                    tmp_r1b3xcqh.onn
Function        Set-CsTenantPublicProvider                         tmp_r1b3xcqh.onn
Function        Set-CsUser                                         tmp_r1b3xcqh.onn
Function        Set-CsUserAcp                                      tmp_r1b3xcqh.onn
Function        Update-CsTenantMeetingUrl                          tmp_r1b3xcqh.onn

結構たくさん追加されていますね。使用できるコマンドレットはこの辺にまとまっています。

調べるモジュール名がわからなくなった場合は Get-Module で確認する事もできます。

PS C:\WINDOWS\system32> Get-Module

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     5.0.0.0    LyncOnlineConnector                 New-CsOnlineSession
Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Con...
Manifest   3.0.0.0    Microsoft.PowerShell.Security       {ConvertFrom-SecureString, ConvertTo-SecureString, Get-Acl...
Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Script     1.0        tmp_r1b3xcqh.onn                    {Copy-CsVoicePolicy, Disable-CsMeetingRoom, Enable-CsMeeti...

尚、モジュール名に tmp_ と付いている事からも想像できますが、名前はセッションをインポートする度に変わるようです。

重要 セッションを終了する

作業が終わったら Remove-PSSession コマンドレットでセッションを終了しておきます。忘れても一定期間で切断されるようですが、不要な接続は残さない方がいいとの事です。

PS C:\WINDOWS\system32> Remove-PSSession $session

一応、セッションが残っていないか確認しておきましょう。

PS C:\WINDOWS\system32> Get-PSSession

何も表示されなければ大丈夫です。