Я аудитор и обнаружил, что двое пользователей в компании, в которой я работаю, имеют нелицензированные операционные системы Windows, что наводит меня на мысль, что могут быть и другие. Мне любопытно узнать, есть ли способ извлечь все учетные записи в домене, которые не активировали свою Windows?
Хотя использовать Средство управления активацией корпоративных лицензий (VAMT) получить отчет?
Инструмент Volume Activation Management Tool (VAMT) позволяет сетевым администраторам и другим ИТ-специалистам автоматизировать и централизованно управлять Windows®, Microsoft® Office и некоторыми другими продуктами Microsoft, а также процессом активации в розничной торговле. VAMT может управлять активацией корпоративных лицензий с помощью ключей многократной активации (MAK) или службы управления ключами Windows (KMS).
VAMT предназначен для управления корпоративной активацией для: Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Microsoft Office 2010 и Microsoft Office 2013. • Компьютерами, на которых установлены корпоративные выпуски Windows XP или Windows Server 2003, нельзя управлять с помощью VAMT. Однако продуктами Office 2010 и Office 2013, установленными в этих двух операционных системах, по-прежнему можно управлять.
Да это так множественный параметры. Из блога Scripting Guys получите Get-ActivationStatus
вырезка (или функция) и попробуйте что-то вроде этого:
Get-ADComputer -Filter * | Get-ActivationStatus | Export-Csv C:\Activation.csv
function Get-ActivationStatus {
[CmdletBinding()]
param(
[Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
[string]$DNSHostName = $Env:COMPUTERNAME
)
process {
try {
$wpa = Get-WmiObject SoftwareLicensingProduct -ComputerName $DNSHostName `
-Filter "ApplicationID = '55c92734-d682-4d71-983e-d6ec3f16059f'" `
-Property LicenseStatus -ErrorAction Stop
} catch {
$status = New-Object ComponentModel.Win32Exception ($_.Exception.ErrorCode)
$wpa = $null
}
$out = New-Object psobject -Property @{
ComputerName = $DNSHostName;
Status = [string]::Empty;
}
if ($wpa) {
:outer foreach($item in $wpa) {
switch ($item.LicenseStatus) {
0 {$out.Status = "Unlicensed"}
1 {$out.Status = "Licensed"; break outer}
2 {$out.Status = "Out-Of-Box Grace Period"; break outer}
3 {$out.Status = "Out-Of-Tolerance Grace Period"; break outer}
4 {$out.Status = "Non-Genuine Grace Period"; break outer}
5 {$out.Status = "Notification"; break outer}
6 {$out.Status = "Extended Grace"; break outer}
default {$out.Status = "Unknown value"}
}
}
} else {$out.Status = $status.Message}
$out
}
}
Мне любопытно узнать, есть ли способ извлечь все учетные записи в домене, которые не активировали свою Windows?
Нет, нет возможности это сделать - Active Directory не отслеживает. Есть также веские причины НЕ активировать машины, особенно если вы не используете локальный сервер активации (в основном: виртуальные машины и машины, которые живут только временно в целях разработки).
В другом ответе есть сценарий PowerShell, который в основном выполняет
Get-ADComputer -Filter * | Get-ActivationStatus
У этого есть несколько проблем: