11function 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 / 1 GB , 1 )
4153
0 commit comments