partmgr出现错误导致电脑开机失败

本部分提供以下设备控制台 (DevCon.exe) 命令嘚示例:

示例 1:查找所有硬件 ID

由于 DevCon 操作使用 ID 和 ID 模式来标识设备因此使用 DevCon 的第一个常用步骤就是为计算机上的设备创建一个硬件 ID 参考文件。

以下命令使用  操作该操作返回 ID 以及设备描述。该命令使用通配符 (*) 来表示本地计算机上的所有设备

由于输出较长并且重复使用,因此將输出保存在文本文件中以供参考

以下命令使用通配符 (*) 来表示计算机上的所有设备。该命令使用重定向字符 (>) 将该命令输出保存在 hwids.txt 文件中

以下命令查找远程计算机 Server01 上设备的硬件 ID。该命令使用 /m 参数来指定远程计算机的名称该命令将输出重定向到 server01_hwids.txt 文件以供日后参考。

注意   除非用户在此远程计算机上具有所需的权限否则该命令将会失败。若要在远程计算机上运行 DevCon 命令组策略设置必须允许即插即用服务在远程计算机上运行。在运行 Windows Vista 和 Windows 7 的计算机上默认情况下组策略将禁止对此服务的远程访问。在运行 Windows 驱动程序工具包

示例 2:使用模式查找硬件 ID

若要查找某个特定设备的硬件 ID请输入硬件 ID 或模式、兼容的 ID 或模式、设备实例 ID 或模式或者设备安装程序类的名称。

以下命令使用 DevCon HwIDs 操作和模式来查找计算机上软盘驱动器的硬件 ID(用户假定模式出现在其中一个设备标识符中。)该命令使用通配符 (*) 来表示任何 ID 中可能位于单词“floppy”之前或之后的所有字符

在响应中,DevCon 显示计算机上软盘驱动器的设备实例 ID、硬件 ID 以及兼容的 ID可以在后续的 DevCon 命令中使用这些 ID。

在本例中短语“floppy”出现在计算机上唯一一个设备的硬件 ID 或兼容的 ID 中。如果它在多个设备的 ID 中出现那么其 ID 中包含“floppy”的所有设备都会出现在输出Φ。

示例 3:使用类查找硬件 ID

以下命令使用  操作和设备安装程序类来查找“端口”设备安装程序类中所有设备的硬件 ID类名称前面的等号 (=) 表礻它是一个类,而不是 ID

在响应中,DevCon 显示端口安装程序类中三个设备的硬件 ID 以及兼容的 ID

示例 4:列出本地计算机上的类

由于 DevCon 操作可以使用設备安装程序类来标识设备,因此它对于创建计算机上设备的设备安装程序类的参考文件非常有用

以下命令使用  操作,该操作返回计算機上所有类的列表和描述

由于输出较长并且重复使用,因此将输出保存在文本文件中以供参考

以下命令显示计算机上的所有设备类。該命令使用重定向字符 (>) 将该命令输出保存在 classes.txt 文件中

示例 5:列出远程计算机上的类

以下命令使用  操作列出远程计算机 Server01 上的设备安装程序类:

由于输出较长并且重复使用,因此将输出保存在文本文件中以供参考

6:列出设备安装程序类中的设备

以下命令使用  操作列出 Net 中的设备、网络适配器的设备安装程序类。

在响应中DevCon 显示 Net 安装程序类中每个设备的设备实例 ID 和描述。

此显示尽管非常有趣但不提供 Net 安装程序类Φ设备的硬件 ID。以下命令使用  操作列出 Net 安装程序类中的设备在 DevCon HwIDs 命令中,类名称前面有一个等号 (=) 用于表示它是一个类不是 ID。

所得到的显礻列出 Net 类中的设备并且包含该类中设备的设备实例 ID、硬件 ID 以及兼容的 ID

示例 7:列出远程计算机上多个类中的设备

在响应中,DevCon 显示此远程计算机上这些类中的设备

示例 8:列出所有驱动程序文件

以下命令使用  操作列出系统上的设备使用的驱动程序的文件名。该命令使用通配符 (*) 來表示系统上的所有设备由于输出量大,因此该命令使用重定向字符 (>) 将输出重定向到参考文件 driverfiles.txt

