Introduction to Netsh
As more and more home users set up networks, they are finding themselves to be de facto system administrators. Home networks are very nice but they require a certain amount of care and feeding. Fortunately, Windows XP comes with a large assortment of command-line tools that can help maintain your network. Although many are specialized and of interest only to administrators of large corporate setups, some tools can be quite helpful to the home user as well.
Many may find that the basic tools like ping, ipconfig, and netstat, which are discussed on another page, are all that they care to deal with but the more adventurous can take advantage of a complete suite of powerful tools called Netsh. This suite is invoked from the standard command-line but has it has own interface or shell with a large number of sub-commands. I will try to focus on the features of Netsh that I think can be helpful to the home user. The whole suite has many applications and those who want more details can go to this Microsoft reference.
The Network Services shell is opened by entering netsh into a regular command prompt. The shell has a hierarchical structure with some sub-shells that Microsoft calls "contexts". From the user's point of view, however, all that this means is that commands are entered as a sequence of terms. The following sections discuss the "contexts" of most use to the home user.
The "netsh diag" context
The diagnostic context "diag" contains useful tools for checking out a network and testing various components and functions. Table I shows the contexts and sub-commands of most interest to this discussion. A complete list and many details are given at this Microsoft reference.
Context | Sub-context | Commands |
---|---|---|
diag | connect- Establishes, verifies, and then drops a connection | iphost, mail, news |
ping- Verifies connectivity | adapter, iphost, mail, news | |
show- Lists network components and settings | all, client, ip, mail, modem | |
gui- Starts the network diagnostics tool in Help and Support Center. | Graphical user interface |
This group of commands provides ways to test some of the most common functions
of interest to home users. For example, you can test if your email server
is working or check your email settings by the command netsh diag connect
mail
(Note that this may not work for email clients like AOL.). Another example
is to list important settings withnetsh diag show all
The graphical user interface
One way to simplify diagnostic tasks is to use the Help Center interface
that can be invoked by entering netsh diag gui
With this interface, you can carry out a number of diagnostic tests with
one operation. Figure 1 shows the available functions.
The "netsh interface ip" context
This context is another with functions that might interest a home user. It
provides a way to add, delete, modify, and display various IP addresses
and TCP/IP settings. Table II lists several functions. More detail and
additional functions are discussed in this Microsoft
reference. An example of its use is to display TCP/IP settings with the
command netsh interface ip show config
This can also be written netsh int ip show config
Context | Sub-context | Function |
---|---|---|
interface ip or int ip |
set address | Configures an IP address and a default gateway on a specified interface |
show address | Displays address for specified interface |
Reset Internet Protocol (TCP/IP)
Another example of using the Netsh Internet Ip context is resetting
TCP/IP. For several reasons, including infestation from spyware, these settings
might get corrupted. Netsh contains
a command that will reset the TCP/IP stack to the original settings that
existed when the operating system was installed. These settings may not be
the most up-to-date for your system but they will allow you to reconfigure
after a spyware invasion or other problem. The command to reset TCP/IP is netsh int ip reset {logfile}
Note that you must include the name of a file where a log of the actions will
be placed. Thus, if the log file is C:\tcplog.txt, the command is netsh int ip reset C:\tcplog.txt
A detailed description of reinstalling TCP/IP is given at this Microsoft
reference. Also, see the Winsock section below.
The "netsh winsock" context
Service pack 2 for Windows XP includes some additions to the Netsh suite.
These are discussed
here and include a new tool for repairing the Windows network socket
or "winsock". Uninstalling spyware or poorly written applications
can corrupt the winsock settings and result in loss of network connectivity.
There are two commands for managing the settings. To display a list of various
installed services (LSP, BSP, NSP) use netsh winsock show catalog
This list may not be too meaningful for the average PC user but it can be
helpful for more experienced users. To reset the winsock to the default configuration
use netsh winsock reset catalog
Note that any installed software that uses Internet connections may be partially
disabled by this action and have to be reinstalled. This would include most
software that updates itself and anti-virus programs that use proxy servers.
Therefore, this command should only be used for cases where the degree of
corruption makes it necessary. See this
reference for some alternative methods.
Netsh Firewall Helper in Windows XP SP2
Microsoft changed the way the firewall in Windows XP works when it issued service pack 2. It also added capability to Netsh for extensive configuring of the firewall with a new context "netsh firewall" that Microsoft calls the Firewall Helper. Its use in troubleshooting firewall problems in SP2 is extensively discussed in this knowledge base article. With the Firewall Helper Microsoft says you can now
• Configure the default state of Windows Firewall. (Options include Off, On, and On with no exceptions.)
• Configure the ports that must be open.
• Configure the ports to enable global access or to restrict access to the local subnet.
• Set ports to be open on all interfaces or only on a specific interface.
• Configure the logging options.
• Configure the Internet Control Message Protocol (ICMP) handling options.
• Add or remove programs from the exceptions list
The number of possible commands is quite large but two main sub-contexts
are netsh firewall set
and netsh firewall show
An extensive list of commands is in
the knowledge base article previously mentioned.