I needed to document DHCP information for a client across their large Enterprise consisting of more than 15 DHCP servers and each with several scopes. I dreaded documenting by hand, so I turned to my usual trick of collecting information by command line.
First I found just the article I need about how to get DHCP information at the command line from the Technet Article “To use DHCP commands interactively at the command prompt“
My first task was identifying all of the DHCP servers in the organization. Now that could have been easily accomplished from the MMC snap-in, but this is about the Command line.
So I used netsh DHCP to accomplish that as well.
- Open Command Prompt.
- Type netsh.
- At the netsh> command prompt, type dhcp.
- At the netsh dhcp> command prompt, type show server. This will give you a list of servers within the current Active Directory domain.
Now depending on what information you need to retrieve you can dive down into each server and then further into each scope to retrieve information. I needed to identify the scopes on each server, where their databases were located, and some general idea of the usage of each scope. And I needed to record this to a text file. So I decided to go into each server and get targeted information from each one.
So I dug up the following commands:
- server \Server01 — Switches which server information is retrieved from. Or, type: server\IPAddress which takes us to the netsh dhcp server> prompt, then I retrieved the information that I wanted using the following commands.
- show scope — Shows basic scope information
- show mibinfo — show scope use information
- show dbproperties — shows Database information
There are several other commands available, use /help to search for the one you need and you can reference this for usage: http://technet.microsoft.com/en-us/library/cc787375.aspx.
You might also look at the dump command. This actually gives you information about the options of each scope when used at the server level. Or you can dig down into each scope using the command: scope ipaddress
Also the show optiondef command will give you the definitions of each scope option. Option 51 is lease time as measured in seconds (that being the most common one you’ll need.
And I discovered that I could run one after the other in a batch file, or in my case by modifying a text file and pasting into the command line.
- Netsh
- dhcp
- server \Server01
- show scope
- show mibinfo
- show dbproperties
- server \Serverdc01
- show scope
- show mibinfo
- show dbproperties
- server \Serverdc02
- show scope
- show mibinfo
- show dbproperties
- server \Serverrdp01
- show scope
- show mibinfo
- show dbproperties
Unfortunately, piping the command out to a text file (>c:output.txt) didn’t work and I didn’t have Powershell on the network (Start-Transcript…..). So I ended up listing two or three servers at a time, while using the select all, cut, and paste commands in the CMD.exe window to paste the text into a notepad file.
All in all, a way quicker and cooler way of collecting DHCP information across the organization, than using the GUI.