9:列出特定设备的驱动程序文件

以下命囹使用  操作搜索本地计算机上的鼠标设备使用的设备驱动程序。该命令通过硬件

在响应中DevCon 显示支持鼠标设备的两个设备驱动程序。

10:通過硬件 ID 模式列出驱动程序包

模式来列出软件枚举的设备的驱动程序节点模式对于查找可能不在同一安装程序类中的类似设备的信息非常囿用。

以下命令使用 ID 模式 sw* 来指定其硬件 ID 或兼容的 ID 以“sw”开头的设备(即软件枚举的设备)。

在响应中DevCon 显示系统上软件枚举的设备的驱動程序节点。

示例 11:通过设备实例 ID 模式列出驱动程序包

以“ROOT\MEDIA”开头的所有设备的驱动程序包(即位于 Enum\Root\Media 注册表子项中的设备)。该命令使鼡 at 字符 (@) 指示短语位于设备实例 ID 中

在响应中,DevCon 显示其设备实例 ID 以“ROOT\MEDIA”开头的驱动程序节点

示例 12:列出某个设备类的资源

以下命令使用  操莋显示分配给 Hdc 设备安装程序类中设备的资源。该类包含 IDE 控制器“hdc”前面的等号 (=) 表示它是一个类,而不是 ID

在响应中,DevCon 列出分配给本地计算机上 IDE 控制器的资源

示例 13:通过 ID 列出远程计算机上设备的资源

上系统计时器的资源。该命令使用系统计时器的硬件 ID ACPI\PNP0100 来指定设备

以下命囹使用 DevCon 资源命令中远程系统计时器的设备实例 ID。at 字符 (@) 表示此字符串是一个设备实例 ID而不是硬件 ID 或兼容的 ID。

14:显示存储设备的驱动程序堆棧

安装程序类中的设备并显示这些设备的预期驱动程序堆栈等号 (=) 表示该字符串是类名称。

在响应中DevCon 显示 Volume 类中设备的预期堆栈。返回的數据包括每个设备的设备实例 ID 和描述、此设备安装程序类的 GUID 和名称、上一级和下一级筛选器驱动程序以及控制服务(如果有)的名称

示唎 15:查找设备的安装程序类

 操作除了返回上一级和下一级筛选器驱动程序之外,还返回设备的安装程序类以下命令通过查找其设备实例 ID 查找打印机端口接口的安装程序类,然后使用设备实例 ID 查找其安装程序类

以下命令使用  操作通过在打印机端口硬件 ID 中使用短语“LPT”来查找打印机端口接口的设备实例 ID。

在响应中DevCon 返回打印机端口接口的设备实例 ID(以粗体文本显示)以及硬件 ID。

下一个命令使用  操作查找设备實例 ID 表示的设备的设备安装程序类at 字符 (@) 将此 ID 标识为设备实例 ID。此 ID 包含在引号中因为它包含 & 字符。

在响应中DevCon 显示打印机端口接口的驱動程序堆栈,包括类显示表明打印机端口位于 System 类中。

示例 16:显示远程计算机上相关设备的堆栈

以下命令使用 DevCon Stack 操作显示远程计算机 Server01 上微型端口驱动程序设备的预期堆栈该命令搜索 Net 安装程序类中其硬件 ID 或兼容的 ID 中包含“miniport”的设备。

请注意该命令首先将搜索限制于 Net 安装程序類,然后查找“miniport”字符串除了 Net 安装程序类中的设备之外,它不会查找其他设备

在响应中,DevCon 显示 Server01 上微型端口驱动程序的预期堆栈

示例 17:显示本地计算机上所有设备的状态

以下命令使用  操作查找本地计算机上所有设备的状态。然后将状态保存在 status.txt 文件中以便记录或供日后查看。该命令使用通配符 (*) 表示所有设备使用重定向字符 (>) 将输出重定向到 status.txt 文件。

示例 18:通过设备实例 ID 显示设备的状态

查找特定设备状态的朂可靠的方法是使用设备的设备实例 ID

以下命令使用  命令中本地计算机上 I/O 控制器的设备实例 ID。该命令包含设备的设备实例

在响应中DevCon 显示 I/O 控制器的状态。

示例 19:显示远程计算机上相关设备的状态

上与特定存储有关的设备的状态该命令搜索以下设备:

在该命令中,每个 ID 与其怹 ID 之间用空格分隔请注意,GenDisk 和 GenCdRom 是兼容的 ID而其他 ID 都是硬件 ID。

在响应中DevCon 显示每个设备的状态。

示例 20:通过硬件 ID 模式查找设备

以下命令使鼡  操作搜索远程计算机 Server01 上的鼠标设备具体来说,该命令搜索

在本例中DevCon 找到两个鼠标设备。

由于所有 DevCon 显示操作也查找硬件 ID因此你可以使用任何显示操作来搜索硬件 ID。根据输出中所需的内容选择操作例如,若要查找本地计算机上与鼠标相关的设备使用的设备驱动程序請提交以下命令。

在响应中DevCon 查找设备并列出它们的驱动程序。

21:通过设备实例 ID 或类查找设备

以下命令使用  操作显示本地计算机上的所有舊设备由于旧设备没有硬件 ID,因此你必须通过它们的设备实例 ID(注册表路径)ROOT\LEGACY 或其安装程序类 LegacyDriver 来搜索它们

第一个命令通过设备实例 ID 模式查找旧的驱动程序。此 ID 模式前有 at 字符 (@) 用于指示设备实例 ID 以及随后的通配符 (*) 在 ROOT\Legacy 子项中查找所有设备

第二个命令通过搜索 LegacyDriver 类中的所有设备來查找旧的设备。

这两个命令产生相同的输出在本例中,找到相同的 27 个旧设备

22:查找安装程序类中的设备(查找全部)

以下命令使用  操作查找 Net 安装程序类中的计算机上的所有设备。等号 (=) 表示 Net 是安装程序类而不是 ID。

在响应中DevCon 列出 Net 安装程序类中的下列 7 个设备。前 6 个是标准的微型端口驱动程序设备第 7 个设备是 RAS 异步适配器,它是软件枚举的设备 (SW\*)需要时才会安装。

在响应中DevCon 列出 Net 安装程序类中的下列 6 个设備。

可以预测 DevCon Find 命令(仅返回当前安装的设备)不会列出软件枚举的设备因为该设备未安装。

23:显示某个安装程序类的筛选器驱动程序

安裝程序类中的上一级筛选器驱动程序由于该命令不包含任何 classfilter 运算符,因此 DevCon 显示该类的筛选器驱动程序而不更改它们。

在响应中 DevCon 显示 DiskDrive 类嘚上一级筛选器驱动程序并且确认它没有更改它们在本例中,此显示显示 DiskDrive 安装程序类中使用 PartMgr.sys 上一级筛选器驱动程序的设备

24:向某个安裝程序类中添加筛选器驱动程序

安装程序类中的上一级筛选器驱动程序列表中添加一个虚构的筛选器 Disklog.sys。

启动该命令之后将虚拟光标放置茬第一个筛选器驱动程序前面。由于没有放置在特定驱动程序上因此 DevCon 将 Disklog 驱动程序添加到筛选器驱动程序列表的结尾。

该命令还使用 /r 参数该参数会在必要时重新启动系统以使类筛选器更改生效。

在响应中DevCon 显示 DiskDrive 类的当前上一级筛选器驱动程序。

如果驱动程序名称的拼写错誤或者尝试添加系统上未安装的驱动程序,那么该命令会失败DevCon 不会添加驱动程序,除非该驱动程序注册为服务也就是说,除非该驱動程序在 Services 注册表子项 (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services) 中有一个子项

以下命令测试此保护功能。该命令尝试将“Disklgg”(而不是“Disklog”)添加到 DiskDrive 类的上一级筛选器列表中输出表明该命令失败了。

25:在类列表中插入筛选器驱动程序

以下列表显示了提交该命令之前 DiskDrive 类的筛选器驱动程序

该命令还使用 /r 参数,该参数會在必要时重新启动系统以使类筛选器更改生效

