Проверка состояния активации Windows на компьютерах Active Directory

В этой статье мы покажем, как убедиться, что ваша копия Windows активирована на компьютере, и проверить статус активации Windows на всех компьютерах в доменной сети Active Directory с помощью PowerShell.

Как проверить, активирована ли Windows?

Прежде всего, давайте рассмотрим, как проверить статус активации Windows на вашем компьютере. Статус активации Windows можно посмотреть в приложении «Настройки» (в современных сборках Windows 10 и Windows 11).

  • В Windows 10 и Windows Server 2022/2019/2016 перейдите в раздел Настройки -> Обновление и безопасность -> Активация (или запустите программу ms-settings:activation URI для быстрого доступа к ms-settings)
  • В Windows 11 откройте Настройки -> Система -> Активация
Сегодня Microsoft предлагает бесплатно обновиться с последних сборок Windows 10 до Windows 11. Если в вашей учетной записи Microsoft зарегистрирован компьютер с цифровой лицензией Windows 10, то после обновления до Windows 1 компьютер автоматически проверит цифровую лицензию и активирует Windows.

Вы можете увидеть один из следующих статусов активации:

  • Windows is activated using your organization’s activation service — это означает, что ваша копия Windows активирована на корпоративном сервере KMS (FAQ по активации KMS); Windows активирована с помощью службы активации вашей организации Windows активируется с помощью службы активации вашей организации
  • Windows is activated with a digital license — ваша копия Windows активирована с помощью цифровой лицензии, не связанной с учетной записью пользователя Microsoft; Windows активирована с помощью цифровой лицензииWindows активирована с помощью цифровой лицензии
  • Windows is activated with a digital license linked to your Microsoft account
  • Not Activated – Windows reported that no product key was found on your device. Error code: 0xC004F214 — Windows установлена без ключа продукта и не активирована.

Активацию Windows можно получить из командной строки. Для этого воспользуйтесь командой SLMgr.vbs сценарий, который позволяет управлять лицензиями и активацией Windows. Запустите командную строку (cmd) от имени администратора и введите приведенную ниже команду:

slmgr /xpr

slmgr.vbs xpr - проверка состояния активации командная строкаslmgr.vbs xpr - проверка состояния активации командная строка

Через несколько секунд на экране появится окно с «The machine is permanently activated«.

Если Windows не активирована, появится сообщение: Windows is in Notification mode.

Совет. Если вы хотите отобразить состояние активации в консоли командной строки, используйте следующую команду:

cscript slmgr.vbs -xpr

Проверка активации Windows с помощью PowerShell

Вы можете использовать PowerShell для получения информации об активации Windows на локальном или удаленном компьютере. Выполните следующую команду, чтобы получить данные из CIM (WMI):

Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" | where { $_.PartialProductKey } | select Description, LicenseStatus

Возможные значения LicenseStatus:

  • 0 — Нелицензионный
  • 1 — Лицензированный
  • 2 — OOBGrace
  • 3 — OOTGrace — конфигурация компьютера была изменена, и ее нельзя активировать автоматически, или прошло более 180 дней
  • 4 — NonGenuineGrace
  • 5 — Уведомление — пробный период Windows окончен
  • 6 — ExtendedGrace (вы можете несколько раз продлить период оценки Windows с помощью функции slmgr /rearm или преобразовать ознакомительную версию в полную)

На скриншоте ниже показано, что LicenseStatus = 1. Это означает, что Windows активирована с помощью розничного ключа продукта (Операционная система Windows(R), канал RETAIL).

PowerShell: Проверка активации Windows PowerShell: Проверка активации Windows

Чтобы получить статус активации удаленного компьютера, укажите его имя в поле -ComputerName параметр:

Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" -ComputerName mun-srv03 |where { $_.PartialProductKey } | select Description, LicenseStatus

[VOLUME_KMSCLIENT channel означает, что компьютер активирован на сервере KMS.

проверка активации windows командной строкойпроверка активации windows командная строка

Или используйте команды Enter-PSSession или Invoke-Command WinRM для доступа к удаленному компьютеру.

Получение статуса активации Windows на компьютерах AD с помощью PowerShell

Вы можете использовать PowerShell для удаленного получения статусов активации настольных компьютеров Windows и узлов Windows Server в домене Active Directory. Пример сценария приведен ниже.

Чтобы получить список компьютеров в домене, используется команда Get-ADComputer из модуля Active Directory for PowerShell. Этот сценарий PowerShell проверяет доступность каждого компьютера в Active Directory по очереди (простой ICMP-пинг с помощью Test-NetConnection), получает сборку и версию установленной на них ОС, а также статус активации Windows.

enum Licensestatus{
Unlicensed = 0
Licensed = 1
Out_Of_Box_Grace_Period = 2
Out_Of_Tolerance_Grace_Period = 3
Non_Genuine_Grace_Period = 4
Notification = 5
Extended_Grace = 6
}
$Report = @()
$ADComps = Get-ADComputer -Filter {enabled -eq "true" -and OperatingSystem -Like '*Windows*'}
Foreach ($comp in $ADComps) {
If ((Test-NetConnection $comp.name -WarningAction SilentlyContinue).PingSucceeded -eq $true){
$activation_status= Get-CimInstance -ClassName SoftwareLicensingProduct -ComputerName $comp.name -Filter "Name like 'Windows%'" |where { $_.PartialProductKey } | select PSComputerName, @{N=’LicenseStatus’; E={[LicenseStatus]$_.LicenseStatus}}
$windowsversion= Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName $comp.name| select Caption, Version
$objReport = [PSCustomObject]@{
ComputerName = $activation_status.PSComputerName
LicenseStatus= $activation_status.LicenseStatus
Version = $windowsversion.caption
Build = $windowsversion.Version
}
}
else {
$objReport = [PSCustomObject]@{
ComputerName = $comp.name
LicenseStatus = "Computer offline"
}
}
$Report += $objReport
}
$Report |Out-GridView

Сценарий доступен в моем репозитории GitHub: https://github.com/maxbakhub/winposh/blob/main/ActiveDirectory/AD_Computers_Check_Windows_Activation_Status.ps1

Информация о состоянии активации Windows на компьютерах домена отображается в виде таблицы Out-GridView. Или вы можете экспортировать ее в CSV-файл (Export-Csv -Path .\ad_windows_activation_report.csv -NoTypeInformation).

Функция PowerShell для проверки активации Windows на компьютерах в домене Active DirectoryФункция PowerShell для проверки активации Windows на компьютерах в домене Active Directory

Вы можете найти аналогичный сценарий PowerShell для проверки состояния активации Microsoft Office на компьютерах домена.

Таким образом, вы можете быстро найти все неактивированные (нелицензионные) копии Windows на компьютерах в домене.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *