How to Determine the Master Browser in a Windows Workgroup

Here’s a little problem that drove me crazy: How do you determine the Master Browser in a Windows Workgroup?

First of all, lemme explain a bit about how a workgroup works. When you have a LAN set up running Windows machines, each machine can see all the others in Network Neighborhood (or just “Network” in Vista). If you want to see the files on another machine, you just go to Network Neighborhood, click, et voila!

The other method you can use is to open Windows Explorer (keyboard shortcut: Win-E) and in the location/address bar, type:


So, if you want to go to the computer called BALTHAZAR, you’d type:


And hit enter. This is handy to know if Network Neighborhood is not working. And a grumpy Network Neighborhood is exactly the reason why sometimes, you need to find out which computer is the Master Browser.

On a local area network (LAN), each computer “talks” to the others. Each computer has an IP address, like, and also a name. The name is what you call your computer so you and your friends don’t have to remember the IP address. In our example above, the computer name is BALTHAZAR, but the IP address might be Fabulous.

So, what happens is that each computer on the LAN must talk to the others. Since we’re only dealing with a workgroup, and there is no domain server, there is no computer to keep track of what machines are active on the network. This is where the Master Browser schtick comes into play.

What happens is that all the computers on your LAN hold an “election”. This election depends on a number of factors, but for the purposes of this discussion, we just have to know that all the computers get together and vote on who will be the Master Browser on the LAN. Once a computer is elected, it will keep track of what machines are connected to the LAN by more or less sending messages to say, “Yo! You still there?”

Of course, you may ask: What happens when the computer that is the Master Browser gets shut down when, say, I go to bed? In that case, you will find that your Network Neighborhood may not work so well. At that point, all the computers on the LAN get together again and they hold another election. As I understand it, there are one or more “Backup Master Browsers” waiting in the wings, but we’ll ignore that for now.

Now, what happens when you have Network Neighborhood turning up blank on you sporadically, or possibly missing several of the computers on your LAN from time to time? Well, in that case, you need to determine who is the Master Browser so that you can narrow down the problem to one computer and see if maybe you need an updated ethernet driver, or there are firewall problems, or whatever.

The “fun” way of doing this is with DOS commands. Here’s how you’d do it:

Open up a command prompt
Type net view and hit enter
Look at the list of computer names. These are the computers on your LAN. Note that the format is COMPUTER-NAME like I talked about above.
For each name in the list, type the following command: nbtstat -a COMPUTER-NAME

One of the results from the nbtstat commands will show a row with “_MSBROWSE_” in it. That means that this computer is the Master Browser.

Wasn’t that fun?

No, it wasn’t.

So, I wrote a little script in Ruby to do this for you. I needed to in order to troubleshoot a networking problem on one machine on my LAN, and I didn’t want to type 10-20 commands every time. But as long as I was writing it, I figured I would jack it up a bit. Here’s what it does:

net view net view /domain to determine the list of workgroup names
net view /domain:[WORKGROUP] to determine the list of puter names for each [WORKGROUP]
extracts the individual computer names and sticks them in an array
iterates through the array and calls ping -n 1 -4 COMPUTER-NAME on each computer name (we only want to display IPv4 addresses, hence the “-4” switch)
iterates through the array of IP addresses and calls nbtstat -A IP-ADDRESS (the “-A” means “I’m giving you an IP address instead of a computer name”. This is a more reliable way of doing things.)
After each call to nbtstat, it not only checks for the _MSBROWSE_ string, but it also records the MAC address of the network adapter in the remote computer.
iterates through all the data and displays a nicely formatted table, like so:

Scanning LAN...

BERT 00-18-C0-42-A3-B2 CHEESE
Q 00-28-F6-68-F5-48 WORKGROUP
RADDAR 00-02-0D-74-FC-33 CHEESE
MOP 00-1B-8C-56-01-52 CHEESE MASTER
AI 00-6A-83-6B-A0-83 WORKGROUP

Press any key to exit...

* See the full blog post here: