MS Windows Millennium Edition: Network Diagnostics Tool

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
On This Page

Feature Overview
Introduction
Network Diagnostics Features
network diagnostics Architectural Model
the WMI provider
The HTML Interface
Network Diagnostics reporting and tests
Network Diagnostics Troubleshooting
For additional Information

Feature Overview

Abstract

This white paper describes the Network Diagnostics Tool in the Windows® Millennium Edition operating system. This tool is based on the Windows Management Instrumentation (WMI) framework and includes HTML and VBScript technology. This white paper is intended primarily for network engineers and support professionals to help in troubleshooting and diagnosing network related errors. Familiarity with Transmission Control Protocol/Internet Protocol (TCP/IP) and network concepts is essential to understanding the Network Diagnostics Tool.

Introduction

The Network Dilemma

Diagnosing network related problems can consume a considerable amount of time and lead to frustration for consumers not trained as network experts. Network problems can be the result of a wide range of issues, from minimal disruptions in service to simple configuration problems of the operating system. In order to tackle network problems, the computer industry leans heavily toward a layered network approach, known as the ISO/OSI (International Organization for Standardization Open System Interconnection) model. Another model used is the standard TCP/IP model, also a layered network approach. The layers of both models are shown below in Figure 1. The stratification of the network allows a programmer to focus on a layer within a model, without having to understand the layers above or below.

Cc723458.ntdiag01(en-us,TechNet.10).gif

Figure 1: The network architecture model

While this is an excellent approach for building networks, the layered approach falls short in cooperative error reporting. Applications generally must work independently of the network environment, and lower layers of the network do not report meaningful errors to upper layer applications. The result is that lower layer network problems can cause upper layer application problems without giving any information about why the errors are occurring.

Applications do not have sophisticated methods for identifying and correcting network related errors. Because specific problems are not identified for the application by the network, no corrective action can be taken. This results in confusion and frustration for consumers, who must then call support professionals to help solve their application problems.

Support professionals must spend time teaching the consumer how to troubleshoot with command line utilities such as PING, Telnet, and others. To fix network related problems, methodical troubleshooting techniques are required. The first critical step is gathering information about the consumer's machine. The second critical step is identifying what works and what doesn't. Many of the tools and techniques used in this process only frustrate a consumer who is not interested in the command line tools and interfaces that are necessary to solve the problem.

Question How does the support professional gather the required information quickly and unobtrusively enough to assure a satisfactory customer experience?

The answer is the Network Diagnostics Tool. This graphical user interface-based HTML page gathers information via the WMI framework and performs a series of simple network troubleshooting steps automatically. This provides the support professional clear answers to the most common fact finding questions used when troubleshooting network related problems. And it can eliminate the necessity for consumers to use command line utilities. The Network Diagnostics Tool in Windows Me makes the troubleshooting experience easier for the consumer and easier for the support professional.

Network Diagnostics Features

Overview

The Network Diagnostics Tool in Windows Me was designed to make it easy for both the consumer and the support professional to quickly gain usable information about the consumer's home network environment.

This tool can:

  • Run inside the system help utility to gather information.

  • Report computer system properties.

  • Report OS version and WMI version.

  • Enumerate network adapter configurations.

  • Enumerate modem configurations.

  • Enumerate PPP (Point-to-Point Protocol) and VPN (virtual private network) adapter configurations.

  • Ping the Loopback IP address.

  • Ping each adapter's IP address.

  • Ping each configured default gateway.

  • Ping each configured Domain Name System (DNS) server.

  • Ping each configured Windows Internet Name Service (WINS) server.

  • Ping the Internet Explorer-configured proxy server.

  • Ping the default Outlook Express Mail server.

  • Ping the default Outlook Express News server.

  • Connect via TCP to the default Outlook Express Mail server.

  • Connect via TCP to the default Outlook Express News server.

  • Connect via TCP to the configured proxy server port.

  • PING and connect via TCP by IP or by hostname.

  • Integrate with Windows Management Instrumentation (WMI).

  • Provide PING and connect via TCP methods for customizing HTML scripts.

network diagnostics Architectural Model

The WMI Provider

Web-Based Enterprise Management (WBEM) describes a collection of technologies designed to integrate existing standards of systems management into an architecture that can be managed using any Web browser. Microsoft's implementation of WBEM is Windows Management Instrumentation (WMI). The Network Diagnostics Tool uses WMI extensively. The WMI provider of the Network Diagnostics Tool is the component responsible for querying the operating system and the system registry for parameters of interest. This WMI provider is also responsible for running tests and reporting results to the HTML interface.

The HTML Interface

The HTML page of the Network Diagnostics Tool is what the consumer and support professional will see when troubleshooting a network problem. The graphic in Figure 2 below helps illustrate the interaction between the components.

Cc723458.ntdiag02(en-us,TechNet.10).gif

Figure 2: The Windows Me Network Diagnostics model

The Network Diagnostics HTML page gathers network resource information from the Windows Me WMI provider and the Network Diagnostics WMI provider. The tool then sends the necessary instructions to the Network Diagnostics WMI provider for testing the availability of these resources.

The Network Diagnostics Tool relies on the accuracy and validity of the WMI provider of the operating system. In cases where the WMI provider of the operating system is incomplete, the Network Diagnostics Tool will also be incomplete. If the information reported is in question, corroboration through wbemtest (a WMI testing tool) can be useful. The wbemtest tool can be located in the wbem directory of the operating system.

the WMI provider

How to Access the Provider

The Network Diagnostics WMI provider exposes an interface for developers to initiate network tests both locally and remotely. The Network Diagnostics WMI provider supports the ability to query for information and provides two methods of testing network resources via PING and TCP connections.

The information available via the provider includes current proxy settings for Internet Explorer, the current default mail server for Outlook Express, the current default news server for Outlook Express, and the ports each of the above are configured to use. These properties are available by referencing them within programs or scripts.

Once developers have accessed this information they can use the data in several ways. For example, a developer could write a script that accessed the information from anywhere on the network. The simple gathering of accurate information can make the job of remote administration significantly easier.

Developers also have a choice in the tools they wish to use to access this information. They can use JavaScript, VBScript, C, C++, and many other programming languages supported by the WMI framework.

Examples of the properties that can be accessed via the Network Diagnostics WMI provider are shown here:

Netdiag.IEProxy

What is the currently configured proxy server?

Netdiag.IEProxyPort

What proxy port is IE using?

Netdiag.MailServer

What is the currently configured mail server?

Netdiag.MailPort

What email port is Outlook Express using?

Netdiag.NewsServer

What is the currently configured news server?

Netdiag.NewsNNTPPort

What news port is Outlook Express using?

Examples of the methods provided by the Network Diagnostics WMI provider are shown here:

Netdiag.Ping (addr, str)

PING address

Netdiag.ConnectToPort (addr, port)

Connect to address and port

Developers of HTML pages can use VBScript or JavaScript to access these useful pieces of information and to initiate simple network and connectivity tests. Three sample pieces of code are provided that demonstrate how to access the Network Diagnostics WMI provider properties, the PING method and the ConnectToPort method. The next three pages contain examples that were written with simple HTML and VBScript.

Note: The following examples can be used but are for demonstration purposes only.

Get Properties Script (For Demonstration Only)

<HTML>
<HEAD>
<TITLE>Network Diagnostics Properties Example</TITLE>
</HEAD>
<BODY id=main rightMargin=50>

<script id=shared_vbs language="VBScript">
<!--
On error resume next

' Globals
Dim netdiag

function onLoad()

 set all = document.all
 main.style.cursor = "wait"
 
 set t_Default = Locator.ConnectServer(, "root/default")
 set netdiags = t_Default.ExecQuery("Select * from NetDiagnostics")
 
 for each g in netdiags
 set netdiag = g
 next
 
 strProps = getProps()
 netprops.innerHTML = strProps
 
 main.style.cursor = "auto"
 
end function