定位运算符在本例中是必不可少的。在 DevCon 处理任何 classfilter 子命令之前虚拟光标位于列表的开头處,因此未放置在任何筛选器驱动程序上当光标未在某个驱动程序上时,如果使用 add-before (+) 运算符DevCon 会将该驱动程序添加到列表的开头处。当光標未在某个驱动程序上时如果使用 add-after (-) 运算符,DevCon 会将该驱动程序添加到列表的结尾处

在响应中,DevCon 显示 DiskDrive 类的当前上一级筛选器驱动程序

示唎 26:替换筛选器驱动程序

以下命令使用  操作将 DiskDrive 安装程序类的筛选器驱动程序列表中

以下列表显示了提交该命令之前 DiskDrive 类的筛选器驱动程序。

苐二个子命令使用 add-after 运算符 (+) 将新的筛选器驱动程序放置在已删除的驱动程序所在的位置由于删除运算符将光标放置在已删除筛选器所在的位置,因此 add-before (-) 和 add-after (+) 运算符具有相同的效果

该命令还使用 /r 参数,该参数会在必要时重新启动系统以使类筛选器更改生效

示例 27:更改筛选器驱動程序的顺序

安装程序类的筛选器驱动程序的顺序。具体来说它颠倒了第二个和第三个筛选器驱动程序的顺序。

以下列表显示了提交该命令之前 DiskDrive 类的筛选器驱动程序它还显示了该命令的预期结果。

第一个子命令使用删除运算符 (!)) 从列表中删除 Disklog第二个子命令使用启动运算苻 (=)) 将虚拟光标移回起始位置,然后使用定位运算符 (@)) 将光标放置在 PartMgr 驱动程序上启动运算符是必需的,因为虚拟光标仅在列表中向前移动朂后一个子命令使用

示例 28:启用特定设备

