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

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

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

答案1

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

在此处输入图片描述

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

在此处输入图片描述

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

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

答案2

电源外壳, 使用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       :

答案3

我更喜欢对闪存驱动器使用绝对驱动器号。除非您有 20 个或更多闪存驱动器,否则几乎任何人都有足够的分配。

在 Windows 7 中使用 Windows 格式化并分配驱动器标签,或者如果驱动器已经有标签,则使用命令行“标签(驱动器号)”为其提供您选择的标签。

然后转到控制面板、系统和安全、管理工具、计算机管理、磁盘管理,右键单击驱动器,选择您创建的标签的驱动器,选择更改驱动器号和路径,然后将卷分配给特定的驱动器号。如果可用,它将始终安装到该驱动器号。

我标记了包含实时数据的驱动器,标记不会以任何方式影响现有数据。它似乎就像过去在软盘上一样工作

答案4

使用标签

您可以使用 PS 中的标签访问磁盘驱动器,如下所示:

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

它被缩短了,在脚本中使用完整格式以提高可读性 - 见下文

使用 GptType

GPT 确实对特殊分区使用固定 ID。我们可以使用这些 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 放入设备路径的根目录。但可以将其放入其文件夹。

上述语句的解释和完整格式

为了提高可读性,在脚本中始终使用完整格式

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

相关内容