Тема инвентаризации мне близка – я уже занимался инвентаризацией серверов Exchange 2007/2010. Так сложилось, что Lync-серверов в компании много, поэтому возникло желание инвентаризировать и их тоже. Здесь и далее под инвентаризацией я подразумеваю проверку версии накопительного обновления (rollup update) для продукта.
У Lync есть стандартный командлет Get-CsServerVersion. Минус в том, что он возвращает версию Lync Server, не привязанную к уже установленным апдейтам.
> Get-CsServerVersion
Microsoft Lync Server 2010 (4.0.7577.0): Volume license key installed.
Причем у этого командлета нет возможности указать удаленный сервер, поэтому мы пойдем другим путем.
По ссылке подсказывают три пути для нахождения версии Lync Server 2010:
1) Можно посмотреть версии пакетов Lync в панели управления
2) Можно посмотреть версии пакетов, запустив Lync Server Installer
3) Воспользоваться скриптом WMI/PowerSHell. Несколько модернизированный скрипт предлагается вашему вниманию.
$pool=""
$count=0
Get-CsService | where {!(“TrustedApplicationPool; PstnGateway; MonitoringDatabase” -match $_.Role)} | sort poolfqdn | %{if(!($pool -match $_.poolfqdn)){
$pool+=$_.poolfqdn+’;’
$count+=1
}
}
$i=0 $Servers=1..$count | %{
$obj = New-Object psobject
$obj | Add-Member -type noteproperty -name Name -Value $pool.split(‘;’)[$i]
$wmi=Get-WmiObject -query ‘select * from win32_product’ -computername $obj.name | where {$_.name -like “*, Core Components”}
$obj | Add-Member -type noteproperty -name Product -Value (($wmi.name).Split(‘,’)[0]).Replace(“Microsoft “,””)
$obj | Add-Member -type noteproperty -name Version -Value $wmi.version
$obj
$i+=1}
$servers | ft -autosize
Результат выполнения скрипта выглядит следующим образом:
При желании можно модернизировать скрипт и добавить столбец с перечислением ролей сервера (Mediation, Monitoring, Edge). Также я пока затрудняюсь указать редакцию сервера (Lync Server 2010 Standard/Enterprise).
Статья была бы не полна без приведения версий соответствующих CU (cumulative updates). Нашел оригинальную табличку по этой ссылке, привожу ее в статье.
Название | Версия сборки (Build Number) | Номер CU и дата выпуска |
Microsoft Lync Server 2010, Core Components | 4.0.7577.0 | RTM, OCT10 |
Microsoft Lync Server 2010, Core Components | 4.0.7577.??? | CU1, JAN11 |
Microsoft Lync Server 2010, Core Components | 4.0.7577.139 | CU2, APR11 |
Microsoft Lync Server 2010, Core Components | 4.0.7577.166 | CU3, JUL11 |
Microsoft Lync Server 2010, Core Components | 4.0.7577.183 | CU4, NOV11 |
Microsoft Lync Server 2010, Core Components | 4.0.7577.190 | CU5, FEB12 |
Microsoft Lync Server 2010, Core Components | 4.0.7577.199 | CU6, JUN12 |
Microsoft Lync Server 2010, Core Components | 4.0.7577.205 | CU7, OCT12 |
Обратите внимание, что версия Microsoft Lync Server 2010, Core Components и Microsoft Lync Server 2010, Front End Server могут отличаться. Я при составлении таблицы и работе скрипта ориентировался на версию компонент ядра. Эта же версия указана на странице закачки очередного обновления для Lync Server 2010. Иногда версии сборок могут не совпадать с указанными в таблице. Это связано с тем, что MS может выпустить исправленную версию накопительного обновления.