Итак, мне было поручено создать сценарий, позволяющий легко копировать ISO-образ на USB с помощью PowerShell. Я сделал это как можно более надежным. Однако есть одно место, где я нахожусь в тупике, и это связано с Legacy BIOS. Прямо сейчас это отлично работает на UEFI. Тем не менее, у нас есть несколько отделов, которые все еще используют Legacy BIOS. Это не Windows ISO, и я предпочитаю, чтобы никто не загружал дополнительное программное обеспечение или пакеты.
Я уверен, что единственное, что действительно нужно изменить, - это флаги загрузочного сектора. Однако, когда я использовал / nt52 и / mbr, я не могу загрузить носитель.
$ISOPathforDeploy = "\\someshare\custom.iso"
$PartitionType = "FAT32"
####################################
#Please only change variable above.
#Do not edit code below this line.
####################################
$Results = Get-Disk |
Where-Object BusType -eq USB |
Out-GridView -Title 'Select USB Drive to Format' -OutputMode Single |
Clear-Disk -RemoveData -RemoveOEM -Confirm:$false -PassThru |
New-Partition -UseMaximumSize -IsActive -AssignDriveLetter |
Format-Volume -FileSystem $PartitionType
$Volumes = (Get-Volume).Where( { $_.DriveLetter }).DriveLetter
Mount-DiskImage -ImagePath $ISOPathforDeploy
$ISO = (Compare-Object -ReferenceObject $Volumes -DifferenceObject (Get-Volume).Where( { $_.DriveLetter }).DriveLetter).InputObject
Set-Location -Path "$($ISO):\boot"
bootsect.exe /nt60 "$($Results.DriveLetter):"
Copy-Item -Path "$($ISO):\*" -Destination "$($Results.DriveLetter):" -Recurse -Verbose
Dismount-DiskImage -ImagePath $ISOPathforDeploy