準備編書いたまま続き書くのを忘れていました。
PowerShell で Lync Online に接続してみます。
PowerShell でセッションを開始
Get-Credential コマンドレットで認証情報を作っておきます。
PS C:\WINDOWS\system32> $credential = Get-Credential コマンド パイプライン位置 1 のコマンドレット Get-Credential 次のパラメーターに値を指定してください: Credential
ログオン画面のようなものが出てくるので Lync Online のユーザー名、パスワードを入力します。
一応、中身を確認しておきましょう。
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
何も表示されなければ大丈夫です。