Chcemy uzyskać listę wszystkich numerów kompilacji komputerów AD. Dzieje się tak, ponieważ lubimy wiedzieć, czy wszystkie komputery są aktualne. Doskonałym sposobem na uzyskanie tego raportu jest użycie programu PowerShell. W tym artykule dowiesz się, jak wyeksportować numery kompilacji systemu operacyjnego Windows do pliku CSV.
Sprawdź numer kompilacji systemu Windows
Numer wersji i kompilacji systemu operacyjnego można uzyskać z plikuO Windowsieekran (zwycięzca).
To jest na Windows Server 2019.

To jest na Windowsie 10.

Ale czy chcesz to zrobić dla każdego systemu? Nie, nie. Zatem PowerShell jest odpowiedzią.
Eksportuj numery kompilacji systemu operacyjnego Windows do skryptu PowerShell
Skrypt Get-WindowsOSBuilds.ps1 PowerShell przechodzi przez każdy komputer, sprawdza, czy jest on w trybie online, a jeśli tak, sprawdza, czy usługa WinRM jest włączona. Jeśli usługa WinRM jest włączona, skrypt pobiera wydanie, wersję i kompilację systemu operacyjnego.
Skrypt zbiera następujące informacje dla każdego komputera AD:
- Nazwa komputera
- Status
- WinRM
- Wydanie
- Wersja
- OSBuild
Ważny:Aby pobrać informacje, na każdym komputerze musi być uruchomiona usługa zdalnego zarządzania systemem Windows. Można to zrobić, wdrażając obiekt zasad grupy lub inne alternatywy.
Zalecana lektura:Jak dodać numery stron w Dokumentach Google?
Usługę WinRM można rozpoznać po następujących nazwach:
- Nazwa usługi:WinRM
- Nazwa wyświetlana:Zdalne zarządzanie systemem Windows (WS-Management)

Przygotuj skrypt Get-WindowsOSBuilds PowerShell
Utwórz dwa foldery na kontrolerze domeny(C:)prowadzić:
- Temp
- Skrypty
Pobierz skrypt Get-WindowsOSBuilds.ps1 PowerShell i umieść go wC:skryptyfalcówka. Skrypt wyeksportuje plik CSV doC:tempfalcówka.
Inną opcją jest skopiowanie i wklejenie poniższego kodu do Notatnika. Podaj nazwęPobierz WindowsOSBuilds.ps1i umieść go wC:skryptyfalcówka.
<#
.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" -NoTypeInformationTak to wygląda.

Uruchom skrypt PowerShell Get-WindowsOSBuilds
Uzyskaj kompilacje systemu operacyjnego Windows dla wszystkich komputerów AD za pomocą programu PowerShell. Zmień ścieżkę do folderu skryptów. Następnie uruchom skrypt Get-WindowsOSBuilds.ps1.
PS C:> cd c:scripts
PS C:scripts> .Get-WindowsOSBuilds.ps1Otwórz plik CSV raportu o kompilacjach systemu operacyjnego Windows
Skrypt Get-WindowsOSBuilds.ps1 PowerShell wyeksportuje numery kompilacji komputerów Active Directory do pliku CSV. Znajdź plikWindowsOSBuilds.csvna ścieżceC:temp.

Otwórz plik CSV ze swoją ulubioną aplikacją. W naszym przykładzie jest to Microsoft Excel.

Raport kompilacji systemu operacyjnego Windows wygląda znakomicie.
Ważny:Nie zapomnij wyłączyć Zdalnego zarządzania systemem Windows (WinRM), jeśli taka jest polityka w organizacji.
Czy pomogło Ci to wyeksportować numery kompilacji systemu operacyjnego Windows do pliku CSV?
Wniosek
Nauczyłeś się, jak eksportować numery kompilacji systemu operacyjnego Windows za pomocą programu PowerShell. Uzyskaj raport kompilacji systemu operacyjnego Windows za pomocą skryptu Get-WindowsOSBuilds PowerShell i przejrzyj go. Ze względów bezpieczeństwa upewnij się, że wszystkie komputery z systemem Windows AD są aktualne.
Czy podobał Ci się ten artykuł? Może Ci się także spodobać Sprawdź wolne miejsce na dysku w systemie Windows za pomocą skryptu PowerShell. Nie zapomnij nas obserwować i udostępnić ten artykuł.

![Jak usunąć nadzór urządzenia z iPhone'a/iPada [2024 zaktualizowany]](https://elsefix.com/tech/afton/wp-content/uploads/cache/2025/04/how-to-remove-device-supervision-from-iphone-or-ipad.webp.webp.webp)













