| README.md | ||
Inventário de Licenças Microsoft com PowerShell
Ferramenta simples para técnicos de TI de PME auditarem as licenças Microsoft instaladas em toda a rede, sem software pago, só PowerShell nativo.
Problema
Numa empresa com 20 a 100 postos de trabalho, saber exactamente quais licenças Microsoft estão instaladas — e se são válidas — é mais difícil do que parece. Os dados estão distribuídos por várias máquinas, e muitas PME não têm uma solução de inventário centralizada.
Solução: script PowerShell de inventário remoto
Este repositório contém um script que corre localmente ou remotamente (via WinRM) e recolhe:
- Nome do produto Microsoft instalado
- Chave parcial da licença
- Estado de activação (Licenciado / Não licenciado / Em período de graça)
- Nome do computador e utilizador actual
Script principal: Inventario-Licencas.ps1
param(
[string[]]$Computadores = @($env:COMPUTERNAME),
[string]$Exportar = ""
)
$resultados = foreach ($pc in $Computadores) {
try {
$licencas = Get-WmiObject -ComputerName $pc -Class SoftwareLicensingProduct -ErrorAction Stop |
Where-Object { $_.Name -like "*Office*" -or $_.Name -like "*Windows*" } |
Where-Object { $_.PartialProductKey -ne $null }
foreach ($lic in $licencas) {
$estado = switch ($lic.LicenseStatus) {
0 { "Nao licenciado" }
1 { "Licenciado" }
2 { "Em periodo de graca" }
3 { "Notificacao" }
default { "Desconhecido" }
}
[PSCustomObject]@{
Computador = $pc
Produto = $lic.Name
ChaveParcial = $lic.PartialProductKey
Estado = $estado
}
}
} catch {
Write-Warning "Nao foi possivel ligar a $pc"
}
}
if ($Exportar) {
$resultados | Export-Csv -Path $Exportar -NoTypeInformation -Encoding UTF8
Write-Host "Resultados exportados para $Exportar"
} else {
$resultados | Format-Table -AutoSize
}
Utilizacao
# Inventariar o computador local
.\Inventario-Licencas.ps1
# Inventariar uma lista de computadores remotos
.\Inventario-Licencas.ps1 -Computadores "PC-01","PC-02","SRV-01" -Exportar "inventario.csv"
Pre-requisitos
- PowerShell 5.1 ou superior (incluido no Windows 10/11 e Windows Server 2016+)
- WinRM activo nos computadores remotos: Enable-PSRemoting -Force
- Permissoes de administrador local (ou administrador de dominio para acesso remoto)
Quando os resultados revelam um problema
Se o script mostrar postos em "Notificacao" ou "Em periodo de graca", a licenca instalada nao esta correctamente activada. As causas mais comuns numa PME sao:
- Chave de volume KMS sem servidor KMS alcancavel
- Licenca OEM transferida para um computador diferente
- Versao do Office incompativel com a licenca adquirida
Para escolher a versao adequada de Office ou Windows para a sua PME, consulte o guia de licenciamento Microsoft para PME.
Licenca
MIT — livre para uso comercial e adaptacao interna.