在 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