' getProps
public function getProps()

 strIEP = CStr(netdiag.IEProxy)
 strIEPP = CStr(netdiag.IEProxyPort)
 str = str + "<b>Proxy: </b>" + strIEP + "<b> Port: </b>" + strIEPP + "<br>"
 strMS = CStr(netdiag.MailServer)
 strMSP = CStr(netdiag.MailPort)
 str = str + "<b>Mail: </b>" + strMS + "<b> Port: </b>" + strMSP + "<br>"
 strNS = CStr(netdiag.NewsServer)
 strNSP = CStr(netdiag.NewsNNTPPort)
 str = str + "<b>News: </b>" + strNS + "<b> Port: </b>" + strNSP + "<br>"
 
 getProps = str
 
end function

// -->
</script>

<h1 id=L_Title_Text>Network Diagnostics Properties Example</h1>
<table>
<tr><td bgcolor=c0c0c0><strong>List of properties</strong></td></tr>
<tr><td><input type="button" name="pingbutton" value="Get Properties" onclick="onLoad()">
</td></tr>
<tr><td><span id=netprops></span></td></tr>
</table>
</BODY>
<OBJECT ID="Locator" CLASSID="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6"></OBJECT>
</HTML> 

Ping Destination Script (For Demonstration Only)

<HTML>
<HEAD>
<TITLE>Network Diagnostics Ping Example</TITLE>
</HEAD>
<BODY id=main rightMargin=50>

<script id=shared_vbs language="VBScript">
<!--
On error resume next

' Globals
Dim netdiag

function onLoad()

 set all = document.all
 main.style.cursor = "wait"
 
 set t_Default = Locator.ConnectServer(, "root/default")
 set netdiags = t_Default.ExecQuery("Select * from NetDiagnostics")
 
 for each g in netdiags
 set netdiag = g
 next
 
 strPing = getPing(pingaddr.value)
 pingtestdiv.innerHTML = strPing
 
 main.style.cursor = "auto"
 
end function

' getPing
public function getPing (addr)

 getPing = ""
 
 if Not IsEmpty(addr) then
 if netdiag.Ping (addr, str) then
 strPing = "Successful ping - " + str
 else
 strPing = "Cound not ping - " + str
 end if
 end if
 
 getPing = strPing
 
end function
// -->
</script>

<h1 id=L_Title_Text>Network Diagnostics Ping Example</h1>
<table>
<tr><td bgcolor=c0c0c0><strong>Ping Test</strong></td></tr>
<tr><td><input type="text" name="pingaddr" value="">
<input type="button" name="pingbutton" value="Ping" onclick="onLoad()">
</td></tr>
<tr><td><span id=pingtestdiv></span></td></tr>
</table>
</BODY>
<OBJECT ID="Locator" CLASSID="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6"></OBJECT>
</HTML>

TCP Connection Script (For Demonstration Only)

<HTML>
<HEAD>
<TITLE>Network Diagnostics TCP Connect Example</TITLE>
</HEAD>
<BODY id=main rightMargin=50>

<script id=shared_vbs language="VBScript">
<!--
On error resume next

' Globals
Dim netdiag

function onLoad()

 set all = document.all
 main.style.cursor = "wait"
 
 set t_Default = Locator.ConnectServer(, "root/default")
 set netdiags = t_Default.ExecQuery("Select * from NetDiagnostics")
 
 for each g in netdiags
 set netdiag = g
 next
 
 strPort = getPort(tcp_addr.value,tcp_port.value)
 tcptestdiv.innerHTML = strPort
 
 main.style.cursor = "auto"
 
end function

' getPort
public function getPort (tcpaddr, tcpport)

 getPort = ""
 
 if tcpaddr <> "" and tcpport <> "" then
 if netdiag.ConnectToPort (tcpaddr, tcpport) then
  strPort = "Successfully connected to " 
  strPort = strPort + tcpaddr + " on port: " + tcpport
 else
  strPort = "Could not connect to "
  strPort = strPort + tcpaddr + " on port: " + tcpport
 end if
 else 
 	 strPort = "Please enter Destination and Port"
 end if
 
 getPort = strPort
 
end function
// -->
</script>
<h1 id=L_Title_Text>Network Diagnostics TCP Connect Example</h1>
<table>
<tr><td bgcolor=c0c0c0><strong>TCP Connection Test</strong></td></tr>
<tr><td>Destination: <input type="text" name="tcp_addr" value=""> 
Port: <input type="text" name="tcp_port" value="">
<input type="button" name="tcpportbutton" value="Connect" onclick="onLoad()">
</td></tr>
<tr><td><span id=tcptestdiv></span></td></tr>
</table>
</BODY>
<OBJECT ID="Locator" CLASSID="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6"></OBJECT>
</HTML>

The HTML Interface

How to run Network Diagnostics

There are a number of ways to run the Network Diagnostics Tool. Each way results in the tool running and gathering the current network configuration. The following methods will run the Network Diagnostics Tool:

  • Click the Start button, and then click Help. On the Help and Support page, click Home Networking, then click Troubleshooting for Networks, then click Using Network Diagnostics.

  • Or, click the Start button, then click Run. Enter the command: hcp://system/netdiag/logs.htm and click OK.

  • Or, click the Start button, and then click Run. Enter the command:

    %systemdrive%\windows\pchealth\helpctr\system\netdiag\logs.htm

    and click OK. (%systemdrive%) usually refers to your C: or D: drive.

The HTML page for the Network Diagnostics Tool as shown in Figure 3 below will appear.

Cc723458.ntdiag03(en-us,TechNet.10).gif

Figure 3: The Windows Me Network Diagnostics Tool

As soon as the HTML page is launched, it will begin gathering and testing various network components. The tool will find computer information, enumerate network adapters, attempt to connect via TCP to configured services, and attempt to ping configured network services. It reports both successful and unsuccessful attempts to reach network resources.

Network Diagnostics reporting and tests

Before running the Network Diagnostics Tool, it is useful to know exactly what information it provides. Among other things, the Network Diagnostics Tool reports machine name, the version of WMI and the version of the operating system. It also tests the availability of services that have been configured. The following sections display complete lists of information reported, information that is tested, and the kind of interactions that a customer can have with the tool.

Reporting

The following list is a summary of the items reported by the Network Diagnostics Tool. This list is a combination of the information provided by the Network Diagnostics WMI provider and the WMI provider of the operating system.

The following is an example of the items and information that are reported:

Services

Outlook Express default mail server.

Outlook Express default news server.

Internet Explorer proxy server (Winsock Proxy is not detected).

Computer Information

Operating System

BootDevice = \\Device\Harddisk0
BuildNumber = 2514
BuildType (empty)
Caption = Microsoft Windows
CodeSet = 1252
CountryCode = 1
CreationClassName = Win32_OperatingSystem
CSCreationClassName = Win32_ComputerSystem
CSDVersion =
CSName = COLUMBO-TEST
CurrentTimeZone = -480
Debug (empty)
Description = Test Machine
Distributed (empty)
ForegroundApplicationBoost (empty)
FreePhysicalMemory = 54148
FreeSpaceInPagingFiles = 1929044
FreeVirtualMemory = 1983192
InstallDate = 20000307055202.000000-480
LastBootUpTime (empty)
LocalDateTime = 20000309121053.060000-480
Locale = 0409
Manufacturer = Microsoft Corporation
MaxNumberOfProcesses = -1
MaxProcessMemorySize = 2093056
Name = Microsoft Windows ME|C:\WINDOWS|
NumberOfLicensedUsers (empty)
NumberOfProcesses = 14
NumberOfUsers (empty)
Organization = msft
OSLanguage = 1033
OSProductSuite (empty)
OSType = 17
OtherTypeDescription (empty)
PlusProductID (empty)
PlusVersionNumber (empty)
Primary = True
QuantumLength (empty)
QuantumType (empty)
RegisteredUser = test
SerialNumber (empty)
ServicePackMajorVersion (empty)
ServicePackMinorVersion (empty)
SizeStoredInPagingFiles = 1966632
Status = OK
SystemDevice (empty)
SystemDirectory = C:\WINDOWS\SYSTEM
TotalSwapSpaceSize (empty)
TotalVirtualMemorySize = 2097148
TotalVisibleMemorySize = 130516
Version = 4.90.2514
WindowsDirectory = C:\WINDOWS

Miscellaneous

OS Version = 4.90.2514
WMI Version = 1164.0003

Modems and Network Adapters

Modems

