Выясняем статус активации Windows PowerShell`ом. Маленькие скриптики.
Есть большая доменная сеть, нужно узнать сколько у нас не активированных Win Server.
Как узнать сколько всего в домене 2019 серверов? В AD, в учетке компьютера указана ОС, оттуда и будем получать данные:
Get-ADComputer -Filter {operatingSystem -like "windows Server 2019 Standard"} | select Name
Далее получаем статус активации доменного компьютера, внимание на указание имени сервера:
Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" -ComputerName %win-2019-srv% | where { $_.PartialProductKey } | select PSComputerName, Description, LicenseStatus
Команда вернет статус лицензии в виде числа:
- 0=Unlicensed
- 1=Licensed
- 2=OOBGrace
- 3=OOTGrace
- 4=NonGenuineGrace
- 5=Notification
- 6=ExtendedGrace
Активированный Win должен иметь статус «1», все остальное Grace или отсутствие лицензии.
И теперь итоговый скрипт который выплюнет нам список имен компов со статусом лицензии:
$comp = Get-ADComputer -Filter {operatingSystem -like "windows Server 2019 Standard"} | select Name
foreach ($c in $comp)
{
Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" -ComputerName $c.name | where { $_.PartialProductKey } | select PSComputerName, Description, LicenseStatus
}