From 3c161566444d6c63aafb3b19fae7c2bc2c575ec8 Mon Sep 17 00:00:00 2001 From: CodingWonders <101426328+CodingWonders@users.noreply.github.com> Date: Sun, 21 Apr 2024 09:11:10 +0200 Subject: [PATCH] Added ability to import drivers Added the ability to import drivers from the active installation to the MicroWin image. --- functions/public/Invoke-WPFMicrowin.ps1 | 29 +++++++++++++++++++++++-- xaml/inputXML.xaml | 1 + 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/functions/public/Invoke-WPFMicrowin.ps1 b/functions/public/Invoke-WPFMicrowin.ps1 index 89d15872..58d0f35f 100644 --- a/functions/public/Invoke-WPFMicrowin.ps1 +++ b/functions/public/Invoke-WPFMicrowin.ps1 @@ -53,6 +53,7 @@ public class PowerManagement { $keepEdge = $sync.WPFMicrowinKeepEdge.IsChecked $copyToUSB = $sync.WPFMicrowinCopyToUsb.IsChecked $injectDrivers = $sync.MicrowinInjectDrivers.IsChecked + $importDrivers = $sync.MicrowinImportDrivers.IsChecked $mountDir = $sync.MicrowinMountDir.Text $scratchDir = $sync.MicrowinScratchDir.Text @@ -117,7 +118,7 @@ public class PowerManagement { if (Test-Path $driverPath) { Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) " - Add-WindowsDriver -Path "$scratchDir" -Recurse -Driver "$driverPath" + dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host } else { @@ -125,6 +126,30 @@ public class PowerManagement { } } + if ($importDrivers) + { + Write-Host "Exporting drivers from active installation..." + if (Test-Path "$env:TEMP\DRV_EXPORT") + { + Remove-Item "$env:TEMP\DRV_EXPORT" -Recurse -Force + } + New-Item -Path "$env:TEMP\DRV_EXPORT" -ItemType Directory -Force + dism /english /online /export-driver /destination="$env:TEMP\DRV_EXPORT" | Out-Host + if ($?) + { + Write-Host "Adding exported drivers..." + dism /english /image="$scratchDir" /add-driver /driver="$env:TEMP\DRV_EXPORT" /recurse | Out-Host + } + else + { + Write-Host "Failed to export drivers. Continuing without importing them..." + } + if (Test-Path "$env:TEMP\DRV_EXPORT") + { + Remove-Item "$env:TEMP\DRV_EXPORT" -Recurse -Force + } + } + Write-Host "Remove Features from the image" Remove-Features -keepDefender:$keepDefender Write-Host "Removing features complete!" @@ -335,7 +360,7 @@ public class PowerManagement { if (Test-Path $driverPath) { Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) " - Add-WindowsDriver -Path "$scratchDir" -Driver "$driverPath" -Recurse + dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host } else { diff --git a/xaml/inputXML.xaml b/xaml/inputXML.xaml index 9fee01b4..28e8b932 100644 --- a/xaml/inputXML.xaml +++ b/xaml/inputXML.xaml @@ -843,6 +843,7 @@ Foreground="{LabelboxForegroundColor}" ToolTip="Path to unpacked drivers all sys and inf files for devices that need drivers" /> +