AnswerMode (empty)
AttachedTo = COM3
Availability (empty)
BlindOff = X4
BlindOn = X3
Caption = MT5634ZBA-USB Modem
CompatibilityFlags (empty)
CompressionInfo (empty)
CompressionOff = %C0
CompressionOn = %C1
ConfigManagerErrorCode (empty)
ConfigManagerUserConfig (empty)
ConfigurationDialog = modemui.dll
CountrySelected = United States of America
CreationClassName = Win32_PotsModem
Description = MT5634ZBA-USB Modem
DeviceID = USB\MULTIUSB\WDMMDM0
DeviceLoader = *vcomm
DeviceType = External Modem
DialType (empty)
DriverDate (empty)
ErrorCleared (empty)
ErrorControlForced = \N4
ErrorControlInfo (empty)
ErrorControlOff = \N1
ErrorControlOn = \N3
ErrorDescription (empty)
FlowControlHard = &K3
FlowControlOff = &K0
FlowControlSoft = &K4
InactivityScale = "3c000000"
InactivityTimeout (empty)
Index (empty)
InstallDate (empty)
LastErrorCode (empty)
MaxBaudRateToPhone (empty)
MaxBaudRateToSerialPort (empty)
MaxNumberOfPasswords (empty)
Model = MT5634ZBA-USB Modem
ModemInfPath = MDMLUC.INF
ModemInfSection = Modem2
ModulationBell = B1B16B2
ModulationCCITT = B0B15B2
ModulationScheme (empty)
Name = Unimodem.vxd
PNPDeviceID = USB\MULTIUSB\WDMMDM0
PortSubClass = "02"
PowerManagementSupported (empty)
Prefix = AT
ProviderName = Lucent
Pulse = P
Reset = AT&F
ResponsesKeyName (empty)
RingsBeforeAnswer (empty)
SpeakerModeDial = M1
SpeakerModeOff = M0
SpeakerModeOn = M2
SpeakerModeSetup = M3
SpeakerVolumeHigh = L3
SpeakerVolumeInfo (empty)
SpeakerVolumeLow = L0
SpeakerVolumeMed = L2
Status = OK
StatusInfo = 3
StringFormat (empty)
SupportsCallback (empty)
SupportsSynchronousConnect (empty)
SystemCreationClassName = Win32_ComputerSystem
SystemName = COLUMBO-TEST
Terminator =
TimeOfLastReset (empty)
Tone = T
VoiceSwitchFeature (empty)

Network Adapters

Caption = [0003] Intel(R) PRO PCI Adapter
ArpAlwaysSourceRoute = (empty)
ArpUseEtherSNAP = (empty)
DeadGWDetectEnabled = (empty)
Description = Intel(R) PRO PCI Adapter
MACAddress = 00:D0:B7:1F:D7:29
ServiceName = (empty)
DatabasePath = (empty)
DefaultGateway =

20.0.0.1 PASSED is in the same subnet.

Successful ping - pinging (20.0.0.1)
64 bytes from 20.0.0.1: icmp_seq = 0. time: 2 ms
64 bytes from 20.0.0.1: icmp_seq = 1. time: 0 ms
64 bytes from 20.0.0.1: icmp_seq = 2. time: 2 ms
64 bytes from 20.0.0.1: icmp_seq = 3. time: 0 ms

20.0.0.2 PASSED is in the same subnet.

Successful ping - pinging (20.0.0.2)
64 bytes from 20.0.0.2: icmp_seq = 0. time: 2 ms
64 bytes from 20.0.0.2: icmp_seq = 1. time: 0 ms
64 bytes from 20.0.0.2: icmp_seq = 2. time: 1 ms
64 bytes from 20.0.0.2: icmp_seq = 3. time: 1 ms

DefaultTOS = (empty)
DefaultTTL = (empty)
DHCPEnabled = TRUE
DHCPLeaseObtained = 03/09/00 12:09:21:
DHCPLeaseExpires = 03/09/00 12:12:21:
DHCPServer = 10.0.0.4

Successful ping - pinging (20.0.0.4)
64 bytes from 20.0.0.4: icmp_seq = 0. time: 2 ms
64 bytes from 20.0.0.4: icmp_seq = 1. time: 1 ms
64 bytes from 20.0.0.4: icmp_seq = 2. time: 0 ms
64 bytes from 20.0.0.4: icmp_seq = 3. time: 2 ms

DNSDomain = columbo.test.com
DNSDomainSuffixSearchOrder = (empty)
DNSEnabledForWINSResolution = (empty)
DNSHostName = COLUMBO-TEST
DNSServerSearchOrder =

10.0.0.11 PASSED

Successful ping - pinging (10.0.0.11)
64 bytes from 10.0.0.11: icmp_seq = 0. time: 1 ms
64 bytes from 10.0.0.11: icmp_seq = 1. time: 2 ms
64 bytes from 10.0.0.11: icmp_seq = 2. time: 1 ms
64 bytes from 10.0.0.11: icmp_seq = 3. time: 1 ms

10.0.0.12 PASSED

Successful ping - pinging (10.0.0.12)
64 bytes from 10.0.0.12: icmp_seq = 0. time: 1 ms
64 bytes from 10.0.0.12: icmp_seq = 1. time: 2 ms
64 bytes from 10.0.0.12: icmp_seq = 2. time: 1 ms
64 bytes from 10.0.0.12: icmp_seq = 3. time: 2 ms

ForwardBufferMemory = (empty)
GatewayCostMetric = (empty)
IGMPLevel = (empty)
IPAddress = 10.0.0.193

Successful ping - pinging (20.0.0.193)
64 bytes from 20.0.0.193: icmp_seq = 0. time: 1 ms
64 bytes from 20.0.0.193: icmp_seq = 1. time: 0 ms
64 bytes from 20.0.0.193: icmp_seq = 2. time: 0 ms
64 bytes from 20.0.0.193: icmp_seq = 3. time: 1 ms

IPFilterSecurityEnabled = (empty)
IPPortSecurityEnabled = (empty)
IPSecPermitIPProtocols = (empty)
IPSecPermitTCPPorts = (empty)
IPSecPermitUDPPorts = (empty)
IPSubnet = 255.255.255.0
IPUseZeroBroadcast = (empty)
KeepAliveInterval = (empty)
KeepAliveTime = (empty)
MTU = (empty)
NumForwardPackets = (empty)
PMTUBHDetectEnabled = (empty)
PMTUDiscoveryEnabled = (empty)
TCPMaxConnectRetransmissions = (empty)
TCPMaxDataRetransmissions = (empty)
TCPNumConnections = (empty)
TCPUseRFC1122UrgentPointer = (empty)
TCPWindowSize = (empty)
WINSEnableLMHostsLookup = (empty)
WINSHostLookupFile = (empty)
WINSPrimaryServer = 10.0.0.11

Successful ping - pinging (10.0.0.11)
64 bytes from 10.0.0.11: icmp_seq = 0. time: 1 ms
64 bytes from 10.0.0.11: icmp_seq = 1. time: 2 ms
64 bytes from 10.0.0.11: icmp_seq = 2. time: 1 ms
64 bytes from 10.0.0.11: icmp_seq = 3. time: 1 ms

WINSScopeID = (empty)
WINSSecondaryServer = 10.0.0.12

Successful ping - pinging (10.0.0.12)
64 bytes from 10.0.0.12: icmp_seq = 0. time: 1 ms
64 bytes from 10.0.0.12: icmp_seq = 1. time: 2 ms
64 bytes from 10.0.0.12: icmp_seq = 2. time: 0 ms
64 bytes from 10.0.0.12: icmp_seq = 3. time: 2 ms

IPXEnabled = (empty)

Installed Clients

Description = Client for Microsoft Networks
InstallDate = 20000305160000.000000-480
Manufacturer = Microsoft
Name = Client for Microsoft Networks
Status = OK

Testing

The following list summarizes items tested by the Network Diagnostics Tool. The two tests used are a PING test and a TCP connection test. The following list shows each service or parameter that may be tested and which tests are used for that service or parameter. Individual machines may not have all of these parameters configured or they may not be applicable, and therefore Network Diagnostics may not perform all of the listed tests.

PING Tests

Loopback address

IP address(s) per adapter

Default Gateway(s) per adapter

DHCP server(s) per adapter

DNS server(s) per machine (This is a global parameter)

