Migrieren Sie mit PSADT zu Windows 11

Entdecken Sie eine praktische Methode zum Upgrade von Geräten mit PSADT. Ein zuverlässiger Ansatz für IT-Teams, die Windows 11-Migrationen vereinfachen möchten.
Abbildung von Perica

Perica

In unseren früheren Blogbeiträgen haben wir verschiedene Ansätze für die Migration auf Windows 11 untersucht: mit SCCM, über XOAP, über GPOs und Registrierungsschlüssel und Windows Update in den Einstellungen. In diesem Beitrag führen wir Sie durch eine weitere Methode - die Bereitstellung des Windows 11-Upgrade-Pakets mithilfe unseres PowerShell App Deployment Toolkit (hier kostenlos herunterladen).

Verwenden Sie PSADT, um von Windows 10 auf Windows 11 zu migrieren

Um loszulegen, Extrahieren Sie den Inhalt Ihrer Windows 11 ISO-Datei und sie in Ihr PSADT-Paket aufnehmen. Dann verwenden Sie die setup.exe Datei aus der extrahierten ISO-Datei zusammen mit bestimmten Befehlszeilenparametern, um ein Upgrade von Windows 10 auf Windows 11 durchzuführen.

Sobald Sie Ihre Quelldatei fertig haben, müssen Sie das Skript "Deploy-Application.ps1" ändern. Im Teil vor der Installation wird geprüft, ob eine geplante Aufgabe vorhanden ist und löschen Sie sie (im Falle von Fehlern/Reparaturen).

				
					#### (Vorinstallation) Geplante Aufgabe löschen -------------------------------------------->
$DELTaskName = 'Win11Upgrade'
# Prüfen, ob die Aufgabe existiert
$DELTaskExists = Get-ScheduledTask -TaskName $DELTaskName -ErrorAction SilentlyContinue
if ($DELTaskExists) {
    # Löschen der Aufgabe
    Unregister-ScheduledTask -TaskName $DELTaskName -Confirm:$false
    Write-Output "(Pre-Install) Aufgabe '$DELTaskName' wurde gelöscht."
} else {
    Write-Output "(Vorinstallation) Aufgabe '$DELTaskName' existiert nicht.  Wir fahren mit der Installation fort"
}
				
			

Im Installationsteil wird ein geplanter Task erstellt und gestartet. In einer While-Schleife wird geprüft, ob der Task nach dem Start noch läuft.

				
					###># CREATE SCHEDULED TASK -------------------------------------------------------->
    $STExecutable = "$dirfiles\ISO\Setup.exe"
    $STArguments = "/Auto Upgrade /EULA akzeptieren /NoReboot"
    $STTaskName = "Win11Upgrade"
    $STTriggerTime = (Get-Date).AddSeconds(15)
    $STPriorität = 4
    $STTrigger = New-ScheduledTaskTrigger -Once -At $STTriggerTime
    $STSettings = New-ScheduledTaskSettingsSet -StartWhenAvailable -Priority $STPriority -RunOnlyIfNetworkAvailable -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
    # Erstellen einer neuen geplanten Aufgabenaktion
    $STAction = New-ScheduledTaskAction -Execute $STExecutable -Argument $STArguments -WorkingDirectory (Split-Path $STExecutable)
    # Erstellen einer neuen geplanten Aufgabe für das SYSTEM-Konto
    $STPrincipal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
    # Erstellen und Registrieren der neuen geplanten Aufgabe
    $STTask = New-ScheduledTask -Action $STAction -Trigger $STTrigger -Settings $STSettings -Principal $STPrincipal
    Register-ScheduledTask -Aufgabenname $STTaskName -InputObject $STTask

    #### KICK OFF GEPLANTE AUFGABE ------------------------------------------------------>
    Start-Schlummern 10
    GeplanteAufgabe starten -Aufgabenname "Win11Upgrade"
    ##P16T# GEPLANTE AUFGABE ÜBERWACHEN ------------------------------------------------------->
    $STTaskName = "Win11Upgrade"
    # Schleife, bis die Aufgabe nicht mehr ausgeführt wird
    while ((Get-ScheduledTask -TaskName $STTaskName).State -eq "Running")
    {
        # Abrufen von Aufgabeninformationen
        $taskInfo = Get-ScheduledTaskInfo -TaskName $STTaskName
        # Überprüfen, ob die Aufgabe von SYSTEM ausgeführt wird
        if ((Get-ScheduledTask -TaskName $STTaskName).Principal.UserId -eq "SYSTEM")
        {
            # In den Ausgang schreiben
            Write-Output "$STTaskName läuft noch als SYSTEM"
        }
        sonst
        {
            Write-Output "$STTaskName läuft noch, aber nicht als SYSTEM"
        }
        # Warten Sie 10 Sekunden lang, bevor Sie erneut prüfen
        Start-Sleep -Seconds 10
    }
    Write-Output "$STTaskName has finished running"
				
			

 Im Anschluss an die Installation wird die erstellte geplante Aufgabe gelöscht.

				
					#### (Post-Install) Geplanten Task löschen -------------------------------------------->
    $DELTaskName = "Win11Upgrade"
    # Prüfen, ob die Aufgabe existiert
    $DELTaskExists = Get-ScheduledTask -TaskName $DELTaskName -ErrorAction SilentlyContinue
    if ($DELTaskExists) {
        # Löschen der Aufgabe
        Unregister-ScheduledTask -TaskName $DELTaskName -Confirm:$false
        Write-Output "(Post-Install) Aufgabe '$DELTaskName' wurde gelöscht."
    } else {
        Write-Output "(Post-Install) Aufgabe '$DELTaskName' existiert nicht."
    }
				
			

Es gibt eine Reihe von zu berücksichtigende Optionen wenn Sie dieses Paket erweitern möchten:

  • Prüfung der Windows 11-Voraussetzungen hinzufügen
  • Erweitern Sie es mit PSADT-Funktionen wie:
    - Show-InstallationWillkommen
    - Zeige-Installationsfortschritt
    - Show-InstallationRestartPrompt
  • Passen Sie die verfügbaren Optionen für geplante Aufgaben an:
    - RunOnlyIfNetworkAvailable
    - AllowStartIfOnBatteries
    - NichtAbschaltenAufBatterien
  • Fügen Sie der setup.exe-Ausführung weitere Parameter hinzu (z. B. "/Product Server" als Umgehung für die Prüfung der Voraussetzungen)

Sie sind startklar!

Das Upgrade auf Windows 11 mit PSADT ist eine flexible Option, wenn Sie mehr Kontrolle über den Prozess haben möchten. Mit ein paar Skriptanpassungen können Sie das Upgrade von Anfang bis Ende durchführen.

Mehr Blogbeiträge wie dieser

EUC Hexagrid 2025 by Dizzion
Nachrichten

Das EUC Hexagrid und unsere Rolle

XOAP ist einer der Hauptakteure im Ökosystem des End-User Computing (EUC). Einen detaillierten technischen Überblick finden Sie im EUC Hexagrid.

de_DE
Nach oben scrollen