Vogliamo ottenere un elenco di tutti i numeri di build dei computer AD. Questo perché ci piace sapere se tutti i computer sono aggiornati. Un ottimo modo per ottenere questo report è con PowerShell. In questo articolo imparerai come esportare i numeri di build del sistema operativo Windows in un file CSV.
Controlla il numero di build di Windows
È possibile ottenere la versione e il numero di build del sistema operativo dal fileInformazioni su Windowsschermo (vincitore).
Questo è su Windows Server 2019.

Questo è su Windows 10.

Ma vuoi farlo per sistema? No, non lo fai. Quindi PowerShell è la risposta.
Lo script Get-WindowsOSBuilds.ps1 di PowerShell esegue il loop su ogni computer, verifica se è online e, in tal caso, controlla se WinRM è abilitato. Se WinRM è abilitato, lo script recupera l'edizione, la versione e la build del sistema operativo.
Lo script raccoglie le seguenti informazioni per ciascun computer AD:
- NomeComputer
- Stato
- WinRM
- Edizione
- Versione
- OSBuild
Importante:Il servizio Gestione remota Windows deve essere in esecuzione su ogni computer per recuperare le informazioni. Questa operazione può essere eseguita distribuendo un oggetto Criteri di gruppo o altre alternative.
Leggi anche:Simboli della scheda SD: cosa significano i numeri e le lettere sulle schede di memoria
È possibile identificare il servizio WinRM con i seguenti nomi:
- Nome del servizio:WinRM
- Nome da visualizzare:Gestione remota Windows (gestione WS)

Preparare lo script PowerShell Get-WindowsOSBuilds
Crea due cartelle sul controller di dominio(C:)guidare:
- Temp
- Script
Scarica lo script PowerShell Get-WindowsOSBuilds.ps1 e inserisciloC: scriptcartella. Lo script esporterà il file CSV nel formatoC:tempcartella.
Un'altra opzione è copiare e incollare il codice seguente nel Blocco note. Dategli il nomeGet-WindowsOSBuilds.ps1e posizionarlo nelC: scriptcartella.
<#
.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" -NoTypeInformationEcco come appare.

Esegui lo script PowerShell Get-WindowsOSBuilds
Ottieni build del sistema operativo Windows per tutti i computer AD con PowerShell. Modificare il percorso della cartella degli script. Successivamente, esegui lo script Get-WindowsOSBuilds.ps1.
PS C:> cd c:scripts
PS C:scripts> .Get-WindowsOSBuilds.ps1Apri il file CSV del report sulle build del sistema operativo Windows
Lo script Get-WindowsOSBuilds.ps1 PowerShell esporterà i numeri di build dei computer Active Directory in un file CSV. Trova il fascicoloWindowsOSBuilds.csvnel percorsoC:temp.

Apri il file CSV con la tua applicazione preferita. Nel nostro esempio, è Microsoft Excel.

Il rapporto sulle build del sistema operativo Windows sembra eccellente.
Importante:Non dimenticare di disabilitare Gestione remota Windows (WinRM) se questa è la politica dell'organizzazione.
Questo ti ha aiutato a esportare i numeri di build del sistema operativo Windows in un file CSV?
Conclusione
Hai imparato come esportare i numeri di build del sistema operativo Windows con PowerShell. Ottieni il report sulla build del sistema operativo Windows con lo script Get-WindowsOSBuilds PowerShell ed esaminalo. Assicurarsi che tutti i computer Windows AD siano aggiornati per motivi di sicurezza.
Ti è piaciuto questo articolo? Potrebbe interessarti anche Controlla lo spazio libero su disco su Windows con lo script PowerShell. Non dimenticare di seguirci e condividere questo articolo.












