我有一些脚本需要为硬盘指定特定的驱动器号。Windows 有时会分配不同的驱动器号(例如,我预期我的 Maxtor 驱动器是 E:,但现在是 F:,因此我的脚本会失败),具体取决于驱动器插入笔记本电脑的顺序。
在 Windows 7 中,如何为驱动器分配永久驱动器号?
答案1
您可以在“计算机管理”中执行此操作,无需外部工具。Windows 7 中的界面略有不同,但位置相同。
开始 -> 输入compmgmt.msc
并按Enter-> 存储 -> 磁盘管理
或者
按Win+ x,然后k按选择磁盘管理。
答案2
这Windows 版 USB 驱动器号管理器是你的朋友。
USBDLM 是一项 Windows 服务,可控制 Windows 对 USB 驱动器的驱动器号分配。作为服务运行使其独立于登录用户的权限,因此无需授予用户更改驱动器号的权限。它会自动解决 USB 驱动器与当前登录用户的网络或替代驱动器之间的冲突。此外,您还可以为 USB 驱动器定义新的默认字母等等。
一些主要特点:
- 检查该字母是否被当前登录用户的网络共享使用,并分配下一个真正可用的字母。
- 保留字母,以便它们不用于本地驱动器。
- 从新的默认字母列表中分配一个字母,也取决于许多不同的标准,如活动用户、驱动器类型、连接(USB、FireWire)、USB 端口、卷标、大小等。
- 通过将 INI 文件放在驱动器上来为特定的 USB 驱动器分配字母。
- 删除读卡器的驱动器号,直到插入卡为止。
- 显示带有指定驱动器号的气球提示。
- 根据许多不同的标准定义自动运行事件。
答案3
当您将驱动器号分配给新驱动器时,驱动器号会被“遗忘”。如果您希望多个驱动器(例如,备份驱动器)具有相同的记住号,这很麻烦,但有一种非随机软件的方法。
在搜索了互联网并试图找到一个解决方案来处理我想要轮换的多个驱动器后,我觉得有必要发布这篇文章,这些驱动器都保留相同的驱动器号,以供我编写脚本。有时,whateverware(USBDLM)对于您的域控制器、敏感信息亭等来说并不是一个足够好的解决方案,所以我们将采用困难的方式来做到这一点。
如果你没有很多数据或从头开始,最简单的方法是使用以下方法将具有指定字母的设备克隆到其他设备:克隆兹拉。但是,如果您的驱动器上已经有数据,并且无法备份/恢复该数据,或者不想这样做,或者只是喜欢困难的方式,它似乎与卷 GUID 相关联,因此您需要找到一种方法来修改现有卷上的 GUID,以便它们全部匹配,然后进行一些测试。我按照 Clonezilla 的方式做到了。我还没有尝试过,但想象分区克隆也会起作用。
我可以为您验证的是,它不是来自磁盘 ID,因此通过 diskpart 修改它没有帮助,并且您可以使用 PowerShell 获取卷 GUID:
GWMI -namespace root\cimv2 -class win32_volume
希望有人比我更聪明,可以弄清楚如何更改或指定卷 GUID 并进行测试,或者至少确定这是否确实是 reg 值的来源,以便我们可以动态地执行此操作而无需克隆整个驱动器。
怎么运行的:
当您为驱动器分配驱动器号时,Windows 会将其存储在注册表中的 hklm\system\mounteddevices 项下。您可以观察到,当您为新驱动器分配 X 字母时(例如),reg_binary 的数据部分(在本例中为 \dosdevices\x:)将被新驱动器覆盖,并且您不能拥有具有不同值的多个条目,因此下次插入旧驱动器时,它将不再是 X。
如果您查看 reg_binary 值本身,它以 dmio id 开头,后跟 GUID - 实际上源自磁盘唯一 ID。我实际上不理解与二进制 reg 值的关系/转换,只能说它来自磁盘的唯一 ID。我这样说只是为了说明我们不需要担心这里的卷 GUID,因为字母全部源自驱动器的唯一 ID。在我只使用的 MBR/Basic 磁盘上可能并非如此谷氨酰胺磷酸酶动态磁盘在这里(您可能也在这里)。
我发现的更多阅读材料/内容:
卷 GUID 和已安装设备中的其他信息 https://morgansimonsen.com/2009/01/26/displaying-the-volume-guid-of-a-volume-2/