Zurück

Upgrade von Windows 10 auf Windows 11

Entdecken Sie die Vorteile und den schrittweisen Prozess für das Upgrade von Windows 10 auf Windows 11, um Ihr Computererlebnis zu verbessern.

Dieser Leitfaden findet die Windows 10 Geräte, die auf Windows 11 umsteigen können, und startet dann automatisch das Upgrade auf ihnen. Er basiert auf Fleet-Richtlinien und PowerShell-Skripten.


 

Funktion/Feature

Überblick

Der Prozess hat drei Phasen:

  1. Lesen des TPM 2.0- und Secure Boot-Status jedes Geräts und Speichern in der Windows-Registrierung.
  2. Überprüfen der Hardware- und Softwareanforderungen, um zu entscheiden, welche Geräte qualifiziert sind.
  3. Herunterladen von Windows 11 und stille Installation auf den qualifizierten Geräten.

 

So verwenden Sie es

Schritt 1. TPM und Secure Boot in der Registrierung aufzeichnen

  1. Erstellen Sie eine Richtlinie mit der untenstehenden Abfrage. Sie überprüft, ob die beiden Registrierungswerte, die den TPM und Secure Boot Status halten, bereits existieren.
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'
    );
  1. Fügen Sie das folgende PowerShell-Skript dieser Richtlinie hinzu. Es liest die TPM-Version und den Secure Boot-Status und schreibt beide Werte in die Registrierung.
$TPM = Get-WmiObject -Namespace "Root\CIMv2\Security\MicrosoftTpm" -Class Win32_Tpm
$SecureBoot = Confirm-SecureBootUEFI

$TPMVersion = $TPM.SpecVersion
$SecureBootEnabled = if ($SecureBoot) { 1 } else { 0 }

# Werte in die Registrierung schreiben (Beispiel)
New-Item -Path "HKLM:\Software\FleetDM" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\Software\FleetDM" -Name "TPMVersion" -Value $TPMVersion
Set-ItemProperty -Path "HKLM:\Software\FleetDM" -Name "SecureBoot" -Value $SecureBootEnabled

Nachdem das Skript ausgeführt wurde, existieren HKLM\Software\FleetDM\TPMVersion und HKLM\Software\FleetDM\SecureBoot und halten die aktuellen Werte.

Schritt 2. Überprüfen, welche Windows 10 Geräte qualifiziert sind

  1. Erstellen Sie eine zweite Richtlinie mit der untenstehenden Abfrage. Sie überprüft RAM, CPU-Kerne, Architektur, TPM 2.0 und Secure Boot.
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'
    );
  1. Lesen Sie das Ergebnis richtig herum: Die Abfrage gibt 1 zurück, wenn das Gerät kein qualifiziertes Windows 10-Gerät ist. Behandeln Sie es als eine Nichteinhaltungsrichtlinie. Die Geräte, bei denen es nicht 1 zurückgibt, sind die, die Sie upgraden können.

Schritt 3. Starten Sie das Upgrade auf qualifizierten Geräten

  1. Fügen Sie das folgende Skript den Geräten hinzu, die Schritt 2 bestanden haben.
  2. Das Skript lädt die Windows 11 ISO herunter, bindet sie ein, kopiert die Installationsdateien auf die lokale Festplatte und plant eine stille Installation, die als SYSTEM ausgeführt wird.
# Imports
Import-Module BitsTransfer

# Variablen
$uri = "https://production-bucket-public-files.s3.eu-west-3.amazonaws.com/Win11_24H2_French_x64.iso" # Französische Lokalisierung — ersetzen Sie die URL mit der ISO für Ihre Sprache und Region
$destination = "C:\Win11.iso"
$log = "C:\logs\download_win11_iso.log"

# Erstellen Sie den Logs Ordner wenn er nicht existiert
if (-not (Test-Path -Path "C:\logs")) {
    New-Item -Path "C:\logs" -ItemType Directory | Out-Null
}

# Starten Sie den Download
try {
    "`n[$(Get-Date)] Starte Download..." | Out-File -Append $log
    if (-not (Test-Path $destination)){
      Start-BitsTransfer -Source $uri -Destination $destination
    }
    "`n[$(Get-Date)] Download wurde erfolgreich abgeschlossen." | Out-File -Append $log
} catch {
    "`n[$(Get-Date)] Fehler während des Downloads: $_" | Out-File -Append $log
}

