Возникла задача найти в достаточно большом домене (более 50000 ПК) все сервера с установленной ролью сервера терминальных (RDS) лицензий
Во времена Windows Server 2003 при установке сервера лицензий терминалов (Terminal Licensing Server) в домене Active Directory автоматически регистрировались в специальной записи CN=TS-Enterprise-License-Server, уникальной для каждого сайта AD. Благодаря этим записям, терминальные сервера могли обнаруживать сервера лицензий.
Список всех серверов терминальных лицензий с Windows Server 2003 в лесу Active Directory можно получить с помощью следующего скрипта PowerShell:
$sConfiguration = ([adsi]"LDAP://rootdse").ConfigurationNamingContext
$oDSE = [adsi]"LDAP://$sConfiguration"
$oSearcher=New-Object DirectoryServices.DirectorySearcher ($oDSE,"CN=TS-Enterprise-License-Server")
$aLicenseServer=$oSearcher.FindAll()
$aLicenseServer|%{$_.Properties.siteserver}
В Windows Server 2008 RDS и выше, при установке роли RDS Licensing в домене регистрируется запись SCP (Service Connection Point), CN которой начинается с TermServLicensing. Таким образом, чтобы найти все SCP с CN= TermServLicensing, нужно воспользоваться утилитой dsquery
dsquery * -filter "(&(CN=TermServLicensing)(objectClass=serviceConnectionPoint))"
Или одной из следующих команд PowerShell:
Get-ADObject -LDAPFilter "(&(CN=TermServLicensing)(objectClass=serviceConnectionPoint))"
Get-ADObject -Filter {objectClass -eq 'serviceConnectionPoint' -and Name -eq 'TermServLicensing'}|ft -autosize
Перед вами должен появился список всех серверов терминальных лицензий в домене.
1 comment
Спасибо, очень пригодилось