Private/Set-USBPartiton.ps1
function Set-USBPartiton { [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'Medium')] param ( [Parameter()] [int]$partCount, [Parameter()] [ImageUSBClass]$usbImage, [Parameter()] [int]$diskNum ) try { Stop-Service -Name ShellHWDetection Write-Host "`nClearing Disk: $diskNum" -ForegroundColor Cyan if ((Get-Disk $diskNum).PartitionStyle -eq "RAW") { Get-Disk $diskNum | Initialize-Disk -ErrorAction SilentlyContinue -Confirm:$false } else { Get-Disk $diskNum | Clear-Disk -RemoveData -Confirm:$false Get-Disk $diskNum | Initialize-Disk -ErrorAction SilentlyContinue -Confirm:$false } Start-Sleep -Seconds 3 switch ($partCount) { 1 { Write-Host "Creating New Partions" -ForegroundColor Cyan $usbImage.drive = (New-Partition -DiskNumber $diskNum -UseMaximumSize -MbrType 'FAT32' -AssignDriveLetter | Format-Volume -FileSystem FAT32 -NewFileSystemLabel BOOTME).DriveLetter } 2 { Write-Host "Creating New Partions" -ForegroundColor Cyan $usbImage.drive = (New-Partition -DiskNumber $diskNum -Size 2GB -AssignDriveLetter | Format-Volume -FileSystem FAT32 -NewFileSystemLabel WINPE -Confirm:$false -Force).DriveLetter $usbImage.drive2 = (New-Partition -DiskNumber $diskNum -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -NewFileSystemLabel Images -Confirm:$false -Force).DriveLetter } default { throw "Exiting due to un-recognized partition count received" } } $usbImage } catch { write-warning $_.Exception.Message exit(1) } finally { Start-Service -Name ShellHWDetection } } |