WINS server(s) per adapter

Outlook Express Default Mail Server

Outlook Express Default News Server

IE Proxy Server (Winsock Proxy is not detected)

TCP Connection Tests

Outlook Express Default Mail Server tests the following ports:

POP3 port 110

POP2 port 109

SMTP port 25

IMAP port 143

Outlook Express Default News Server tests the following ports:

NNTP port 119

IE Proxy Server (Winsock Proxy is not detected) tests the following ports:

TCP port that is configured in the IE proxy port settings

User Interaction

Once the tool has completed reporting and testing, it will display the results of these tests. The top left corner under Status should say "Finished." Your page will look like the page in Figure 4 below.

Cc723458.ntdiag04(en-us,TechNet.10).gif

Figure 4: The Windows Me Network Diagnostics Tool

The Network Diagnostics screen is organized to provide the user with several options. The left hand side displays a status section and four buttons. These buttons perform actions for viewing and saving information. They are:

  • Start: Restarts the Network Diagnostics Tool.

  • Save to File: Saves the current results to a file.

  • Expand All: Maximizes the results on the right hand side of the screen

  • Hide All: Minimizes the results on the right hand side of the screen.

Saved files can be accessed from the \windows\pchealth\helpctr\netdiag directory. File sizes average 21-25K. One of the advantages of saving the log files in the PCHEALTH system directory is that the logs are protected from tampering once they are saved.

Each file is given a unique name to distinguish it from previously saved files. The format of the saved file is as follows:

Netdiag(Day)(Month)(Year) (Hour)(Minute)(Seconds).htm

For example, a file created on April 3, 2000 at exactly 1:00pm would have the following file name:

Netdiag03042000 130000.htm

Output saved a minute and a half later would have the following filename:

Netdiag03042000 130130.htm

Note the time format is in military time.

For each test a result of PASSED or UNREACHABLE is displayed. If any test results in UNREACHABLE, the unreachable result is populated up to the top of that section. A consumer or support professional is quickly able to determine if a network error has occurred and needs to be investigated.

The results of the Network Diagnostics Tool can be used in two ways. They can be used to find information about the system, or as a quick check to see if there are any network problems.

Network Diagnostics Troubleshooting

Providing a Solution

Many network-troubleshooting tools are available for Windows. Most are included in the product or the Windows Resource Kit. Troubleshooting tools include ipconfig, winipcfg, ping, tracert, telnet, nbtstat, netstat, and others. When troubleshooting any problem where the validity of the data is in question, it is always helpful to have more than one tool to diagnose the problem. Network Diagnostics is another powerful tool for quickly gathering and testing the network characteristics of a consumer's machine.

Note: Network Diagnostics combines the effectiveness of standard troubleshooting tools. It answers many of the initial questions a support professional would ask when diagnosing a network problem. It saves valuable troubleshooting time and helps create a positive support experience for the consumer.

As an example, when a support professional first takes a call from a customer having a problem gaining access to network resources, the first questions asked are typically:

  • What are you trying to reach?

  • What is your IP address?

  • Are you using WINS or DNS?

  • Can you resolve names?

  • Can you resolve IP addresses?

The Network Diagnostics Tool can immediately answer four of the five questions. All that is required is showing the consumer where to go to launch the tool. This is valuable for consumers unfamiliar with network concepts.

Common Issues

In some situations, the Network Diagnostics Tool may appear to report an error or unreachable status when there is not really an error condition This next section describes a couple of scenarios to pay attention to when troubleshooting issues.

Dial-up and VPN Scenarios

It can be easy to forget the simple routing involved in dial-up networking scenarios. This is especially true in dial-up scenarios where you are using a combination of dial-up networking and network cards or dial-up networking and VPNs. You may see errors connecting to resources when using a combination of these connection methods. The most common situation where you'll see errors involves the use of the default gateway. For instance, if a consumer has a machine with a network card, it may be configured with a default gateway to internal resources. If the consumer then dials up the Internet, he or she will have a new default gateway to the Internet. Now any packet destined for non-local traffic will be routed to the Internet, not to the internal network or internal router. The routing table makes this decision. The Network Diagnostics Tool will report that it cannot reach the configured resources on the network card and mark them UNREACHABLE. This is true and expected, but may seem odd at first. Always keep in mind how the machine's configuration can alter interpretation of the Network Diagnostics data.

