명령 프롬프트에서 ISO 마운트(Windows 8/2012 이상에만 해당)

명령 프롬프트에서 ISO 마운트(Windows 8/2012 이상에만 해당)

타사 프로그램 없이 Windows 8의 PowerShell에서 ISO 이미지를 어떻게 탑재하고 분리할 수 있나요?

이것질문원래의개정Windows 8에서 PowerShell을 통해 ISO를 탑재할 수 있는지 궁금합니다.

답변1

명령 프롬프트에서 ISO 마운트(Windows 8/2012 이상에만 해당)

명령 프롬프트에 앉아 ISO를 탑재해야 하는 경우 다음 명령을 실행하세요.

PowerShell Mount-DiskImage

그러면 PowerShell cmdlet이 호출됩니다. 마운트하려는 ISO의 경로를 묻는 메시지가 표시됩니다. 완료되면 마지막 항목을 비워두고 를 누릅니다 Enter.

Mount-DiskImage cmdlet 실행

짜잔! 마운트되었습니다 :

짜잔! 마운트됨 — "이동식 저장소가 있는 장치"

ISO 마운트 해제

PowerShell에서 ISO를 분리하려면 실행 Dismount-DiskImage하고 프롬프트를 따르십시오. 머리 위쪽의 드라이브 문자만 알고 이미지 경로는 모르는 경우 다음 명령을 사용하세요.

Get-Volume [Drive Letter] | Get-DiskImage | Dismount-DiskImage

이 명령은 지정한 드라이브를 잡고 디스크 이미지를 찾아 마운트 해제합니다.

ISO 분리 후 "이동식 저장소가 있는 장치"

여러 ISO 마운트 및 드라이브 문자 표시

-PassThru플래그를 사용하여 명령에 전달된 데이터를 저장할 수도 있습니다 . 몇 개의 ISO를 마운트하고, 해당 드라이브 문자를 표시하고, 드라이브 중 하나에서 파일을 실행한 다음, 모든 ISO를 마운트 해제해 보겠습니다.

ISO 마운트

 $MountedISOs=Mount-DiskImage -PassThru D:\Downloads\Ubuntu.iso,D:\Downloads\Windows8.iso,D:\Downloads\Server2012.iso

foreach루프 를 사용하여 마운트된 각 ISO에 대한 볼륨 정보 표시

 foreach($iso in $MountedISOs){Get-Volume -DiskImage $iso}     

J 드라이브 나열

 ls J:\

파일 열기

 start wubi.exe

foreach/Get-Volume 및 ls의 출력

ISO를 마운트 해제하려면 다음 명령을 사용하십시오.

 Dismount-DiskImage $MountedISOs.ImagePath

ISO 테스트

ISO가 연결되어 있고 실제로 ISO(VHD 대비)인지 확인하는 간단한 스크립트를 작성하려면 -PassThru개체를 임시로 저장하고 Get-DiskImage명령을 사용하여 DiskImage 개체의 상태를 업데이트하는 데 사용하고 싶습니다. 그러면 Attached속성이 업데이트됩니다. 속성 StorageType은 파일 확장자에 따라 파일이 ISO인지 VHD인지 알려줍니다.

<code>-PassThru</code> 및 <code>Get-DiskImage</code> 사용

VHD의 는 StorageType2이고 ISO는 1을 반환합니다. 출력은 다음과 같습니다 $UbuntuISO.
<code>$UbuntuISO</code>의 출력은 다음과 같습니다.

$tempVHD를 탑재한 후의 출력은 다음과 같습니다 . ( Mount-DiskImageVHD도 탑재할 수 있습니다!)
VHD 마운트 후 <code>$temp</code> 출력

명령이 문제 없이 실행됨에도 불구하고 위의 속성 은 Attached입니다 .FalseMount-DiskImage

변수는 업데이트된 상태 로 $UbuntuISO유지되지 않습니다.
<code>$UbuntuISO</code> 변수가 업데이트된 상태로 유지되지 않습니다.


Technet: Mount-DiskImage

Technet: Dismount-Dismount-DiskImage

답변2

일반적으로 명령줄을 통해 이 작업을 수행하려면 비대화형 방법이 필요합니다. 이 작업을 수행하려면 스위치를 사용하는 것이 좋습니다 -ImagePath.

따라서 올바른 명령은 다음과 같습니다.

PowerShell Mount-DiskImage -ImagePath "C:\AbsolutePathTo\Image.iso"

절대 경로(공백 및 기타 특수 문자 포함)를 인용하는 경우 인용을 이스케이프해야 한다는 점을 기억하십시오.

ISO 이미지를 마운트 해제하려면 이를 인용해야 합니다.

PowerShell "Get-Volume G | Get-DiskImage | Dismount-DiskImage"

첫 번째 경우에는 명령을 인용할 필요가 없었지만 두 번째 경우에는 그렇게 합니다. 왜냐하면 파이프로 인해 명령줄이 인수를 추가하는 대신 (PowerShell이 ​​자동으로 |명령줄 컨텍스트에 있다고 생각하게 하기 때문입니다 ) PowerShell단일 명령으로 연결됩니다).

또한 철자가 올바른지 확인하십시오 ( Dismount에서는 Dismount-DiskImage아니요 ).k

관련 정보