Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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. |
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
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.
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.
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.
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.
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 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.
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 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>
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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 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.