在Windows中使用卷ID而不是驱动器号访问磁盘驱动器


31

我可以在Windows中使用卷ID而不是驱动器号来访问磁盘驱动器吗?这对于外部驱动器可能非常有用。


对于未分配任何驱动器号的分区,卷ID是访问它们的唯一方法。如果您已经通过现有分区使用了26个英文字母,则不能将驱动器号分配给新分区。因此,在这种情况下,它们将不仅有用,而且将是访问它们的唯一方法。
RBT

Answers:


42

您可以mountvol在命令提示符下使用以获取要访问的卷的ID。

在此处输入图片说明

此ID可以用于打开资源管理器窗口,而与驱动器号无关

在此处输入图片说明

要创建驱动器的快捷方式,请创建一个包含以下内容的新批处理文件:

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

是的,这是我长期搜寻的内容!现在,我只需要调用mountvol命令来获取所有卷ID。然后使用“ \\?\ Volume {}”之类的路径访问具有所需ID(如果显示)的驱动器。谢谢!
奥尔文,2012年

1
是的,此方法适用于资源管理器以及使用命令行复制文件时。但是不幸的是,TrueCrypt不接受这样的密钥文件路径=(
olvin 2012年

不幸的是,仅当您运行NetBIOS和RPC Locator时,它才起作用,因此,如果您加固了Windows,这将不起作用。此外,您可能需要保持几个与网络相关的服务和驱动程序运行才能使用它(工作站,计算机浏览器,服务器,TCP / IP NetBIOS帮助程序,NetBT,DHCP,DNS等)。本地卷。:-|
Synetech

1
恩。TrueCrypt确实支持可靠地安装正确的驱动器:@"%ProgramFiles%\TrueCrypt\TrueCrypt.exe" /v \\?\Volume{4033aabd-1234-5678-a1234567890}\ /lr /c n /q
Frank Nocke 2015年

@Synetech:我无法复制;即使使用NetBIOS和RPC Locator,发布的答案对我也很好,并且我可以找到的与网络相关的所有其他功能都已禁用。(也许您将内核路径误认为是UNC路径?还是仅在Windows的早期版本中存在问题?)
哈里·约翰斯顿

9

PowerShell中,使用如下方式进行Get-Volume管道传输Format-List

get-volume | fl 

将为您提供所需的一切,例如SYSTEM RESERVED,在我的一台机器上的该卷:

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用于特殊分区。我们可以使用它们来编写可移植脚本,在不给其分配字母的情况下访问任何计算机上的恢复或系统卷:

系统体积:
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



三个警告:

除非正在运行提升卷,否则Get-Volume不会列出隐藏的卷,Get-Partition将列出未提升的卷,但是无论如何您都无法访问未提升的卷。

对于Get-ChildItem(ls),必须使用-LiteralPath参数(-l)传递设备路径。这不是因为“?” 特殊字符。-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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.