강좌 / 팁

윈 도 우 프로그램 필요없이, 윈도우 설치 USB 만들기

2023.01.18 17:46

zerojiddu 조회:5641 추천:27

많이들 써 보셨을건데,

 

그냥 윈도우에 있는 명령어만으로

파워쉘에서 실행되는 스크립트로 짜봤습니다.

사전에 USB에 드라이브 포맷 준비만 해놓고,

밑의 전체 코드를 파워쉘[관리자]에 치면 됩니다.

 

Function Get-IsoLocation
{
    [CmdletBinding()]
    [OutputType([string])]
    Param
    (
        [Parameter(
            Mandatory = $false,
            Position = 0)]
        [String]$WindowTitle = "Opening For .ISO",

        [Parameter(
            Mandatory = $true,
            ValueFromPipelineByPropertyName = $true,
            HelpMessage = "Initial Directory for browsing",
            Position = 1)]
        [String]$RootDir
    )
    Add-Type -AssemblyName System.Windows.Forms
    $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
    $OpenFileDialog.Title = $WindowTitle
    
    if (-Not [String]::IsNullOrWhiteSpace($RootDir))
    {
        $OpenFileDialog.InitialDirectory = $RootDir
    }
    $OpenFileDialog.ShowHelp = $true
    $OpenFileDialog.ShowDialog() | Out-Null
    return $OpenFileDialog.Filename
}

Write-Host "`n"
Write-Host "  ISO 파일을 찾을, 첫 시작위치를 입력하세요" -ForeGroundColor Red
Write-Host "`n"
Write-Host "  ==> " -noNewline
$InputDir = Read-Host
# $InputDir = (Read-Host -prompt "`n`nISO 파일을 찾을, 첫 시작위치를 입력하세요`n`n")
$IsoPath = Get-IsoLocation -RootDir $InputDir
$Volumes = (Get-Volume).Where({$_.DriveLetter}).DriveLetter
Mount-DiskImage -ImagePath $IsoPath
$ISO = (Compare-Object -ReferenceObject $Volumes -DifferenceObject (Get-Volume).Where({$_.DriveLetter}).DriveLetter).InputObject
Start-Sleep 2

Write-Host "`n"
Write-Host "  .iso내 모든 파일을 임시복사할 폴더를 만듭니다." -ForeGroundColor Red
Write-Host " `n윈도우 설치 USB에 다시 복사한후 임시폴더는 삭제됩니다." -ForeGroundColor Red
Write-Host " `nC드라이브내 원하는 위치를 입력하세요" -ForeGroundColor Red
Write-Host "`n"
Write-Host "  ==> " -noNewline
$InputTempFolder = Read-Host
New-Item $InputTempFolder -type directory -ver
Start-Sleep 2
robocopy "$($ISO):\" $InputTempFolder /e /copyall
Set-Location -Path "$($ISO):\boot"
Write-Host "`n"
Write-Host "  모든 설치파일이 복사되고,부팅 가능하게 만들`n" -ForeGroundColor Red
Write-Host "  사전의 포맷 준비된 USB드라이브 문자를 입력하세요`n" -ForeGroundColor Red
Write-Host "  예>  J "
Write-Host "  문자만 쓰면 됩니다." -ForeGroundColor Red
Write-Host "`n"
Write-Host "  ==> " -noNewline
$USBLetter = Read-Host

bootsect.exe /nt60 "$($USBLetter):"
Dism /Split-Image /ImageFile:"$InputTempFolder\sources\install.wim" /SWMFile:"$InputTempFolder\sources\install.swm" /FileSize:3500
gci -path "$InputTempFolder\sources\install.wim" | set-itemproperty -name IsReadOnly -value $false
Remove-Item $InputTempFolder\sources\install.wim -ver
Start-Sleep 2
robocopy $InputTempFolder "$($USBLetter):\" /e /copyall
Start-Sleep 2
Dismount-Diskimage -imagepath $IsoPath
Set-Location $env:UserProfile
Remove-Item $InputTempFolder -r -force -ver

 

 

전 사전의 포맷을 해놨고, 포맷은 스크립트에 넣지 않았습니다.

Screenshot 2023-01-18 165555.png

 

++스크립트 진행과정 스샷++

 

