Windowsでドライブ文字の代わりにボリュームIDを使用してディスクドライブにアクセスする


31

Windowsのドライブ文字の代わりにボリュームIDを使用してディスクドライブにアクセスできますか?外付けドライブに非常に便利です。


ドライブ文字が割り当てられていないパーティションでは、ボリュームIDがそれらにアクセスする唯一の方法です。既存のパーティションで既に26文字の英字アルファベットを使用している場合、ドライブ文字を新しいパーティションに割り当てることはできません。したがって、そのような場合、それらは単に有用ではありませんが、それらにアクセスする唯一の方法になります。
RBT

回答:


42

mountvolコマンドプロンプトで使用して、アクセスするボリュームのIDを取得できます。

ここに画像の説明を入力してください

このIDは、ドライブ文字に関係なく、エクスプローラーウィンドウを開くために使用できます。

ここに画像の説明を入力してください

ドライブへのショートカットを作成するには、次の内容で新しいバッチファイルを作成します。

start \\?\Volume{1b3b1146-4076-11e1-84aa-806e6f6e6963}\

はい、それは私が長い間検索したものです!ここで、mountvolコマンドを呼び出して、すべてのボリュームIDを取得する必要があります。次に、「\\?\ Volume {}」のようなパスを使用して、必要なID(存在する場合)でドライブにアクセスできます。ありがとうございました!
オルビン

1
はい、この方法はエクスプローラーで機能し、コマンドラインでファイルをコピーします。しかし、残念ながらTrueCryptはそのようなキー
ファイル

残念ながら、NetBIOSとRPC Locatorを実行している場合にのみ機能するため、Windowsを強化している場合は機能しません。さらに、おそらくそれを使用するためにいくつかのネットワーク関連のサービスとドライバーを実行し続ける必要があります(ワークステーション、コンピューターブラウザー、サーバー、TCP / IP NetBIOSヘルパー、NetBT、DHCP、DNSなど)。ローカルボリューム。:-|
Synetech 14

1
まあ.. TrueCryptのは確実に右のドライブを搭載するため、これをサポートしています:@"%ProgramFiles%\TrueCrypt\TrueCrypt.exe" /v \\?\Volume{4033aabd-1234-5678-a1234567890}\ /lr /c n /q
フランクNocke

@Synetech:それを複製することはできません。NetBIOSやRPC Locator、その他のネットワーク関連のすべての機能が無効になっている場合でも、投稿された答えはうまくいきます。(おそらく、カーネルパスをUNCパスと間違えていたのでしょうか?それとも以前のバージョンのWindowsでのみ問題だったのですか?)
ハリージョンストン

9

ではPowerShellの使用はGet-VolumeにパイプFormat-Listのように:

get-volume | fl 

SYSTEM RESERVED私のマシンの1つにあるこのボリュームなど、必要なものはすべて提供されます。

ObjectId             : {1}\\ACER-M3900\root/Microsoft/Windows/Storage/Providers_v2\WSP_Volume.ObjectId="{5b16a307-de54-11e7-8aeb-806e6f6e6963}:VO:\\?\Volume{b41b0670-0000-0000-00e8-0e8004000000}\"
PassThroughClass     :
PassThroughIds       :
PassThroughNamespace :
PassThroughServer    :
UniqueId             : \\?\Volume{b41b0670-0000-0000-00e8-0e8004000000}\
AllocationUnitSize   : 4096
DedupMode            : NotAvailable
DriveLetter          :
DriveType            : Fixed
FileSystem           : NTFS
FileSystemLabel      : SYSTEM RESERVED
FileSystemType       : NTFS
HealthStatus         : Healthy
OperationalStatus    : OK
Path                 : \\?\Volume{b41b0670-0000-0000-00e8-0e8004000000}\
Size                 : 105058304
SizeRemaining        : 33992704
PSComputerName       :

非表示/システムボリュームを表示するには、昇格する必要があります。私の回答の警告を参照してください
papo

4

フラッシュドライブには絶対ドライブ文字を使用することを好みます。20台以上のフラッシュドライブがない限り、ほぼすべてのユーザーに適切な割り当てがあります。

Windows 7では、Windowsを使用してドライブラベルをフォーマットして割り当てるか、ドライブに既にラベルがある場合は、コマンドライン「ラベル(ドライブ文字)を使用して、選択したラベルを付けます。

次に、コントロールパネル、システムとセキュリティ、管理ツール、コンピューター管理、ディスク管理に移動して、ドライブを右クリックして作成したラベルが付いたドライブを選択し、ドライブ文字とパスの変更を選択して、特定のドライブ文字にボリュームを割り当てます。使用可能な場合は、常にそのドライブ文字にマウントされます。

ライブデータを含むドライブにラベルを付けましたが、ラベル付けは既存のデータには一切影響しませんでした。古き良き時代のフロッピーのように機能するようです


0

ラベルを使用する

次のようにPSのラベルを使用してディスクドライブにアクセスできます。

ls -l (Get-Volume | ? FileSystemLabel -eq "Barry Allen drive").Path

短縮されています。読みやすくするためにスクリプトで完全な形式を使用してください-以下を参照してください

GptTypeを使用する

GPTは特別なパーティションに固定IDを使用します。ポータブルスクリプトを作成するためにこれらを使用して、文字を割り当てずに任意のコンピューターのRecoveryボリュームまたはSystemボリュームにアクセスできます。

システムボリューム:
ls -l (Get-Partition | ? GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}").AccessPaths[0]

回復ボリューム:
ls -l (Get-Partition | ? GptType -eq "{de94bba4-06d1-4d40-a16a-bfd50179d6ac}").AccessPaths[0] -Force
cd "$((Get-Partition | ? GptType -eq "{de94bba4-06d1-4d40-a16a-bfd50179d6ac}").AccessPaths[0])Recovery"

MSR:UEFIには、MSRパーティションもあります(存在するはずです)が、ボリュームもファイルシステムもないため、アクセスできません:
エラー:ls -l ((Get-Partition | ? GptType -eq "{e3c9e316-0b5c-4db8-817d-f92df00215ae}").AccessPaths[0]) -Force



3つの注意事項:

Get-Volumeは、昇格されて実行されていない限り、非表示のボリュームをリストしません。Get-Partitionは、非昇格をリストしますが、それ以上昇格されていないボリュームにはアクセスできません。

Get-ChildItem(ls)では、-LiteralPath引数(-l)を使用してデバイスパスを渡す必要があります。これは「?」が原因ではありません。特殊文字。-Pathは、「?」であってもDevice Pathで機能しません。エスケープされます。

デバイスパスのルートにCDを作成することはできません。ただし、そのフォルダにCDを作成することは可能です。



上記の説明の説明と完全な形式

読みやすくするために、スクリプトでは常に完全な形式を使用します

ls -l ((Get-Partition | ? GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}").AccessPaths[0])

の略です:

Get-ChildItem -LiteralPath ((Get-Partition | Where-Object { $_.GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}" }).AccessPaths[0])

lsのエイリアスGet-ChildItem
-lは短縮され-LiteralPath
? *attribute* -eq "*value*"ますの短縮コンストラクト? { $_.*attribute* -eq "*value*" }
?はのエイリアスでWhere-Object
-Forceあり、リカバリボリューム上の隠しファイルを見るために使用されます

Get-PartitionとGet-Volumeの使用:
Get-PartitionはGptTypeパラメーターを提供しますが、Labelは提供しません。Get-VolumeはLabelを提供しますが、GptTypeは提供しません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.