• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Bootable Windows USB Stick with UEFI support

Введение
Приветствую всех на форуме
Сегодня мне потребовалось записать Windows 10 на флешку. Так как я не особо люблю пользоваться сторонним софтом, все что можно сделать подручными средствами я пытаюсь сделать сам. Обычно я готовил USB Stick с помощью diskpart и robocopy, но тут я подумал а почему бы не автоматизировать это в виде скрипта. И сразу же я понял что diskpart мне не подходит :).

Bootable Windows USB Stick или PowerShell вместо DiskPart
Вот что из этого получилось. PowerShell Script - готовит флешку и пишет на него Windows, с полноценной поддержкой UEFI.

gushmazuko/WinToUsb

Python:
<#
.SYNOPSIS
    This script create a Bootable Windows USB Stick with UEFI support
 
.NOTES
    Function   : WinToUsb
    File Name  : WinToUsb.ps1
    Author     : Gushmazuko

.LINK
    https://github.com/gushmazuko/WinToUsb

.EXAMPLE
    #Run PowerShell as Admin
    powershell -exec bypass
    Import-Module WinToUsb.ps1
    WinToUsb
 
    #OR
    #Run PowerShell as Admin
    powershell -exec bypass "iwr -useb 'https://raw.githubusercontent.com/gushmazuko/WinToUsb/master/WinToUsb.ps1'|iex"
#>

function WinToUSB(){
    clear

    #Show mounted disks
    Get-Disk
    #Select Disk
    Write-Host "`nWARNING! BE VERY CAREFUL WHEN SELECTING A DISK" -ForegroundColor Red
    Do {Write-Host " - [Select Usb Flash to erase] : " -ForegroundColor Green -NoNewline
        $DiskNumber = Read-Host}
        While ($DiskNumber -eq "")
 
    #Erase all data on the flash drive
    Get-Disk $DiskNumber | Clear-Disk -RemoveData

    #Create new partition, assign a letter & format it to FAT32
    New-Partition -DiskNumber $DiskNumber -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem FAT32
 
    #Set a partition active so the BIOS/UEFI can boot to it
    Set-Partition -DiskNumber $DiskNumber -PartitionNumber 1 -IsActive $true
 
    #Copying Windows files to USB drive
     
        #Getting USB Drive Path
        $UsbLetter = Get-Partition -DiskNumber $DiskNumber | select -ExpandProperty DriveLetter
        $UsbPath = "$($UsbLetter):\"
     
        #Getting Windows Files Path
        Do {Write-Host " - [Write path where Windows Image is mounted] : " -ForegroundColor Green -NoNewline
            $WinPath = Read-Host}
            While ($WinPath -eq "")
 
    robocopy $WinPath $UsbPath /mir
 
    cd $WinPath\boot
    .\bootsect.exe /nt60 "$($UsbLetter):"
}


Я специально не реализовал монтирование ISO образа внутри скрипта, чтобы сохранить универсальность и сделать возможным его использование в Windows 7.

На этом все, спасибо за внимание!
 
Последнее редактирование:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab