Skip to content

Commit 197395f

Browse files
fix single usb drive error
1 parent a4baea4 commit 197395f

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

functions/private/Invoke-WinUtilISOUSB.ps1

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
function Invoke-WinUtilISORefreshUSBDrives {
22
$combo = $sync["WPFWin11ISOUSBDriveComboBox"]
3-
$removable = Get-Disk | Where-Object { $_.BusType -eq "USB" } | Sort-Object Number
3+
$removable = @(Get-Disk | Where-Object { $_.BusType -eq "USB" } | Sort-Object Number)
44

55
$combo.Items.Clear()
66

77
if ($removable.Count -eq 0) {
88
$combo.Items.Add("No USB drives detected")
99
$combo.SelectedIndex = 0
10+
$sync["Win11ISOUSBDisks"] = @()
1011
Write-Win11ISOLog "No USB drives detected."
1112
return
1213
}
@@ -29,13 +30,24 @@ function Invoke-WinUtilISOWriteUSB {
2930
return
3031
}
3132

32-
$selectedIndex = $sync["WPFWin11ISOUSBDriveComboBox"].SelectedIndex
33-
if ($selectedIndex -lt 0 -or -not $usbDisks -or $selectedIndex -ge $usbDisks.Count) {
33+
$combo = $sync["WPFWin11ISOUSBDriveComboBox"]
34+
$selectedIndex = $combo.SelectedIndex
35+
$selectedItemText = [string]$combo.SelectedItem
36+
$usbDisks = @($usbDisks)
37+
38+
$targetDisk = $null
39+
if ($selectedIndex -ge 0 -and $selectedIndex -lt $usbDisks.Count) {
40+
$targetDisk = $usbDisks[$selectedIndex]
41+
} elseif ($selectedItemText -match 'Disk\s+(\d+):') {
42+
$selectedDiskNum = [int]$matches[1]
43+
$targetDisk = $usbDisks | Where-Object { $_.Number -eq $selectedDiskNum } | Select-Object -First 1
44+
}
45+
46+
if (-not $targetDisk) {
3447
[System.Windows.MessageBox]::Show("Please select a USB drive from the dropdown.", "No Drive Selected", "OK", "Warning")
3548
return
3649
}
3750

38-
$targetDisk = $usbDisks[$selectedIndex]
3951
$diskNum = $targetDisk.Number
4052
$sizeGB = [math]::Round($targetDisk.Size / 1GB, 1)
4153

0 commit comments

Comments
 (0)