Veamos varias formas de inventariar versiones y compilaciones de sistemas operativos Windows en un dominio de Active Directory (es especialmente relevante para Windows 10). Si no tiene ninguna herramienta para obtener automáticamente las configuraciones de la computadora, como SCCM, GLPI con FusionInventory, o al menos el host Windows Server Update (WSUS) (también le permite obtener la versión de Windows en las computadoras descubiertas), puede usar un Script de PowerShell para buscar versiones/compilaciones de Windows en equipos de dominio.
En una computadora independiente, puede obtener una versión de Windows y un número de compilación del registro o con SystemInfo:
Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' | Select-Object ProductName, ReleaseID, CurrentBuild
Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
Para obtener una lista de equipos activos en un dominio de Active Directory y versiones de Windows (compilaciones) en ellos, puede usar el cmdlet Get-ADComputers.
Asegúrese de que el módulo de Active Directory para PowerShell esté instalado en su computadora y ejecute el siguiente comando:
Get-ADComputer -Filter {(Enabled -eq $True)} -Property * | Select-Object Name,OperatingSystem,OperatingSystemVersion
Para convertir el número de compilación de Windows 10 y 11 a un formato más conveniente (21H1, 21H2, etc.), debe usar una función adicional.
function ConvertWindowsBuild{
[CmdletBinding()]
param(
[string] $OperatingSystem,
[string] $OperatingSystemVersion
)
if (($OperatingSystem -like '*Windows 10*') –or ($OperatingSystem -like 'Windows 11*')) {
$WinBuilds= @{
'10.0 (22621)' = "Windows 11 22H2"
'10.0 (19045)' = "Windows 10 22H2"
'10.0 (22000)' = "Windows 11 21H2"
'10.0 (19044)' = "Windows 10 21H2"
'10.0 (19043)' = "Windows 10 21H1"
'10.0 (19042)' = "Windows 10 20H2"
'10.0 (18362)' = "Windows 10 1903"
'10.0 (17763)' = "Windows 10 1809"
'10.0 (17134)' = "Windows 10 1803"
'10.0 (16299)' = "Windows 10 1709"
'10.0 (15063)' = "Windows 10 1703"
'10.0 (14393)' = "Windows 10 1607"
'10.0 (10586)' = "Windows 10 1511"
'10.0 (10240)' = "Windows 10 1507"
'10.0 (18898)' = 'Windows 10 Insider Preview'
}
$WinBuild= $WinBuilds[$OperatingSystemVersion]
}
else {$WinBuild = $OperatingSystem}
if ($WinBuild) {
$WinBuild
} else {
'Unknown'
}
}
Luego, para obtener una lista de versiones de Windows con nombres de host, números de compilación, direcciones IP y el último inicio de sesión en el dominio de la computadora, ejecute el siguiente script de PowerShell:
$Comps= Get-ADComputer -Filter {(Enabled -eq $True)} -properties *
$CompList = foreach ($Comp in $Comps) {
[PSCustomObject] @{
Name = $Comp.Name
IPv4Address = $Comp.IPv4Address
OperatingSystem = $Comp.OperatingSystem
Build = ConvertWindowsBuild -OperatingSystem $Comp.OperatingSystem -OperatingSystemVersion $Comp.OperatingSystemVersion
LastLogonDate = $Comp.LastLogonDate
}
}
$CompList | Out-GridView
Puede mostrar el resultado como una tabla Out-GridView o exportar la lista de equipos a un archivo CSV (Export-Csv -Path .windows_version_report.csv -NoTypeInformation
).
Para mostrar un resumen de estadísticas en una cantidad de computadoras con diferentes versiones y compilaciones de Windows en su dominio:
$CompList | Group-Object -Property Build | Format-Table -Property Name, Count
También puede consultar sus computadoras de forma remota y obtener versiones de Windows usando PowerShell Remoting. Este método es más lento, pero le permite obtener versiones de Windows en equipos en un entorno de grupo de trabajo (PSRemoting en un grupo de trabajo). Para obtener información de equipos remotos, puede usar el cmdlet Invoke-Command:
Invoke-Command -ScriptBlock {Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' | Select-Object ProductName, ReleaseID, CurrentBuild} -ComputerName wsk-w12b21| Select-Object PSComputerName,ProductName, ReleaseID, CurrentBuild
Puede obtener versiones de Windows en varias computadoras de acuerdo con la lista en un archivo TXT:
Invoke-Command –ComputerName (Get-Content c:psPC_list.txt) -ScriptBlock {Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' | Select-Object ProductName, ReleaseID, CurrentBuild}|Select-Object PSComputerName,ProductName, ReleaseID, CurrentBuild
Puede usar estos scripts de Powershell para obtener versiones y compilaciones de Windows en computadoras de dominio, encontrar computadoras con compilaciones antiguas (no compatibles) de Windows 10 y actualizarlas (¿Cómo actualizar la compilación de Windows 10 con la línea de comandos?)
Artículos Interesantes
Relacionados:
Contenido