以下命令使用  操作启用已禁止纠正系统问题的可编程中断控制器。由于控制器硬件 ID *PNP0000 包含一个星号因此该命令使用单引号字符 (') 定向 DevCon 以查找与该命令中指定的完全相同的硬件 ID。否则会将该星号解释为通配符。

在响应中DevCon 显示设备的设備实例 ID 并且注明你必须重新系统才能启用该设备。

你可以手动或使用  操作重新启动系统从而进行响应。

以下命令向上一个命令中添加 /r 参數仅当完成某个操作需要重新启动时,/r 参数才会重新启动系统

在响应中,DevCon 启用设备然后重新启动系统以使启用生效。

启动系统时使用 DevCon 状态命令来确认该设备已启用。

示例 29:通过类启用设备

以下命令通过在  命令中指定“打印机”安装程序类启用计算机上的所有打印机設备该命令包含 /r 参数,该参数会在必要时重新启动系统以使启用生效

在响应中,DevCon 显示在“打印机”类中找到的打印机的设备实例 ID 并报告该打印机已启用尽管该命令包含 /r 参数,但是系统并不会重新启动因为启用打印机不需要重新启动。

示例 30:通过 ID 模式禁用设备

以下命囹使用  操作禁用本地计算机上的 USB 设备该命令通过硬件 ID 模式 (USB*) 来标识设备。该模式将与其硬件 ID 或兼容的 ID 以“USB”开头的任何设备匹配该命令包含 /r 参数,该参数会在必要时重新启动系统以使禁用生效

在响应中,DevCon 显示 USB 设备的设备实例 ID 并报告这些设备已禁用尽管该命令包含 /r 参数,但是系统并不会重新启动因为禁用这些设备不需要重新启动。

示例 31:通过设备实例 ID 禁用设备

以下命令使用  操作禁用本地计算机上的 USB 设備该命令通过其设备实例 ID 来标识设备,这些 ID 由每个 ID 前面的 at 字符 (@) 所指示每个设备实例 ID 与其他设备实例 ID 之间用一个空格分隔。

而且由于設备实例 ID 包含 & 字符 (&),因此它们应包含在引号中该命令包含 /r 参数,该参数会在必要时重新启动系统以使禁用生效

在响应中,DevCon 显示 USB 设备的設备实例 ID 并报告这些设备已禁用尽管该命令包含 /r 参数,但是系统并不会重新启动因为禁用这些设备不需要重新启动。

32:更新通信端口嘚驱动程序

以下命令使用  操作将系统上通信端口的当前设备驱动程序替换为 test.inf 文件中指定的测试驱动程序该命令只影响其整个硬件 ID 为 *PNP0501(包括星号)的设备。

你可以使用该命令将系统上签名的驱动程序替换为备用驱动程序以便进行测试或疑难解答或者将设备与最新版本的相哃驱动程序相关联。

在响应中DevCon 显示一个“硬件安装”警告,该警告表明该驱动程序未通过 Windows 徽标测试如果单击该对话框上的“仍要继续”按钮,会继续安装

然后,DevCon 显示以下成功消息

在本例中,DevCon 不显示“硬件安装”警告而是假定默认的响应“停止安装”。因此DevCon 无法哽新驱动程序并且显示一个失败消息。

以下命令使用  操作在本地计算机上安装键盘设备该命令包含到该设备的 INF

在响应中,DevCon 报告它已安装該设备也就是说,它已为新的设备创建了设备节点并且为该设备创建了更新的驱动程序文件

34:使用无人参与安装来安装设备

该命令使鼡其硬件 ID *MSLOOP 来标识环回适配器。“*MSLOOP”前面的单引号字符告知 DevCon 按照字义解释该字符串也就是说将星号解释为硬件 ID 的一部分,而不是解释为通配符

该命令还指定 DevCon 在安装中使用 Netloop.inf 文件(位于软盘上)。仅当必须重新启动才能完成安装时/r 参数才会重新启动计算机。

最后向无人参與安装文件中添加网络配置设置并运行无人参与安装。

35:通过设备实例 ID 模式删除设备

以下命令使用  操作删除计算机中的所有 USB 设备该命令通过设备实例 ID 模式来标识设备,该模式与以“USB\”字符串开头的任何设备实例 ID(注册表路径)都匹配at 字符 (@) 将设备实例 ID 与硬件 ID 或兼容的 ID 区分開来。该命令也包含 /r 参数该参数会在需要时重新启动系统以使删除过程生效。

在响应中DevCon 显示已删除的设备的设备实例 ID。

示例 36:删除特萣的网络设备

以下命令使用  操作从本地计算机上卸载 NDISWAN 微型端口驱动程序该命令指定 Net 类,然后通过指定该类中的设备(其硬件 ID 或兼容的 ID 包含“ndiswan”)来改进搜索该命令也包含 /r 参数,该参数会在需要时重新启动系统以使删除过程生效

在响应中,DevCon 显示已删除的设备的设备实例 ID

示例 37:扫描计算机中的新设备

以下命令使用  操作扫描本地计算机中的新设备。

在响应中DevCon 报告它已扫描系统,但未发现任何新设备

示唎 38:重新启动设备

以下命令使用  操作在本地计算机上重新启动环回适配器。该命令将搜索限制于 Net 安装程序类并且在该类中,指定环回适配器的设备实例 IDROOT\*MSLOOP\0000at 字符 (@) 将此字符串标识为设备实例 ID。请求字义搜索的单引号字符 ('), 防止 DevCon 将 ID 中的星号解释为通配符字符

在响应中,DevCon 显示设备嘚设备实例 ID 并报告结果

示例 39:重新启动本地计算机

以下命令使用  操作在本地计算机上重新启动操作系统并将重新启动与硬件安装相关联。与 /r 参数不同DevCon Reboot 操作不依赖于另一个操作的返回代码。

可以将该命令包含在需要重新启动系统的脚本和批处理文件中

在响应中,DevCon 显示一條表明正在重新启动计算机的消息(正在重新启动本地计算机)

DevCon 使用标准的 ExitWindowsEx 函数来重新启动。如果用户已在计算机上打开文件或者某个程序未关闭那么系统不会重新启动,直到用户对关闭这些文件或结束该进程的系统提示进行响应为止

示例 40:为旧设备分配硬件 ID

该命令使用设备的设备实例 ID ROOT\LEGACY_BEEP\0000,因为旧的蜂鸣设备没有硬件 ID 或兼容的 ID该命令使用 at 字符 (@) 指示该字符串为设备实例 ID。

该命令不会使用任何符号参数来萣位 ID默认情况下,DevCon 将新的硬件 ID 添加到硬件 ID 列表的结尾处在本例中,由于设备没有其他硬件 ID因此与位置无关。

在响应中DevCon 显示一条消息,该消息指出已向设备的硬件 ID 列表中添加了 beep还显示所得到的硬件 ID 列表。在本例中列表中只有一个硬件 ID。

示例 41:为远程计算机上的所囿旧设备添加硬件 ID

上所有旧设备的硬件 ID 列表中

该命令使用 - 符号参数将新的硬件 ID 添加到设备的硬件 ID 列表的结尾处(如果已为其中一个设备創建了首选的硬件 ID)。该命令使用 /m 参数来指定远程计算机它还使用设备实例 ID

在响应中,DevCon 显示所有受影响的设备的结果硬件 ID 列表

为一组設备分配相同的硬件 ID 之后,你可以使用其他 DevCon 操作在一个命令中查看和更改设备

例如,以下命令显示了所有旧设备的状态

示例 42:从远程計算机上的所有旧设备中删除硬件 ID

在响应中,DevCon 显示所有受影响的设备的结果硬件 ID 列表

示例 43:添加、删除和替换硬件 ID

下面的一系列示例显礻了如何使用  操作的各种功能。

列表的开头处由于 Hw2 已出现在列表中,因此只是进行移动而不是添加。该命令通过其设备实例 ID 来标识设備这些 ID 由每个 ID 前面的 at 字符 (@) 所指示。

在响应中DevCon 显示设备的新硬件 ID 列表。请注意Hw1 和 Hw2 按照指定的顺序出现在列表的开头处。

而且DevCon 报告它巳修改一个硬件 ID 列表,即一个设备的硬件 ID 列表。

以下命令使用 ! 符号删除 Hw1 硬件 ID然后,它不使用任何符号参数列出硬件 ID Hw5如果不使用符号參数,SetHwID 会将硬件 ID 添加到设备的硬件 ID 列表的结尾处

该命令演示了这种情况,与 DevCon SetHwID 操作的其他符号参数不同! 参数仅应用于使用它作为前缀的硬件 ID.

成功消息指示 DevCon 已修改一个设备的硬件 ID。

以下示例显示如何使用 DevCon 更新计算机上的 HAL在该示例中,测试人员希望将该计算机最适合的单处悝器 APCI APIC HAL 替换为多处理器 APCI APIC HAL 以便进行测试

必须更改硬件 ID,因为 HAL 的 INF 文件包含单处理器和多处理器 HAL 的驱动程序系统根据设备的硬件 ID 从 INF 文件中选择朂合适的驱动程序。如果不更改硬件 ID那么 DevCon Update 命令将只是重新安装单处理器 HAL 驱动程序。

然后DevCon 显示以下成功消息。

}

如果你想要完全重新创建 BCD或者收到一条消息,指出无法打开启动配置数据存储系统找不到指定的文件"运行 bootrec /rebuildbcd "。If you want to

如果 BCD 具有正确的条目请检查 winloadbootmgr 条目是否存在于正确的位置,该位置位于 bcdedit 命令中的指定路径中If

  1. location. 或者,可以使用命令提示符导航到操作系统驱动器创建新文件夹,然后从 系统 卷复制所有文件和攵件夹如下所示:Alternatively, you can use the

  2. 如果你使用的是 Windows 10,或者如果你在 Windows 预安装环境命令提示符下使用 Windows 10 ISO 进行故障排除可以使用 bcdboot 命令重新创建启动文件,如下所示:If

  1. 这些条目可能会影响我们因为 服务 分支中可能有一个 START 类型设置为 0 或 1 的条目,这意味着它在启动过程的启动或自动部分加载These entries might affect us because

    如果存在一个对应于******UpperFilters 或 LowerFilters条目的服务设置为0或******1, 请在服务注册表 (中将该服务设置为禁用如检查服务部分) 不删除筛选器驱动程序条目的步骤 2 和 3 所述,不删除筛选器****

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信