Joseph Davies
Windows 用户大多是特立独行的人。他们倾向于自行找出并更正问题。为了在用户遇到网络连接问题时提供帮助,Windows Vista 提供了网络诊断框架 (NDF),该框架是一组技术和指南,它使一组故障排除工具能够帮助用户进行诊断以及尽可能自动更正网络问题。
当用户遇到网络问题时,NDF 向用户提供诊断评估和解决步骤,从而使用户能够进行诊断和修复。NDF 能够简化并自动执行许多网络问题的常见故障排除步骤和解决方案实施。
在 Windows 7 中,Microsoft 现在将 NDF 与一些新功能(例如通知区域、控制面板中的“故障排除”项以及使用 Windows 事件跟踪 (ETW) 进行的网络跟踪)一起集成到操作系统中。这使您能够更轻松地查看和收集必要的信息,帮助排除很难自动更正或通过用户干预进行更正的网络故障。
从通知区域中的网络图标进行网络故障排除
通过在 Windows 7 桌面的通知区域中右键单击网络图标,并选择“疑难解答”,即可轻松开始网络故障排除。此操作将启动 Windows 网络诊断,并尝试检测和更正存在的问题。
从控制面板进行网络故障排除
使用 Windows 7,您不需要等待错误发生之后,再使用内置的诊断工具。您随时可以从控制面板中新的“故障排除”项启动故障排除会话。当您这么做时,将显示图 1 所示的屏幕。在此示例中,该工具发现计算机未建立 Internet 连接。该页面显示带框的消息,通知您所发生的问题并提供了“尝试重新连接”选项。
图 1 打开控制面板中的“故障排除”项将产生此屏幕。
如果您单击“网络和 Internet”选项,将显示如图 2 所示的对话框。该对话框中提供了七个选项,可开始排除七种类型的问题:Internet 连接问题、访问其他计算机上的文件和文件夹时出现的问题,以及网络打印问题。
图 2 排除网络和 Internet 故障。
选择七个选项中的任意一个都会启动一个向导,逐步引导您诊断该问题,并在可能的情况下自动或手动进行更正。故障排除程序还会记录事件跟踪日志 (ETL)。如果问题未能解决,您可以检查甚至转发该日志。只需在“故障排除”对话框中单击“查看历史记录”即可。图 3 显示了一个 ETL 示例。
图 3 故障排除历史记录示例。
历史记录列表中的每一项代表一个单独的故障排除会话。双击会话将显示其结果。图 4 显示了一个示例。
图 4 故障排除报告示例。
若要查看检测的详细信息,请单击“检测详细信息”链接,然后您就会看到如图 5 中所示的窗口。
图 5 来自故障排除报告的典型“检测详细信息”屏幕。
在靠近对话框顶端的位置,您将看到 ETL 文件的名称,该文件包含来自故障排除会话的信息。如果您希望将信息副本发送给支持人员或 Microsoft 以供分析,可以单击文件的名称(这将显示“文件下载”对话框)以便保存该文件。
您可以使用网络监视器 3.3 查看和分析 ETL 文件。您也可以使用事件查看器和 Tracerpt.exe 工具来查看该文件,或者用 netsh trace convert 命令将它们转换为 XML 或文本文件。通过在“故障排除历史记录”窗口中右键单击会话,然后选择“另存为”,可以将故障排除会话的详细信息保存到 CAB 文件中。与 ETL 文件一样,您可以将 CAB 文件发送给支持人员以供分析。
使用 Netsh.exe 进行网络跟踪
Windows 7 包含新的 Netsh.exe 上下文 netsh trace,用于网络跟踪。netsh trace 上下文中的命令可用于有选择地对提供程序和方案启用跟踪。提供程序代表网络协议堆中的单个组件,例如 Winsock、TCP/IP、无线局域网服务或 NDIS。跟踪方案是指特定功能的一组预定义的提供程序,例如文件共享或无线局域网访问。若要排除无关的详细信息并减小 ETL 文件的大小,您可以应用过滤器。
通常,若要对网络问题执行详细的故障排除,您必须向支持人员或 Microsoft 客户服务和支持组织提供内部组件的跟踪信息以及在出现问题时捕获的网络流量。在 Windows 7 之前,您必须执行两个不同的过程,才能获取此信息:使用 Netsh.exe 命令来启用和禁用跟踪,以及使用数据包探测器程序(例如网络监视器)来捕获网络流量。然后,您就会面对一项困难的任务:将这两个来源的信息合到一起,来确定何时发送与跟踪日志中的事件相关的网络流量。
在 Windows 7 中,当您使用 netsh trace 上下文中的命令来执行网络跟踪时,ETL 文件可以同时依次包含网络流量和组件跟踪。您可以使用网络监视器 3.3 来显示 ETL 文件,从而更有效地分析和排除网络问题。图 6 显示了在网络监视器 3.3 中查看的 ETL 文件的示例。
图 6 使用网络监视器 3.3 查看 ETL 文件中记录的网络流量。
借助这项新功能,捕获网络流量时就不再需要最终用户或支持人员在有问题的计算机上安装和使用网络监视器了。请注意,默认情况下,从“控制面板”|“故障排除”中为故障排除会话生成的 ETL 文件不包含网络流量信息。
为了依次为网络堆栈中的多个组件(例如 Winsock、DNS、TCP、NDIS、WFP 等等)捕获跟踪和网络流量信息,Windows 使用基于活动 ID 的关联(称为“分组”),在 ETL 文件中收集和记录跟踪和流量信息。ETL 文件中的分组使您能够将整个事务当作单独的关联事件序列进行处理。
有关用于跟踪会话的 Netsh.exe 命令的详细信息,请参阅“启动和停止 Netsh.exe 跟踪”边栏。
当您使用 Netsh.exe 启用跟踪时,Windows 7 可创建两个文件。其中一个是 ETL 文件,该文件包含 Windows 组件的跟踪事件,并且如果指定,还包含网络流量。默认情况下,该 ETL 文件的名称为 Nettrace.etl,并且存储在 %TEMP%\NetTraces 文件夹中。您可以使用 tracefile= 参数指定不同的名称和存储位置。另一个是可选的 CAB 文件,该文件可包含几种文件,包括文本、Windows 注册表、XML 和其他存储了更多故障排除信息的文件。该 CAB 文件也包含 ETL 文件的副本。默认情况下,该 CAB 文件的名称为 Nettrace.cab,并且存储在 %TEMP%\NetTraces 文件夹中。
您也可以将 Netsh.exe 跟踪与“控制面板”|“故障排除”联合使用。首先,使用适当的 Netsh.exe 命令对方案启用跟踪。例如,使用 netsh trace scenario=internetclient report=yes 命令。然后使用“控制面板”|“故障排除”来运行“连接到 Internet”故障排除会话。完成后,运行 netsh trace stop 命令。现在,当您查看故障排除会话的历史记录时,就可以访问 CAB 文件。
边栏:启动和停止 Netsh.exe 跟踪
若要使用 Netsh.exe 启动网络跟踪,首先要运行提升了权限的命令提示符。若要显示跟踪提供程序的列表,请键入 netsh trace show providers。若要生成跟踪方案的列表,请键入 netsh trace show scenarios。若要显示方案中的跟踪提供程序的列表,请键入 netsh trace show scenario ScenarioName。
您可以对一个或多个提供程序或方案启动跟踪。例如,若要对 InternetClient 方案这么做,请键入 netsh trace start scenario=internetclient。若要对多个方案启动跟踪,您可以指定所有相应的方案,例如 netsh trace start scenario=FileSharing scenario=DirectAccess。
您可以通过包含 report=yes 参数,创建一个包含格式化的报告的 CAB 文件。使用 tracefile= 参数可以指定 ETL 和 CAB 文件的名称及位置。如果您希望在 ETL 文件中记录网络流量,请包含 capture=yes 参数。
例如,以下命令将对 WLAN 方案启动跟踪,创建包含格式化报告的 CAB 文件,捕获网络流量,并且用文件名 WLANtest 将文件存储在 C:\Tshoot 文件夹中:netsh trace start scenario=WLAN capture=yes report=yes tracefile=c:\tshoot\WLANtest.etl。
若要停止跟踪,请使用 netsh trace stop 命令。
有关详细信息,请参阅 Windows Server 2008 R2 中用于网络跟踪的 Netsh 命令。
边栏:使用网络监视器 3.3 查看 ETL 文件
您必须先配置完整的 Windows 分析器,网络监视器 3.3 才能完全显示由 Windows 7 生成的 ETL 文件。默认情况下,网络监视器 3.3 使用存根 Windows 分析器。若要配置完整的 Windows 分析器,请单击“工具”|“选项”|“分析器”。在分析器列表中,单击“Windows”|“存根”以禁用存根分析器并启用完整分析器,然后单击“确定”。
Joseph Davies 是 Microsoft 的 Windows 网络写作团队的首席技术撰稿人。他自行撰写或与他人合著了 Microsoft Press 出版的大量书籍,包括《Windows Server 2008 Networking and Network Access Protection (NAP)》、《Understanding IPv6, Second Edition》和《Windows Server 2008 TCP/IP Protocols and Services》。