# Zusätzliche Variablen
$isoPath = "C:\Win11.iso"
$setupFolder = "C:\Temp\Win11Files"
$taskName = "Win11SilentUpgrade"

# Schritt 1 - Mount die ISO
Mount-DiskImage -ImagePath $isoPath -PassThru | Out-Null
Start-Sleep -Seconds 2
$vol = Get-Volume -DiskImage (Get-DiskImage -ImagePath $isoPath)
$driveLetter = $vol.DriveLetter

# Schritt 2 - Kopieren Sie den ISO Inhalt lokal
New-Item -ItemType Directory -Force -Path $setupFolder | Out-Null
Copy-Item "$driveLetter`:\*" -Destination $setupFolder -Recurse

# Unmount die ISO
Dismount-DiskImage -ImagePath $isoPath

# Schritt 3 - Erstellen und planen Sie die Installations Aufgabe
$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

# Schritt 4 - Starten Sie die Aufgabe sofort
Start-ScheduledTask -TaskName $taskName

Tipps und Best Practices

  • Ändern Sie die ISO, bevor Sie etwas ausführen. Das Skript verweist auf eine französische ISO. Ersetzen Sie die URL durch die ISO für Ihre Sprache und Region.
  • Führen Sie zuerst Schritt 1 aus und geben Sie ihm Zeit. Schritt 2 hängt von den in Schritt 1 geschriebenen Registrierungswerten ab. Ein Gerät ohne diese zeigt immer als nicht qualifiziert an.
  • Beginnen Sie mit einer kleinen Gruppe. Die Einrichtung läuft still und ohne Neustartaufforderung. Testen Sie es an einigen Geräten, bevor Sie die gesamte Flotte aktualisieren.
  • Behalten Sie die Protokolle. Das Download-Protokoll geht an C:\logs\download_win11_iso.log und das Setup-Protokoll an C:\logs\WinSetup.log. Überprüfen Sie diese zuerst, wenn etwas fehlschlägt.
  • Planen Sie den Download. Jedes Gerät zieht eine vollständige Windows 11 ISO, vermeiden Sie also langsame oder nutzungsabhängige Verbindungen.

 

Fehlerbehebung und FAQ

Fehlerbehebung

  • Ein Gerät, von dem Sie erwarteten, dass es qualifiziert, zeigt an, dass es nicht berechtigt ist. Überprüfen Sie, ob das Skript von Schritt 1 auf diesem Gerät ausgeführt wurde und ob beide Registrierungswerte existieren. Überprüfen Sie dann die Anforderungen in der Abfrage von Schritt 2: Windows 10, mindestens 4 GB RAM, mindestens 2 physische CPU-Kerne, einen x86_64-Prozessor, TPM-Version 2 und aktivierten Secure Boot.
  • Das Upgrade hat nicht begonnen. Öffnen Sie C:\logs\download_win11_iso.log, um zu sehen, ob die ISO heruntergeladen wurde. Wenn ja, suchen Sie nach der geplanten Aufgabe Win11SilentUpgrade auf dem Gerät.
  • Das Setup ist teilweise fehlgeschlagen. Lesen Sie C:\logs\WinSetup.log, wo das Skript Windows-Setup anweist, seine Protokolle zu kopieren.

 

FAQ

  1. Gibt die Abfrage von Schritt 2 die qualifizierten Geräte zurück?
    Nein, das Gegenteil. Sie gibt 1 für Geräte zurück, die nicht qualifiziert sind. Qualifizierte Geräte sind die, bei denen sie nicht 1 zurückgibt.
     
  2. Warum TPM und Secure Boot in der Registrierung speichern?
    Damit die Berechtigungsrichtlinie sie mit einer einfachen Registrierungsabfrage lesen kann.
     
  3. Welches Konto führt das Upgrade aus?
    SYSTEM, durch eine geplante Aufgabe, die das Skript erstellt und sofort startet.
     
  4. Startet das Skript das Gerät neu?
    Der Setup-Befehl enthält /noreboot, sodass das Skript keinen Neustart selbst erzwingt.

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