From 41ac93d09ae79bb761964b9cdb6ed7f4a0908fe3 Mon Sep 17 00:00:00 2001 From: CodingWonders <101426328+CodingWonders@users.noreply.github.com> Date: Mon, 12 Aug 2024 22:03:38 +0200 Subject: [PATCH] Add quotes to paths (#2552) Fixes reported issues about paths with spaces --- functions/private/Invoke-MicroWin-Helper.ps1 | 6 +++--- functions/public/Invoke-WPFGetIso.ps1 | 8 ++++---- functions/public/Invoke-WPFMicrowin.ps1 | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/functions/private/Invoke-MicroWin-Helper.ps1 b/functions/private/Invoke-MicroWin-Helper.ps1 index d0cd1c9e..ece18de9 100644 --- a/functions/private/Invoke-MicroWin-Helper.ps1 +++ b/functions/private/Invoke-MicroWin-Helper.ps1 @@ -157,7 +157,7 @@ function Remove-ProvisionedPackages([switch]$keepSecurity = $false) { $status = "Removing Provisioned $($appx.PackageName)" Write-Progress -Activity "Removing Provisioned Apps" -Status $status -PercentComplete ($counter++/$appxProvisionedPackages.Count*100) try { - Remove-AppxProvisionedPackage -Path $scratchDir -PackageName $appx.PackageName -ErrorAction SilentlyContinue + Remove-AppxProvisionedPackage -Path "$scratchDir" -PackageName $appx.PackageName -ErrorAction SilentlyContinue } catch { Write-Host "Application $($appx.PackageName) could not be removed" continue @@ -175,9 +175,9 @@ function Copy-ToUSB([string]$fileToCopy) { $destinationPath = "$($volume.DriveLetter):\" #Copy-Item -Path $fileToCopy -Destination $destinationPath -Force # Get the total size of the file - $totalSize = (Get-Item $fileToCopy).length + $totalSize = (Get-Item "$fileToCopy").length - Copy-Item -Path $fileToCopy -Destination $destinationPath -Verbose -Force -Recurse -Container -PassThru | + Copy-Item -Path "$fileToCopy" -Destination "$destinationPath" -Verbose -Force -Recurse -Container -PassThru | ForEach-Object { # Calculate the percentage completed $completed = ($_.BytesTransferred / $totalSize) * 100 diff --git a/functions/public/Invoke-WPFGetIso.ps1 b/functions/public/Invoke-WPFGetIso.ps1 index 2db534c7..9a0b7455 100644 --- a/functions/public/Invoke-WPFGetIso.ps1 +++ b/functions/public/Invoke-WPFGetIso.ps1 @@ -76,7 +76,7 @@ function Invoke-WPFGetIso { } Write-Host "File path $($filePath)" - if (-not (Test-Path -Path $filePath -PathType Leaf)) { + if (-not (Test-Path -Path "$filePath" -PathType Leaf)) { $msg = "File you've chosen doesn't exist" [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error) return @@ -85,7 +85,7 @@ function Invoke-WPFGetIso { Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo" # Detect the file size of the ISO and compare it with the free space of the system drive - $isoSize = (Get-Item -Path $filePath).Length + $isoSize = (Get-Item -Path "$filePath").Length Write-Debug "Size of ISO file: $($isoSize) bytes" # Use this procedure to get the free space of the drive depending on where the user profile folder is stored. # This is done to guarantee a dynamic solution, as the installation drive may be mounted to a letter different than C @@ -122,7 +122,7 @@ function Invoke-WPFGetIso { # there is probably a better way of doing this, I don't have time to figure this out $sync.MicrowinIsoDrive.Text = $driveLetter - $mountedISOPath = (Split-Path -Path $filePath) + $mountedISOPath = (Split-Path -Path "$filePath") if ($sync.MicrowinScratchDirBox.Text.Trim() -eq "Scratch") { $sync.MicrowinScratchDirBox.Text ="" } @@ -186,7 +186,7 @@ function Invoke-WPFGetIso { $wimFile = "$mountDir\sources\install.wim" Write-Host "Getting image information $wimFile" - if ((-not (Test-Path -Path $wimFile -PathType Leaf)) -and (-not (Test-Path -Path $wimFile.Replace(".wim", ".esd").Trim() -PathType Leaf))) { + if ((-not (Test-Path -Path "$wimFile" -PathType Leaf)) -and (-not (Test-Path -Path "$($wimFile.Replace(".wim", ".esd").Trim())" -PathType Leaf))) { $msg = "Neither install.wim nor install.esd exist in the image, this could happen if you use unofficial Windows images. Please don't use shady images from the internet, use only official images. Here are instructions how to download ISO images if the Microsoft website is not showing the link to download and ISO. https://www.techrepublic.com/article/how-to-download-a-windows-10-iso-file-without-using-the-media-creation-tool/" Write-Host $msg [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error) diff --git a/functions/public/Invoke-WPFMicrowin.ps1 b/functions/public/Invoke-WPFMicrowin.ps1 index 23a12fa2..4e729cd8 100644 --- a/functions/public/Invoke-WPFMicrowin.ps1 +++ b/functions/public/Invoke-WPFMicrowin.ps1 @@ -63,11 +63,11 @@ public class PowerManagement { $scratchDir = $sync.MicrowinScratchDir.Text # Detect if the Windows image is an ESD file and convert it to WIM - if (-not (Test-Path -Path $mountDir\sources\install.wim -PathType Leaf) -and (Test-Path -Path $mountDir\sources\install.esd -PathType Leaf)) { + if (-not (Test-Path -Path "$mountDir\sources\install.wim" -PathType Leaf) -and (Test-Path -Path "$mountDir\sources\install.esd" -PathType Leaf)) { Write-Host "Exporting Windows image to a WIM file, keeping the index we want to work on. This can take several minutes, depending on the performance of your computer..." Export-WindowsImage -SourceImagePath $mountDir\sources\install.esd -SourceIndex $index -DestinationImagePath $mountDir\sources\install.wim -CompressionType "Max" if ($?) { - Remove-Item -Path $mountDir\sources\install.esd -Force + Remove-Item -Path "$mountDir\sources\install.esd" -Force # Since we've already exported the image index we wanted, switch to the first one $index = 1 } else { @@ -116,7 +116,7 @@ public class PowerManagement { if (Test-Path "$env:TEMP\DRV_EXPORT") { Remove-Item "$env:TEMP\DRV_EXPORT" -Recurse -Force } - if (($injectDrivers -and (Test-Path $sync.MicrowinDriverLocation.Text))) { + if (($injectDrivers -and (Test-Path "$($sync.MicrowinDriverLocation.Text)"))) { Write-Host "Using specified driver source..." dism /english /online /export-driver /destination="$($sync.MicrowinDriverLocation.Text)" | Out-Host if ($?) { @@ -341,7 +341,7 @@ public class PowerManagement { Write-Host "Cleanup complete." Write-Host "Unmounting image..." - Dismount-WindowsImage -Path $scratchDir -Save + Dismount-WindowsImage -Path "$scratchDir" -Save } try { @@ -403,7 +403,7 @@ public class PowerManagement { reg unload HKLM\zSYSTEM Write-Host "Unmounting image..." - Dismount-WindowsImage -Path $scratchDir -Save + Dismount-WindowsImage -Path "$scratchDir" -Save Write-Host "Creating ISO image" @@ -417,7 +417,7 @@ public class PowerManagement { Write-Host "[INFO] Using oscdimg.exe from: $oscdimgPath" - $oscdimgProc = Start-Process -FilePath "$oscdimgPath" -ArgumentList "-m -o -u2 -udfver102 -bootdata:2#p0,e,b$mountDir\boot\etfsboot.com#pEF,e,b$mountDir\efi\microsoft\boot\efisys.bin `"$mountDir`" `"$($SaveDialog.FileName)`"" -Wait -PassThru -NoNewWindow + $oscdimgProc = Start-Process -FilePath "$oscdimgPath" -ArgumentList "-m -o -u2 -udfver102 -bootdata:2#p0,e,b`"$mountDir\boot\etfsboot.com`"#pEF,e,b`"$mountDir\efi\microsoft\boot\efisys.bin`" `"$mountDir`" `"$($SaveDialog.FileName)`"" -Wait -PassThru -NoNewWindow $LASTEXITCODE = $oscdimgProc.ExitCode