PowerShell で ISO またはディスク イメージからファイルをプログラム的に読み取るにはどうすればよいですか?

PowerShell で ISO またはディスク イメージからファイルをプログラム的に読み取るにはどうすればよいですか?

PowerShell スクリプトの一部として ISO ディスク イメージからファイルを読み取りたいです。これは自動化されたプロセスであり、ディスクは一時的にしか開かれないため、可能であればドライブ文字などの不要なリソースの割り当てを避けたいと思います。

答え1

ドライブ文字を割り当てずに ISO から読み取る簡単な方法を次に示します (* 以下を参照)。

$DiskImage = Mount-DiskImage -ImagePath $ISOPath -StorageType ISO -NoDriveLetter -PassThru
New-PSDrive -Name ISOFile -PSProvider FileSystem -Root (Get-Volume -DiskImage $DiskImage).UniqueId
Push-Location ISOFile:
# read files with the usual filesystem commands
Pop-Location
Remove-PSDrive ISOFile
Dismount-DiskImage -DevicePath $DiskImage.DevicePath

* によって作成されたドライブは実際の Windows ドライブではなく、PowerShell の外部、または実行されたNew-PSDrivePowershell 関数の外部では表示されません。 1 つのスコープ内で上記を複数回使用していない場合は、呼び出しが不要な場合もあります。New-PSDriveRemove-PSDrive

関連情報