Búsqueda de sitios web

Exportar números de compilación del sistema operativo Windows


Queremos obtener una lista de todos los números de compilación de las computadoras AD. Esto se debe a que nos gusta saber si todas las computadoras están actualizadas. Una excelente manera de obtener este informe es con PowerShell. En este artículo, aprenderá cómo exportar números de compilación del sistema operativo Windows a un archivo CSV.

Verifique el número de compilación de Windows

Puede obtener la versión y el número de compilación del sistema operativo en la pantalla Acerca de Windows (winver).

Esto es en Windows Server 2019.

Esto es en Windows 10.

¿Pero quieres hacer esto por sistema? No, no lo haces. Entonces PowerShell es la respuesta.

Exportar script de PowerShell de números de compilación del sistema operativo Windows

El script de PowerShell Get-WindowsOSBuilds.ps1 recorre cada computadora, prueba si está en línea y, de ser así, verifica si WinRM está habilitado. Si WinRM está habilitado, el script recupera la edición, la versión y la compilación del sistema operativo.

El script recopila la siguiente información para cada computadora AD:

  1. Nombre de la computadora

  2. Estado

  3. WinRM

  4. Edición

  5. Versión

  6. OSBuild

Importante: El servicio de administración remota de Windows debe estar ejecutándose en cada computadora para recuperar la información. Esto se puede hacer implementando un GPO u otras alternativas.

Puede identificar el servicio WinRM con los siguientes nombres:

  • Nombre del servicio: WinRM

  • Nombre para mostrar: Administración remota de Windows (WS-Management)

Prepare el script de PowerShell Get-WindowsOSBuilds

Cree dos carpetas en la unidad del controlador de dominio (C:):

  • Temperatura

  • Guiones

Descargue el script de PowerShell Get-WindowsOSBuilds.ps1 y colóquelo en la carpeta C:\scripts. El script exportará el archivo CSV a la carpeta C:\temp.

Otra opción es copiar y pegar el siguiente código en el Bloc de notas. Asígnale el nombre Get-WindowsOSBuilds.ps1 y colócalo en la carpeta C:\scripts.

<#
    .SYNOPSIS
    Get-WindowsOSBuilds.ps1

    .DESCRIPTION
    Export Windows OS versions and build numbers to CSV file.

    .LINK
    www.alitajran.com/export-windows-os-build-numbers

    .NOTES
    Written by: ALI TAJRAN
    Website:    www.alitajran.com
    LinkedIn:   linkedin.com/in/alitajran

    .CHANGELOG
    V1.00, 04/16/2023 - Initial version
#>

# Retrieve a list of all computers in the domain
$computers = Get-ADComputer -Filter { OperatingSystem -Like "Windows*" }

# Set the registry path that will be used to retrieve the Windows build numbers
$regPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"

# Initialize progress bar
$total = $computers.Count
$completed = 0
$progress = 0
Write-Progress -Activity "Retrieving Windows build numbers" -Status "Starting..." -PercentComplete $progress

# Loop through each computer and retrieve the Windows versions and build numbers (if the computer is online)
$results = foreach ($computer in $computers) {
    $computerName = $computer.Name
    $online = Test-Connection -ComputerName $computerName -Count 1 -Quiet
    if ($online) {
        $winRMEnabled = (Test-WSMan -ComputerName $computerName -ErrorAction SilentlyContinue) -ne $null
        if ($winRMEnabled) {
            $buildNumber = (Invoke-Command -ComputerName $computerName { (Get-ItemProperty -Path $using:regPath -Name "CurrentBuild").CurrentBuild })
            $revisionNumber = (Invoke-Command -ComputerName $computerName { (Get-ItemProperty -Path $using:regPath -Name "UBR").UBR })
            $windowsBuildNumber = "$buildNumber.$revisionNumber"
            $edition = (Invoke-Command -ComputerName $computerName { (Get-ItemProperty -Path $using:regPath -Name "ProductName").ProductName })
            $version = (Invoke-Command -ComputerName $computerName { (Get-ItemProperty -Path $using:regPath -Name "ReleaseID" -ErrorAction Stop).ReleaseID })
        }
        else {
            $windowsBuildNumber = "N/A"
            $edition = "N/A"
            $version = "N/A"
        }
        [PSCustomObject] @{
            "ComputerName" = $computerName
            "Status"       = "Online"
            "WinRM"        = if ($winRMEnabled) { "Enabled" } else { "Disabled" }
            "Edition"      = $edition
            "Version"      = $version
            "OSBuild"      = $windowsBuildNumber
        }
    }
    else {
        [PSCustomObject] @{
            "ComputerName" = $computerName
            "Status"       = "Offline"
            "WinRM"        = "N/A"
            "Edition"      = "N/A"
            "Version"      = "N/A"
            "OSBuild"      = "N/A"
        }
    }
    $completed++
    $progress = [Math]::Round($completed / $total * 100)
    Write-Progress -Activity "Retrieving Windows build numbers" -Status "Completed $completed of $total" -PercentComplete $progress
}

# Sort the results by ComputerName in ascending order and select only the desired columns
$results | Sort-Object ComputerName | Select-Object ComputerName, Status, WinRM, Edition, Version, OSBuild | Export-Csv -Path "C:\Temp\WindowsOSBuilds.csv" -NoTypeInformation

Así es como se ve.

Ejecute el script de PowerShell Get-WindowsOSBuilds

Obtenga compilaciones del sistema operativo Windows para todas las computadoras AD con PowerShell. Cambie la ruta a la carpeta de scripts. Después de eso, ejecute el script Get-WindowsOSBuilds.ps1.

PS C:\> cd c:\scripts\
PS C:\scripts> .\Get-WindowsOSBuilds.ps1

Abra el archivo CSV del informe de compilaciones del sistema operativo Windows

El script de PowerShell Get-WindowsOSBuilds.ps1 exportará los números de compilación de las computadoras de Active Directory a un archivo CSV. Busque el archivo WindowsOSBuilds.csv en la ruta C:\temp.

Abra el archivo CSV con su aplicación favorita. En nuestro ejemplo, es Microsoft Excel.

El informe de compilaciones del sistema operativo Windows parece excelente.

Importante: No olvide desactivar la administración remota de Windows (WinRM) si esa es la política de la organización.

¿Le ayudó esto a exportar los números de compilación del sistema operativo Windows a un archivo CSV?

Leer más: Desinstale y deshabilite SMBv1 en Windows »

Conclusión

Aprendió a exportar números de compilación del sistema operativo Windows con PowerShell. Obtenga el informe de compilación del sistema operativo Windows con el script Get-WindowsOSBuilds PowerShell y revíselo. Asegúrese de que todas las computadoras con Windows AD estén actualizadas por motivos de seguridad.

Disfrutaste este artículo? También te puede interesar Comprobar el espacio libre en disco en Windows con el script de PowerShell. No olvides seguirnos y compartir este artículo.

Artículos relacionados