是否可以通过脚本更改 Microsoft Lync 2010 的状态?
我想要在 Win XP 上运行的脚本,并在固定间隔后将状态更改为可用。尝试在互联网上搜索,但没有成功找到一个。
是否可以通过脚本更改 Microsoft Lync 2010 的状态?
我想要在 Win XP 上运行的脚本,并在固定间隔后将状态更改为可用。尝试在互联网上搜索,但没有成功找到一个。
根据文档,Lync 二进制文件不提供该功能。但是,您可以使用Lync SDK通过编写一个小型帮助应用程序(或将相关代码合并到您当前的应用程序中)来实现您想要的。
根据Microsoft 论坛中的 MVP ,这也不是开箱即用的。
但是,根据文档,像这样的 PowerShell 脚本应该能够做到这一点:
import-module "C:\Program Files (x86)\Microsoft Lync\SDK\Assemblies\Desktop\Microsoft.Lync.Controls.Dll"
$availability = [Microsoft.Lync.Controls.ContactAvailability]::Available
$contactInfo = new-object 'System.Collections.Generic.Dictionary[Microsoft.Lync.Model.PublishableContactInformationType, object]'
$contactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::Availability,
$availability)
$ar = $self.BeginPublishContactInformation($contactInfo, $null, $null)
$self.EndPublishContactInformation($ar)
此脚本需要安装 Lync SDK 或 Lync SDK 可再发行组件。
大部分信息都是从这里获取的。
上面的帖子不起作用。需要更多的 DLL 模块。但是我在下面进行了以下更改,因此可以正常工作。然后你可以使用 TaskSch 让它自动运行。仍然需要安装 2010 Lync SDK。
将 15550 设置为“下班”而不是“离开”。更有用。
请注意,此代码不会检查 LYNC 是否已登录。如果不是,它将不会运行。
import-module "C:\Program Files (x86)\Microsoft Lync\SDK\Assemblies\Desktop\Microsoft.Lync.Controls.Dll"
import-module "C:\Program Files (x86)\Microsoft Lync\SDK\Assemblies\Desktop\Microsoft.Lync.Model.Dll"
# Obtain the entry point to the Lync.Model API
$client = [Microsoft.Lync.Model.LyncClient]::GetClient()
$self = $client.Self;
#Set Details of Personal Note and Availability
#Useful availability codes for use below - 3500 Available, 15500 Away (converted to "Off Work" in this script by setting activity ID), 6500 Busy, 9500 Do not disturb, 12000 Be Right Back)
$availability = 3500
$date = [DateTime]::Now
$message = "Remote Work. UK Time +5 hours EST (US), -5.5 IST (India). Availability script last run $date"
#Publish personal note and presence availability of the local user
$contactInfo = new-object 'System.Collections.Generic.Dictionary[Microsoft.Lync.Model.PublishableContactInformationType, object]'
$contactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::PersonalNote,
$message)
$contactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::Availability,
$availability)
If ($availability -eq 15500) {$contactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::ActivityId,
"off-work")}
$ar = $self.BeginPublishContactInformation($contactInfo, $null, $null)
$self.EndPublishContactInformation($ar)
好的 - 这就是我所做的
C:\Program Files (x86)\Microsoft Office\Office15\LyncSDK\Assemblies\Desktop\
为.ps1
脚本 对于 Lync 2013,此 PowerShell 脚本有效。您需要先安装Lync 2013 SDK。SDK 安装程序可能会说您需要安装 Silverlight 4,但不必担心,这不是必需的。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process -Confirm:$false
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser -Confirm:$false
Import-Module "C:\Program Files\Microsoft Office\Office15\LyncSDK\Assemblies\Desktop\Microsoft.Lync.Model.dll"
Import-Module "C:\Program Files\Microsoft Office\Office15\LyncSDK\Assemblies\Desktop\Microsoft.Lync.Controls.dll"
$client = [Microsoft.Lync.Model.LyncClient]::GetClient()
$availability = [Microsoft.Lync.Controls.ContactAvailability]::Away
$contactInfo = (New-Object "System.Collections.Generic.Dictionary[Microsoft.Lync.Model.PublishableContactInformationType,object]") -As "System.Collections.Generic.IEnumerable[System.Collections.Generic.KeyValuePair[Microsoft.Lync.Model.PublishableContactInformationType,object]]"
$contactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::Availability, $availability)
$ar = $client.Self.BeginPublishContactInformation($contactInfo, [System.AsyncCallback]$null, [object]$null)
$client.Self.EndPublishContactInformation($ar)
这会将状态设置为“消失”,但您可以更改[Microsoft.Lync.Controls.ContactAvailability]::Away
为此[Microsoft.Lync.Controls.ContactAvailability]::None
状态以重置状态。