I.SO 파일위치를 좀더 편하게  GUI 화면으로 찾아 입력하게 명령어를 넣었습니다.

Screenshot 2023-01-18 170022.png

 

설치를 원하는 윈도우 .ISO 파일을 열면 자동으로 가상 DVD로 마운트됩니다.

그리고 또 한번 임시 복사할 원하시는 폴더를 지정해주면,

 

Screenshot 2023-01-18 170219.png

 

robocopy 명령어로 마운트된 .ISO내 모든 파일을 임시폴도에 복사합니다.

그리고 포맷 준비된 USB 드라이브 문자를 적어주면,

Screenshot 2023-01-18 170320.png

 

그 USB 드라이브를 부팅가능하게 만들고,

Dism 명령어로 파일크기가 큰 install.wim을

부팅 USB에 넣을 크기로 쪼갠뒤(install.swm, install2.swm)

기존 install.wim은 삭제한뒤,

쪼갠 .swm을 포함한 모든 .ISO내 파일들을  USB로 복사합니다.

Screenshot 2023-01-18 170643.png

robocopy로 USB로 복사중 과정인데,

젤 밑의 쪼갠 install.swm, install2.swm 보이시죠?

install.wim을 삭제해도 저것만 있으면 됩니다.

Screenshot 2023-01-18 170545.png

이렇게 복사가 끝나면,부팅가능한 윈도우 설치 USB가 만들어집니다.

나머지 노란색 메세지들은

임시로 만들었던 폴더를 싹 삭제하는 과정입니다.

작업 찌꺼기를 없애는 거죠.

 

Screenshot 2023-01-18 170731.png

 

확인해보면 저렇게 잘 복사됐있고,

이제 부팅때 필요하면 윈도우 설치에 쓰면 됩니다.

Screenshot 2023-01-18 170913.png

 

 

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
4469 소프트웨어| pureBasic 외부 함수 호출 [1] 입니다 225 8 03-25
4468 소프트웨어| pureBasic 포인트 기본 이해 [3] 입니다 232 10 03-25
4467 소프트웨어| SDK(Software development kit) 에 대한 이해 [5] 입니다 247 7 03-27
4466 소프트웨어| purebasic 함수 인수 기본 값 설정으로 생략하기 [2] 입니다 259 8 03-24
4465 소프트웨어| pureBasic 자동완성을 위한 프로젝트 만들기 [3] 입니다 277 7 03-28
4464 소프트웨어| purebasic Macro 기본 [3] 입니다 278 9 03-25
4463 소프트웨어| purebasic 기본적인 변수, 함수 선언 [5] 입니다 317 11 03-24
4462 소프트웨어| pureBasic 구조체, Union 구조체 [4] 입니다 395 9 03-25
4461 모 바 일| #Kinemaster강좌, Clip&Audio 자르기 이동 늘리기, Un... 무림거사 398 1 08-02
4460 모 바 일| Kinemaster 강좌 -Clip을 "즐겨찾기"에 등록 &am... 무림거사 416 1 08-11
4459 윈 도 우| [실사] 윈도우8.1 프로 VHD 설치 방법 [5] 무월 416 6 05-08
4458 소프트웨어| Bcd부팅항목 메뉴 숨기기 [3] 카멜 434 9 03-04
4457 모 바 일| Kinemaster강좌 #글자 입력방법, #링 속도 줄이는 방법 무림거사 456 1 08-03
4456 모 바 일| Kinemaster 화살표 Arrow 표시하는 2가지 방법 무림거사 468 1 08-08
4455 소프트웨어| purebasic 폼 만들기 기본 [3] 입니다 473 13 03-24
4454 모 바 일| #Kinemaster 강좌, 기기성능 에 따른 출력해상도, 출력화질... [1] 무림거사 487 1 08-13
4453 소프트웨어| WimLib Api 백업.복원 미완성. 샘플 7가지. [8] 입니다 493 9 03-27
4452 모 바 일| Mobile PowerDirector강좌 #크로마키 무대 제작방법 특강 [1] 무림거사 519 2 06-24
4451 소프트웨어| 부팅항목숨기기,보이기-VHDman Lite0.0.8 [3] 카멜 528 10 03-06
4450 소프트웨어| dup2patcher.dll 디컴파일링-2 [3] sunshine 538 5 07-21
XE1.11.6 Layout1.4.8