Solução genérica:
Acho que a solução centrada na Microsoft para isso é licenciar usando chaves de volume e Em seguida, basta usar seu servidor KMS para informar sobre o status de ativação da licença.
Windows 7 e solução acima
Se o licenciamento por volume não for uma opção e todos os seus clientes forem o Windows 7 ou mais recente, você poderá simplesmente consultar o SoftwareLicensingProduct
classe WMI em cada máquina para recuperar detalhes de licenciamento, aqui está um exemplo usando o PowerShell e o AD:
$Clients = Get-ADComputer -LDAPFilter "(&(operatingSystem=*Windows*))"
$LicenseQuery = "SELECT ApplicationID,Name,Description,ProductKeyID,PartialProductKey FROM SoftwareLicensingProduct WHERE LicenseStatus = 1"
foreach($Client in $Clients){
$ActiveLicenses = @(Get-WmiObject -Query $LicenseQuery -ComputerName $Client.Name)
if($ActiveLicense.Count -le 1){
Write-Warning "Unable to find active license for computer $($Client.Name)"
}
# Do what you want with the license information here
}
Isso exigirá um pouco de tratamento de erros e lógica de saída (você pode exportar os detalhes para um arquivo CSV se quiser), mas isso o ajudará a seguir na direção certa.
Os atributos incluídos na consulta devem ser suficientes para uma auditoria, mas pergunte à Microsoft se tiver dúvidas