Como posso montar um ISO via PowerShell / programaticamente?

28

Como posso montar e desmontar imagens ISO do PowerShell no Windows 8 sem programas de terceiros?

Esta pergunta original revisão me fez pensar se é possível montar um ISO via PowerShell no Windows 8.

    
por Tanner Faulkner 04.11.2012 / 04:20

2 respostas

46

Monte um ISO a partir do prompt de comando (somente no Windows 8/2012 e acima)

Se você está sentado em um prompt de comando e precisa montar um ISO, execute o seguinte comando:

PowerShell Mount-DiskImage

Isso chamará um cmdlet do PowerShell. Você será solicitado para o caminho dos ISOs que você deseja montar. Quando estiver pronto, deixe o último em branco e pressione Enter .

Tada!Estámontado:

DesmontarumISO

ParadesmontarumISOdoPowerShell,executeDismount-DiskImageesigaoprompt.Sevocêconheceapenasaletradaunidadenotopodasuacabeça,enãoocaminhodaimagem,useestecomando:

Get-Volume[DriveLetter]|Get-DiskImage|Dismount-DiskImage

Estecomandoirápegaraunidadequevocêespecificar,encontraraimagemdodiscoedesmontá-la.

MontandováriosISOseexibindoletrasdeunidade

Vocêtambémpodeusarosinalizador-PassThruparaarmazenardadospassadosparaocomando.VamosmontaralgunsISOs,exibirsuasletrasdeunidade,executarumarquivoemumadasunidadesedepoisdesmontartodasasISOs.

MonteosISOs

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

ExibirinformaçõesdevolumeparacadaISOmontadousandoumforeachloop

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

ListarunidadeJ

lsJ:\

Abraumarquivo

startwubi.exe

ParadesmontarosISOs,useoseguintecomando:

Dismount-DiskImage$MountedISOs.ImagePath

TestandooISO

ParacriarumscriptsimplesqueverifiqueseoISOestáanexadoeédefatoumISO(vs.umVHD),gostodeusar-PassThruparaarmazenartemporariamenteoobjetoeusarocomandoGet-DiskImageparaatualizarostatusdoobjetoDiskImage.IssoatualizaráapropriedadeAttached.ApropriedadeStorageTypediráseoarquivoéumISOouVHDdeacordocomaextensãodoarquivo.

OStorageTypedeumVHDé2,emqueumISOretornará1.Aquiestáasaídade$UbuntuISO:

Esta é a saída de $temp após a montagem de um VHD: ( Mount-DiskImage também pode montar VHDs!)

ObservequeapropriedadeAttachedacimaéFalse,apesardocomandoMount-DiskImagerodarsemproblemas.

Lembre-sedequeavariável$UbuntuISOtambémnãoseráatualizada:

Technet: Mount-DiskImage

Technet: Dismount-DiskImage

    
por 04.11.2012 / 04:20
3

Normalmente, se você quiser fazer isso por meio da linha de comando, você precisa de um método não interativo. Você desejará usar a opção -ImagePath para fazer isso.

Assim, o comando é:

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

Lembre-se de que, se você citar o caminho absoluto (para conter espaços e outros caracteres especiais), será necessário escapar das aspas.

Para desmontar uma imagem iso, lembre-se de citar:

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

Note que não tivemos que citar o comando no primeiro caso, mas fazemos no segundo, porque o | pipe fará com que a linha de comando pense que está no contexto da linha de comando, em vez da adição argumentos para PowerShell (que o PowerShell concatena automaticamente em um único comando).

Certifique-se também de soletrar Dismount-DiskImage corretamente (não k em Desmontar).

    
por 04.11.2012 / 04:40