これらの便利な方法 コマンドプロンプト/バッチファイルでxvhd
またはvhd
ファイルをマウント/アンマウントすることがわかりました。
しかしながら;それでも私には1つの質問があります。直接マウントするファイルを指定していると仮定します。コマンドプロンプトを使用して、割り当てられたドライブ文字を確認するにはどうすればよいですか?
したがって、DiskPart
に移動して、次のコマンドを実行できる場合:
DISKPART> select vdisk FILE="F:\WindowsImageBackup\leeand00-pc\Backup 2017-01-10 031515\924cde0a-0000-0000-0000-50c603000000.vhdx"
DiskPart successfully selected the virtual disk file.
DISKPART> ATTACH VDISK
100 percent completed
DISKPART> LIST VOLUME
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 E DVD-ROM 0 B No Media
Volume 1 H DVD-ROM 0 B No Media
Volume 2 SYSTEM RESE NTFS Partition 100 MB Healthy System
Volume 3 C NTFS Partition 159 GB Healthy Boot
Volume 4 F wbadmin_bac NTFS Partition 57 GB Healthy
Volume 5 PQSERVICE NTFS Partition 15 GB Healthy Hidden
Volume 6 G FreeAgent D NTFS Partition 1397 GB Healthy
Volume 7 D Removable 0 B No Media
Volume 8 NTFS Partition 159 GB Healthy
DISKPART> ASSIGN LETTER=X
There is no volume specified.
Please select a volume and try again.
次に、新しく接続されたボリュームにドライブ文字をすぐに割り当てることはできません...ただし、ボリューム番号で呼び出すことでドライブ文字を選択できます。
DISKPART> SELECT Volume 8
Volume 8 is the selected volume.
DISKPART> ASSIGN LETTER=X
DiskPart successfully assigned the drive letter or mount point.
これをスクリプトとして実行したいので...新しくマウントされたxvhd
を選択して、ドライブ文字を割り当てるにはどうすればよいですか?
人々は、共有のマッピングとマッピング解除、およびサムドライブの挿入/取り外しによって、常にドライブ文字システムをいじくり回しています。
それでは、ドライブマッピングの問題がおそらく一貫していないこと、およびシステム状態のバックアップを作成するときにボリュームにラベルが割り当てられないという事実を考慮して、これを安全に行うにはどうすればよいですか?
P.S.ここでの私の目標は、これを自動化してスクリプトで呼び出すことができるようにし、システム状態のバックアップ(すでに成功しています)を実行してから、ドライブのxvhd
をマウントし、ほとんどのユーザーを削除することです。そこからプロファイルを作成し(別のバックアップで処理)、マウントを解除して別のプログラムでバックアップし、災害が発生した場合にマシンに復元できるようにします。 (また、復元します 別のバックアップからのユーザープロファイル )。
最後にマウントされたxvhd
またはvhd
ファイルのドライブ文字をバッチで検索しますか?コマンドプロンプトを使用して、割り当てられたドライブ文字を確認するにはどうすればよいですか?
Get-DiskImageの出力をGet-VolumeまたはGet-DiskとGet-Partitionにパイプします。
ISOファイルの場合:
GET-DISKIMAGE filename.iso | GET-VOLUME
VHDファイルの場合:
GET-DISKIMAGE filename.vhd | GET-DISK | GET-PARTITION
提供した記事に基づいて、PowerShellロジックを以下のバッチスクリプトに組み込み、VHDまたはISOファイルのマウントに使用するドライブ文字を動的に取得してCDの変数名として使用できるようにしました。ディレクトリに移動してコマンドを暗黙的に実行するか、それ以外の方法で使用して、使用するコマンドなどに必要なドライブ文字を明示的に設定できます。
スクリプト
@ECHO OFF
SETLOCAL
SET DiskPartScript="%TEMP%DiskpartScript.txt"
ECHO SELECT VDISK FILE="%~1" > %DiskPartScript%
ECHO ATTACH VDISK >> %DiskPartScript%
DiskPart /s %DiskPartScript%
SET PowershellScript="%TEMP%\PowerShellScript.ps1"
:: -- Use below for VHD
ECHO GET-DISKIMAGE "%~1" | GET-DISK | GET-PARTITION | Select -ExpandProperty DriveLetter > "%PowershellScript%"
:: -- Use below for ISO
::ECHO GET-DISKIMAGE "%~1" | get-VOLUME | Select -ExpandProperty DriveLetter > "%PowershellScript%"
SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
FOR /F "DELIMS=" %%A IN ('Powershell -ExecutionPolicy Bypass -Command "& '%PowershellScript%'"') DO SET "DriveLetter=%%A"
CD /D "%DriveLetter%:\"
<Commands>
<Commands>
ENDLOCAL