none
WinRE-Image anpassen: PowerShell-Support aktivieren RRS feed

  • Allgemeine Diskussion

  • Hallo Community,

    ich möchte gerne ein angepasstes WinPE und WinRE-Image erstellen, mit dem ich PowerShell (inklusive DISM-Cmdlets)  sowie CMTrace nutzen kann. Leider waren alle Versuche, dies zu tun, bisher erfolglos.

    Rahmenbedingungen:

    Es wird ein deutsches ISO von Windows 10 1803 (x64) verwendet.

    Das zugehörige ADK (Build 17133) ist installiert.

    Ich habe versucht, die optionalen Komponenten aus dem Ordner C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs hinzuzufügen. Auch unter Beachtung der Abhängigkeiten erhalte ich in der PowerShell den Fehler 0x800f081e. Wenn ich DISM über die cmd ausführe, wird mir angezeigt, dass das Paket nicht für das Image gültig ist. Auch als Windows-Feature lässt sich PowerShell nicht aktivieren.

    Bei meiner Internetrecherche habe ich herausgefunden, dass CMTrace das HTA-Paket benötigt, dieses aber seit Windows 10 Bestandteil des Basisimages ist. Daraufhin habe ich versucht, CMTrace in der Recovery-Umgebung zu starten, habe aber als Fehlermeldung erhalten, dass die Version nicht mit der ausgeführten Windows-Version kompatibel ist.

    Was kann ich tun bzw. was mache ich falsch?

    Vielen Dank

    powershellking


    Vielen Dank powershellking

    Donnerstag, 8. November 2018 16:01

Alle Antworten

  • Hi,

    Mit WinPE 16299 funktioniert powershell und cmtrace. Möglicherweise fehlen die .NET Pakete.

    Bin eben fertig geworden mit der 1809 (17763) und die M$ Anleitungen geben Auskunft über die korrekte Vorgehensweise und funktionieren auch:

    Setup ADK & WinPE 1809: https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install

    #1 copype amd64 C:\WinPE_amd64 #2 Dism /Mount-Image /ImageFile:"C:\mount\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\mount\WinPE_amd64\mount" #3 DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Dot3Svc.cab" DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-HTA.cab" DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-MDAC.cab" DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFx.cab" DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab" DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab" DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab" DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-StorageWMI.cab" DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-EnhancedStorage.cab" DISM /image:C:\mount\WinPE_amd64\mount /Add-Package /Packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-DismCmdlets.cab" #4 DISM /image:C:\mount\WinPE_amd64\mount /Set-InputLocale:de-de DISM /image:C:\mount\WinPE_amd64\mount /Set-UserLocale:de-de DISM /image:C:\mount\WinPE_amd64\mount /Set-SysLocale:de-de

    #5
    powershell Copy-Item "C:\Windows\CCM\CMTrace.exe" "c:\mount\WinPE_amd64\mount"

    #6 dism /unmount-wim /mountdir:c:\mount\WinPE_amd64\mount /commit


    Das ganze ist bei uns noch etwas aufwändiger mit ADSI, DaRT etc. Integration und grafischer Oberfläche, funktioniert aber ohne Probleme.

    SG, G.

    Freitag, 30. November 2018 09:27
  • Ist zwar jetzt zwei Jahre her, aber gab es hier mittlerweile eine Lösung?

    Denn ich stoße auf das selbe Problem. Das Installieren keinerlei Pakete funktioniert...

    Donnerstag, 4. Februar 2021 06:56
  • Inzwischen habe ich mir eine Lösung mit PowerShell gebaut.

    #Requires -RunAsAdministrator
    $Images=Get-WindowsImage -Mounted
    $ImagePE=($Images).Path | where {$_ -like "*winpe*"}
    $ImageRE=($Images).Path | where {$_ -like "*winre*"}
    $ImageSetup=($Images).Path | where {$_ -like "*setup*"}
    $Packages=(Get-ChildItem -Path "<Path>").FullName
    $FailedPackagesPE=New-Object Collections.ArrayList
    $FailedPackagesRE=New-Object Collections.ArrayList
    $FailedPackagesSetup=New-Object Collections.ArrayList
    Write-Host "Startzeit: $(Get-Date -Format "HH:mm:ss")"
    $StartTime=Get-Date
    
    
    foreach($Package in $Packages)
    {
        try 
        {
            Write-Host "Installiere Paket $Package in $ImagePE"
            Add-WindowsPackage -PackagePath $Package -Path $ImagePE -Verbose -ErrorAction Stop        
        }
        catch 
        {
            $FailedPackagesPE.Add($Package)
        }
    
        try 
        {
            Write-Host "Installiere Paket $Package in $ImageRE"
            Add-WindowsPackage -PackagePath $Package -Path $ImageRE -Verbose -ErrorAction Stop        
        }
        catch 
        {
            $FailedPackagesRE.Add($Package)
        }
    
        try 
        {
            Write-Host "Installiere Paket $Package in $ImageSetup"
            Add-WindowsPackage -PackagePath $Package -Path $ImageSetup -Verbose -ErrorAction Stop        
        }
        catch 
        {
            $FailedPackagesSetup.Add($Package)
        }
    }
    
    foreach($Package in $FailedPackagesPE)
    {
        Write-Host "Installiere Paket $Package in $ImagePE (2. Versuch)" -ForegroundColor Green
        Add-WindowsPackage -PackagePath $Package -Path $ImagePE -Verbose
    }
    
    foreach($Package in $FailedPackagesRE)
    {
        Write-Host "Installiere Paket $Package in $ImageRE (2. Versuch)" -ForegroundColor Green
        Add-WindowsPackage -PackagePath $Package -Path $ImagePE -Verbose
    }
    
    foreach($Package in $FailedPackagesSetup)
    {
        Write-Host "Installiere Paket $Package in $ImageSetup (2. Versuch)" -ForegroundColor Green
        Add-WindowsPackage -PackagePath $Package -Path $ImagePE -Verbose
    }
    
    
    Write-Host "PE-Packages für 2. Versuch: $($FailedPackagesPE.Count)"
    Write-Host "RE-Packages für 2. Versuch: $($FailedPackagesRE.Count)"
    Write-Host "Setup-Packages für 2. Versuch: $($FailedPackagesSetup.Count)"
    
    Write-Host "Ende der PE-Anpassungen"
    Write-Host "Startzeit: $(Get-Date -Format "HH:mm:ss")"
    $EndTime=Get-Date
    Write-Host "Dauer: $(($EndTime-$StartTime).Hours) Stunden, $(($EndTime-$StartTime).Minutes) Minuten, $(($EndTime-$StartTime).Seconds) Sekunden"

    Schau mal, ob dich das weiterbringt.


    Vielen Dank powershellking

    Donnerstag, 4. Februar 2021 19:45
  • Etwas spät doch für neue Leser eventuell interessant. Das Win10 build muss exakt übereinstimmen mit dem Powershell build, sonst wird es genau zu dem beschriebenen Fehler von dir kommen.

    Donnerstag, 11. Februar 2021 08:28