Eksporter Windows OS build-numre

Vi ønsker at få en liste over alle AD-computeres build-numre. Det er fordi vi gerne vil vide, om alle computere er opdaterede. En fremragende måde at få denne rapport på er med PowerShell. I denne artikel lærer du, hvordan du eksporterer Windows OS build-numre til CSV-fil.

Tjek Windows build-nummer

Du kan få versionen og OS build-nummeret fraOm Windowsskærm (winver).

Dette er på Windows Server 2019.

Dette er på Windows 10.

Men vil du gøre dette pr system? Nej, det gør du ikke. Så PowerShell er svaret.

Eksporter Windows OS build-numre PowerShell-script

Get-WindowsOSBuilds.ps1 PowerShell-scriptet går gennem hver computer, tester, om det er online, og i så fald, om WinRM er aktiveret. Hvis WinRM er aktiveret, henter scriptet udgaven, versionen og OS-builden.

Scriptet samler følgende oplysninger for hver AD-computer:

  1. Computernavn
  2. Status
  3. WinRM
  4. Udgave
  5. Version
  6. OSBuild

Vigtig:Windows Remote Management-tjenesten skal køre på hver computer for at hente oplysningerne. Dette kan gøres ved at implementere en GPO eller andre alternativer.

Anbefalet læsning:Hvordan tilføjer man sidetal i Google Docs?

Du kan identificere WinRM-tjenesten med følgende navne:

  • Tjenestenavn:WinRM
  • Vist navn:Windows Remote Management (WS-Management)

Forbered Get-WindowsOSBuilds PowerShell-script

Opret to mapper på domænecontrolleren(C:)køre:

  • Temp
  • Scripts

Download Get-WindowsOSBuilds.ps1 PowerShell-scriptet og placer det iC:scriptsfolder. Scriptet eksporterer CSV-filen tilC:tempfolder.

En anden mulighed er at kopiere og indsætte koden nedenfor i Notesblok. Giv den navnetHent-WindowsOSBuilds.ps1og placer den iC:scriptsfolder.

<#
    .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:SOFTWAREMicrosoftWindows NTCurrentVersion"

# 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 = $null -ne (Test-WSMan -ComputerName $computerName -ErrorAction SilentlyContinue)
        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:TempWindowsOSBuilds.csv" -NoTypeInformation

Sådan ser det ud.

Kør Get-WindowsOSBuilds PowerShell-script

Få Windows OS Builds til alle AD-computere med PowerShell. Skift stien til scripts-mappen. Kør derefter scriptet Get-WindowsOSBuilds.ps1.

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

Åbn Windows OS Builds rapport CSV-fil

Get-WindowsOSBuilds.ps1 PowerShell-scriptet vil eksportere Active Directory Computers build-numre til CSV-fil. Find filenWindowsOSBuilds.csvi stienC:temp.

Åbn CSV-filen med din yndlingsapplikation. I vores eksempel er det Microsoft Excel.

Windows OS Builds-rapporten ser fremragende ud.

Vigtig:Glem ikke at deaktivere Windows Remote Management (WinRM), hvis det er politikken i organisationen.

Har dette hjulpet dig med at eksportere Windows OS build-numre til CSV-fil?

Konklusion

Du lærte, hvordan du eksporterer Windows OS build-numre med PowerShell. Hent Windows OS build-rapporten med Get-WindowsOSBuilds PowerShell-script, og gennemgå den. Sørg for, at alle Windows AD-computere er opdaterede af sikkerhedsmæssige årsager.

Kunne du lide denne artikel? Du kan også lide Tjek ledig diskplads på Windows med PowerShell-script. Glem ikke at følge os og dele denne artikel.

Related Posts