Zurück

Führen Sie das Upgrade von Windows 10 auf Windows 11 durch.

Erfahren Sie, wie Sie die Eignung von Windows 10-Geräten für ein Upgrade auf Windows 11 prüfen und den Upgrade-Prozess mithilfe von FleetDM-Richtlinien und PowerShell-Skripten automatisieren können, einschließlich Geräteklassifizierung, Eignungsprüfung und Auslösung der Upgrade-Installation.

Dieser Artikel beschreibt detailliert, wie überprüft werden kann, welche Windows 10-Geräte für ein Upgrade auf Windows 11 geeignet sind , und wie dieses Upgrade mithilfe von FleetDM-Richtlinien und PowerShell-Skripten automatisch initiiert werden kann.

Das Verfahren umfasst Folgendes:

  • Erkennen und Speichern der erforderlichen Systemkomponenten (TPM 2.0 und Secure Boot) in der Registrierung
  • Überprüfung der Hardware- und Softwareanforderungen zur Feststellung der Upgrade-Berechtigung
  • Automatisierter Download und unbeaufsichtigte Installation von Windows 11 auf kompatiblen Geräten

 

Geräte mit TPM und Secure Boot klassifizieren

Erstellen Sie die Erkennungsrichtlinie (FleetDM-Registry)

Verwenden Sie die folgende Abfrage, um das Vorhandensein von Registrierungsschlüsseln zu überprüfen, die den TPM- und Secure-Boot- Status speichern:

SELECT 1 WHERE EXISTS (      SELECT 1 FROM registry      WHERE path = 'HKEY_LOCAL_MACHINE\Software\FleetDM\TPMVersion'    )    AND EXISTS (      SELECT 1 FROM registry      WHERE path = 'HKEY_LOCAL_MACHINE\Software\FleetDM\SecureBoot'    );

Führen Sie das zugehörige Skript aus (füllen Sie die Registrierung aus).

Fügen Sie dieses PowerShell-Skript der obigen Richtlinie hinzu. Es erkennt die TPM-Version und den Secure-Boot-Status und schreibt diese anschließend in die Windows-Registrierung für FleetDM.

$TPM = Get-WmiObject -Namespace "Root\CIMv2\Security\MicrosoftTpm" -Class Win32_Tpm$SecureBoot = Confirm-SecureBootUEFI$TPMVersion = $TPM.SpecVersion$SecureBootEnabled = if ($SecureBoot) { 1 } else { 0 }# Write values to the registry (example)New-Item -Path "HKLM:\Software\FleetDM" -Force | Out-NullSet-ItemProperty -Path "HKLM:\Software\FleetDM" -Name "TPMVersion" -Value $TPMVersionSet-ItemProperty -Path "HKLM:\Software\FleetDM" -Name "SecureBoot" -Value $SecureBootEnabled

Erwartetes Ergebnis: HKLM\Software\FleetDM\TPMVersion und HKLM\Software\FleetDM\SecureBoot werden erstellt/aktualisiert.


 

Prüfen Sie, ob ein Windows 10-Gerät für Windows 11 geeignet ist.

Erstellen Sie die folgende Richtlinie, um die Mindestanforderungen (RAM, CPU-Kerne, Architektur, TPM 2.0, Secure Boot) zu überprüfen und nicht konforme Geräte auszuschließen.

SELECT 1 FROM os_version as os JOIN system_info as si WHERE    os.name NOT LIKE 'Microsoft Windows 10%'    OR si.physical_memory < 4 * 1024 * 1024 * 1024    OR si.cpu_physical_cores < 2    OR si.cpu_type NOT LIKE '%x86_64%'    OR NOT EXISTS (      SELECT * FROM registry      WHERE path = 'HKEY_LOCAL_MACHINE\Software\FleetDM\TPMVersion'        AND data LIKE '2%'    )    OR NOT EXISTS (      SELECT * FROM registry      WHERE path = 'HKEY_LOCAL_MACHINE\Software\FleetDM\SecureBoot'        AND data = '1'    );

Interpretation: Die Abfrage gibt 1 zurück, wenn das Gerät kein kompatibles Windows 10-Gerät ist. Verwenden Sie sie als Richtlinie für Nichtkonformität, um nur berechtigte Geräte beizubehalten (solche, für die die Abfrage nicht 1 zurückgibt).


 

Windows 11-Upgrade auslösen (berechtigte Geräte)

Hängen Sie das unten stehende Bereitstellungsskript an kompatible Geräte an. Es lädt die Windows 11 ISO-Datei herunter, bindet das Image ein, kopiert die Quelldateien lokal und plant eine automatische Installation unter SYSTEM .

# ImportsImport-Module BitsTransfer# Variables$uri = "https://production-bucket-public-files.s3.eu-west-3.amazonaws.com/Win11_24H2_French_x64.iso"$destination = "C:\Win11.iso"$log = "C:\logs\download_win11_iso.log"# Create the logs folder if it doesn't existif (-not (Test-Path -Path "C:\logs")) {    New-Item -Path "C:\logs" -ItemType Directory | Out-Null}# Start the downloadtry {    "`n[$(Get-Date)] Starting download..." | Out-File -Append $log    if (-not (Test-Path $destination)){      Start-BitsTransfer -Source $uri -Destination $destination    }    "`n[$(Get-Date)] Download completed successfully." | Out-File -Append $log} catch {    "`n[$(Get-Date)] Error during download: $_" | Out-File -Append $log}# Additional variables$isoPath = "C:\Win11.iso"$setupFolder = "C:\Temp\Win11Files"$taskName = "Win11SilentUpgrade"# Step 1 - Mount the ISOMount-DiskImage -ImagePath $isoPath -PassThru | Out-NullStart-Sleep -Seconds 2$vol = Get-Volume -DiskImage (Get-DiskImage -ImagePath $isoPath)$driveLetter = $vol.DriveLetter# Step 2 - Copy ISO content locallyNew-Item -ItemType Directory -Force -Path $setupFolder | Out-NullCopy-Item "$driveLetter`:\*" -Destination $setupFolder -Recurse# Unmount the ISODismount-DiskImage -ImagePath $isoPath# Step 3 - Create and schedule the installation task$action = New-ScheduledTaskAction -Execute "C:\Temp\Win11Files\setup.exe" -Argument "/auto upgrade /migratedrivers none /resizerecoverypartition enable /dynamicupdate disable /eula accept /quiet /noreboot /uninstall disable /compat ignorewarning /copylogs C:\logs\WinSetup.log"$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest$task = New-ScheduledTask -Action $action -Principal $principal -Trigger (New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1))Register-ScheduledTask -TaskName $taskName -InputObject $task -Force# Step 4 - Start the task immediatelyStart-ScheduledTask -TaskName $taskName

War dieser Artikel hilfreich?

Give feedback about this article

Können Sie nicht finden, wonach Sie suchen?

Unser Kundenserviceteam steht Ihnen zur Verfügung.

Kontakt

Knowledge Base Software powered by Helpjuice