Primary and Secondary WINS servers

The IP stack in Windows Me is configured to adjust for temporary or permanent outages of a primary WINS server. If a machine is configured with a primary and secondary WINS server, and the primary WINS server is unavailable, the IP stack will swap the addresses of the primary and secondary. At first, this may seem like an error, because the network adapter settings do not change when this occurs. However, this is not an error, so if encountered, is usually a sign that the primary WINS server is not functioning.

IP Filters Enabled

Since the primary tests used by Network Diagnostics involve pinging and connecting via TCP, if a remote location is blocking certain traffic, the Network Diagnostics Tool may report a failure when none exists. For instance, if a consumer is connecting to an e-mail server that is blocking Internet Control Message Protocol (ICMP) traffic, you may see results that look like this:

MailServer: smtp.email.msn.com UNREACHABLE

Cound not ping - pinging (smtp.email.msn.com)
timed out
timed out
timed out
timed out

Mail server appears to be running [SMTP].

The fact that the ping failed does not represent an actual error, although it does give you good information about the remote site.

TV Adapters

The Microsoft TV adapter assumes an IP address based on a device ID generated during boot. The IP address that it takes will vary, but may appear to look like an IP network address. The Network Diagnostics Tool tests for valid IP addresses within the network adapter IP field and does not accept network addresses. This can result in an error condition when nothing is actually wrong. For instance, with the Microsoft TV adapter installed, you may see something similar to the following:

[0003] Microsoft TV Data Adapter. UNREACHABLE
IP Address = 5.0.0.0 UNREACHABLE

Could not ping - pinging (5.0.0.0)
timed out
timed out
timed out
timed out

Be aware that the IP address enumerated is not actually used and thus should not interfere with normal network activity.

1394 and PC Card (PCMCIA) Adapters

It is important to note that for many adapters, the drivers may or may not be loaded depending on whether the adapter is attached to the system or to other networking devices, such as hubs or switches. Below are a few examples of where this can be important.

  1. PC card (PCMCIA) adapters that have been removed from their slots will no longer have WMI properties and therefore will no longer show up in the Network Diagnostics Tool.

  2. Adapters will not be enumerated by WMI until they are connected to another 1394 device or hub. Although the adapter and IP bindings will be viewable in system properties, neither ipconfig nor winipcfg will show the adapter. This also means that the Network Diagnostics Tool will not see the adapter either.

Empty DNS Server Scope Options

There can be rare cases where an administrator has configured a DNS scope option, but has not entered any DNS server information into the scope. When this occurs, WMI reports that the DNS server address is 0.0.0.0. The Network Diagnostics Tool will fail on this address, indicating that a DNS server was not available. While rare, this test case can inform administrators if they have overlooked assigning the DNS servers within a scope. If the scope is removed or if valid DNS servers are added to the scope option, the Network Diagnostics error does not occur.

Proxy Server Settings Appear When Proxy Server is Not Enabled

Internet Explorer settings are accessed based on how they appear in the registry. There are two primary registry keys that are read. The first is whether the proxy server is enabled, the second is the name of the configured proxy server. These registry keys are independent of each other. If a consumer configures a proxy server and enables it, the Network Diagnostics Tool will display the proxy server information and determine whether it can connect to the proxy server. If the consumer configures a proxy server and disables it, the registry information for the proxy server is still maintained. If Network Diagnostics is run, it will display the proxy server information in the registry, but is smart enough to know not to actually try to connect to the server, since this functionality is disabled. This can be helpful when determining whether the Internet Explorer settings have changed or are not what the consumer expects.

For additional Information

For the latest information on Windows Me, visit the following Web sites:

https://www.microsoft.com/windowsme/

https://oem.microsoft.com/worldwide/

https://www.microsoft.com/oem/

Release Note If you have comments or suggestions for the Network Diagnostics team, please submit them to pubnetdg@microsoft.com and include "Network Diagnostics Feedback" in the title. Depending upon volume, you may not receive a reply; however, we appreciate your contributions and will read all of your comments.