none
OSX and Windows Vista / 7 master browsers

    Question

  • Hi all,

    Just so you know I have also posted this question on Apple's discussion forums to see what responses I get there.  Additionally I have continued to research this issue on the net and it seems there a numerous suggestions which some how have worked for only some people.   I would prefer to know why this issue is occurring, not a guess or speculation.  At this point I know exactly what is happening, but am not sure exactly why its happening and what to do to resolve it, so with that here is my explanation (sorry that its quite long):

    I have spent a good deal of time troubleshooting this issue with my OSX machines being unable to browse to my windows machines through the network window of Finder. I currently have 2 Macbooks running 10.5.8 that both have the same issue. On the windows side I have 2 XP machines, 1 Vista and 1 Windows 7 RC1. I have configured both Leopard systems to be on the same Windows workground, I am not aware of how to set this on tiger but it doesn't seem to make a difference anyhow.  Originally I thought my iMac running Tiger was also having the issue that the Leopard macs have, but I have found that it will act as its own master browser and works fine after doing a little more troubleshooting.

    I have found that the macs can only browse to my windows machines if one of my XP systems is the master browser. If I allow either my 7 or Vista systems to be the master browser my macs cannot browse my windows workgroup at all, and I get mixed results trying to connect by using "Connect to server" and putting in the windows name, but it always works by IP address. To be sure of what I found I disabled the computer browser service on all of my windows machines and then left one enabled at a time until I found that my macs can browse fine with XP as the master browser.

    I also used the "nbtstat -a <computer name>" command to verify which PC was my master browser from a windows command prompt. Also on my macs I used the command "nmblookup -M -- -," command to confirm my XP machine was the master browser.

    I did a little searching on the net and found one site where the person reported similar results:
    http://robmulally.blogspot.com/2009/03/macbook-master-browser-and-my-mate.html

    I know that it is also possible for one of my macs to act as a master browser by configuring samba, but I would prefer to use my windows systems as I leave them running most of the time, where as I mainly use my one macbook and it is only on when I use it. I would much rather know the answer why and possibly how to fix it rather than just doing a work around.

    Does anyone know what the issue is with OSX not being able to utilize a Windows Vista or 7 master browser? Theres not a whole lot of settings to play with on the windows side, the service is either on or off so I wasn't sure what else to try. I am going to be replacing XP on my systems as soon as the full release of Win 7 is out so I would like to resolve this before then.

    If anyone has ideas I would really appreciate it.

    Thanks all!
    Greg
    Friday, September 4, 2009 3:06 PM

Answers

  • Well I have found a work around, although it is not a perfect solution, it gets the job done and it definitely works, and should work for anyone else who tries it.  If anyone does happen to try it I would definitely be interested in your results.  Also if anyone knows a lot more about what changed in Vista / 7 / server 2008 where they no longer respond to OSX 'smbserver' requests (explained more below) or a possible 'correct' was to resolve this I would be interested in knowing.  I tested the work around by reversing the changes and repeating the steps on both my Vista and 7 systems and it worked in both cases.

    I did several tests watching packet traffic with Wireshark on Vista and XP while each was the master browser.  I don't know 100% why this works this way, and while I would like to share with you all the packet logs I saved, I do not know of an easy way to strip my computer name info and would prefer not to post this on the internet.

    I found that OSX requests a NBSS (NetBIOS Session Service) session by a couple of different 'names' - the IP address, the network class - 192 in this case, and by something called *SMBSERVER.  In the case of Windows XP it responds with a 'Positive session response' only when OSX sends the request to *SMBSERVER.  In the case of Vista it returns a 'Negative session response, called name not present' to all three recipient names that OSX tries.  On XP once the NBSS session is established you then see communication on the LANMAN and SMB protocols.

    I found that there is a registry setting to add a NetBIOS alias that you can add to your Vista or Win7 registry under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters called OptionalNames - make it a string or multistring, once created open it up and put in the IP address of your master browser computer (note that you must have a static IP configured on that system because if it ever changes this work around will stop working). 

    After you have made the change close out of the registry and go to Start and type Services.msc in the quicksearch bar.  In Services scroll down to the 'Server' service and restart it, it will ask to restart Computer Browser and Homegroup Listener (the HG Listener will only be on Win 7), just say Yes.  Now you will need to refresh your network adapter on OSX, do this by unplugging and plugging back in the network cable or by disconnecting from your wireless access point and then reconnecting.  After a few minutes you should see your windows machines start to show up in Finder on your Mac, it could take as long as thirty minutes for them to show up as the Master Browser builds its cache and then distributes it to other computers.  The one thing that is 'bad' about this work around is that you will also see the IP address of your Windows Master Browser in your network list of Finder, this is because of the alias that was created in the registry.

    Also note that if you have multiple windows systems on your network you will need to do this work around on EACH computer that you want to be a potential master browser, as well you will need to Stop and Disable the Computer Browser service on any machines you do not want acting as a master browser.  Keep in mind to be careful whenever you are editing your registry, always do a full backup of the registry before making changes.

    Some other things which may be important (but I did not test yet) -
    1.  I have my Mac's set on a 'custom' network type - go to System Preferences | Network and hit the drop down at the top called 'Locations' and go to 'edit locations' and create a new one.
    2.  Select your network adapter from the left and go to Advanced | WINS and type in the name of your windows workgroup.  If you use both hardwire and wireless ethernet be sure to repeat this step for both adapters
    3.  On my Windows Vista machine I have already changed a network security setting which may prevent this from working.  By default Vista will force NTLMv2 communication which causes issues trying to connect to apple computers from a windows machine.  Although this should only be an issue when connecting to an OSX system FROM Vista, I did observe in doing packet tracing that an NTLMv1 session was negotiated so this may be helpful for some folks (it should not stop the computer list from displaying but may stop you from connecting to computers).  Open up 'gpedit.msc' by going to Start and typing it in the quick search bar.  Drill down from Local Security Policy | Computer Configuration | Windows Settings | Security Settings | Local Policies | Security Options and then look for the setting 'Network Security: LAN Manager authentication level' - open it up and change the drop down to 'Send LM & NTLM - use NTLMv2 session security if negotiated' and click Apply. Note that in Win7 this setting is disabled by default.
    4.  I also had issues restarting the Server service on my Windows 7 machine, sometimes it would fail to restart or report that one service could not be stopped (I didn't record the exact error message).  If you get this just restart the system and it will easily take care of the issue.
    5.  You may also want to make your Master Browser system the 'preferred' MB on your network to do this go in the Registry to HKLM\CurrentControlSet\Services\Browser\Parameters, open the MaintainServerList string and change the value data to Yes.  Then create a new string named 'IsDomainMaster' open it and enter Yes for value data.  This will not force the system to always be the the MB, but will make it much more likely if any other windows machines connect to your network in the future.
    6.  If you have a WINS server it makes life 100 times easier, just set the WINS server addy on your network preferences on your mac, or have it pushed down through DHCP and life is good, your computers will display in Finders Network pane.  But who wants to have a WinNT/2000/2003 server running in their house?

    As I said before, there is probably a better way to get this working but I have not found it yet.  For now I am satisfied as it is, but I may try doing more searching on this just out of curiosity.  I also hope that Apple and/or Microsoft will resolve this issue as this is a very annoying pain point for users and it doesn't help anyone by not having it work, it shouldn't take all the above steps just to be able to click on my Windows machines from a list on OSX and access shares.  I know the typical answer from both companies would be "well it is because the other company does not support this or that feature", if thats the case, fix it.  Ok, not trying to rant to much, I do hope that some of the developers of either product actually read this and see this as a necessary thing to resolve.

    I hope that this helps someone out there looking to resolve this issue as well.

    Take care,
    Greg



    • Marked as answer by greg709er Monday, September 7, 2009 11:06 PM
    Monday, September 7, 2009 10:51 PM

All replies

  • EDIT: removed this reply as I found it was not related to my issue.  Thanks! -Greg
    • Edited by greg709er Monday, September 7, 2009 10:52 PM
    Friday, September 4, 2009 11:06 PM
  • Well I have found a work around, although it is not a perfect solution, it gets the job done and it definitely works, and should work for anyone else who tries it.  If anyone does happen to try it I would definitely be interested in your results.  Also if anyone knows a lot more about what changed in Vista / 7 / server 2008 where they no longer respond to OSX 'smbserver' requests (explained more below) or a possible 'correct' was to resolve this I would be interested in knowing.  I tested the work around by reversing the changes and repeating the steps on both my Vista and 7 systems and it worked in both cases.

    I did several tests watching packet traffic with Wireshark on Vista and XP while each was the master browser.  I don't know 100% why this works this way, and while I would like to share with you all the packet logs I saved, I do not know of an easy way to strip my computer name info and would prefer not to post this on the internet.

    I found that OSX requests a NBSS (NetBIOS Session Service) session by a couple of different 'names' - the IP address, the network class - 192 in this case, and by something called *SMBSERVER.  In the case of Windows XP it responds with a 'Positive session response' only when OSX sends the request to *SMBSERVER.  In the case of Vista it returns a 'Negative session response, called name not present' to all three recipient names that OSX tries.  On XP once the NBSS session is established you then see communication on the LANMAN and SMB protocols.

    I found that there is a registry setting to add a NetBIOS alias that you can add to your Vista or Win7 registry under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters called OptionalNames - make it a string or multistring, once created open it up and put in the IP address of your master browser computer (note that you must have a static IP configured on that system because if it ever changes this work around will stop working). 

    After you have made the change close out of the registry and go to Start and type Services.msc in the quicksearch bar.  In Services scroll down to the 'Server' service and restart it, it will ask to restart Computer Browser and Homegroup Listener (the HG Listener will only be on Win 7), just say Yes.  Now you will need to refresh your network adapter on OSX, do this by unplugging and plugging back in the network cable or by disconnecting from your wireless access point and then reconnecting.  After a few minutes you should see your windows machines start to show up in Finder on your Mac, it could take as long as thirty minutes for them to show up as the Master Browser builds its cache and then distributes it to other computers.  The one thing that is 'bad' about this work around is that you will also see the IP address of your Windows Master Browser in your network list of Finder, this is because of the alias that was created in the registry.

    Also note that if you have multiple windows systems on your network you will need to do this work around on EACH computer that you want to be a potential master browser, as well you will need to Stop and Disable the Computer Browser service on any machines you do not want acting as a master browser.  Keep in mind to be careful whenever you are editing your registry, always do a full backup of the registry before making changes.

    Some other things which may be important (but I did not test yet) -
    1.  I have my Mac's set on a 'custom' network type - go to System Preferences | Network and hit the drop down at the top called 'Locations' and go to 'edit locations' and create a new one.
    2.  Select your network adapter from the left and go to Advanced | WINS and type in the name of your windows workgroup.  If you use both hardwire and wireless ethernet be sure to repeat this step for both adapters
    3.  On my Windows Vista machine I have already changed a network security setting which may prevent this from working.  By default Vista will force NTLMv2 communication which causes issues trying to connect to apple computers from a windows machine.  Although this should only be an issue when connecting to an OSX system FROM Vista, I did observe in doing packet tracing that an NTLMv1 session was negotiated so this may be helpful for some folks (it should not stop the computer list from displaying but may stop you from connecting to computers).  Open up 'gpedit.msc' by going to Start and typing it in the quick search bar.  Drill down from Local Security Policy | Computer Configuration | Windows Settings | Security Settings | Local Policies | Security Options and then look for the setting 'Network Security: LAN Manager authentication level' - open it up and change the drop down to 'Send LM & NTLM - use NTLMv2 session security if negotiated' and click Apply. Note that in Win7 this setting is disabled by default.
    4.  I also had issues restarting the Server service on my Windows 7 machine, sometimes it would fail to restart or report that one service could not be stopped (I didn't record the exact error message).  If you get this just restart the system and it will easily take care of the issue.
    5.  You may also want to make your Master Browser system the 'preferred' MB on your network to do this go in the Registry to HKLM\CurrentControlSet\Services\Browser\Parameters, open the MaintainServerList string and change the value data to Yes.  Then create a new string named 'IsDomainMaster' open it and enter Yes for value data.  This will not force the system to always be the the MB, but will make it much more likely if any other windows machines connect to your network in the future.
    6.  If you have a WINS server it makes life 100 times easier, just set the WINS server addy on your network preferences on your mac, or have it pushed down through DHCP and life is good, your computers will display in Finders Network pane.  But who wants to have a WinNT/2000/2003 server running in their house?

    As I said before, there is probably a better way to get this working but I have not found it yet.  For now I am satisfied as it is, but I may try doing more searching on this just out of curiosity.  I also hope that Apple and/or Microsoft will resolve this issue as this is a very annoying pain point for users and it doesn't help anyone by not having it work, it shouldn't take all the above steps just to be able to click on my Windows machines from a list on OSX and access shares.  I know the typical answer from both companies would be "well it is because the other company does not support this or that feature", if thats the case, fix it.  Ok, not trying to rant to much, I do hope that some of the developers of either product actually read this and see this as a necessary thing to resolve.

    I hope that this helps someone out there looking to resolve this issue as well.

    Take care,
    Greg



    • Marked as answer by greg709er Monday, September 7, 2009 11:06 PM
    Monday, September 7, 2009 10:51 PM
  • Greg,

    I have put hours upon hours into researching this issue.  I feel like you're the first one that is actually targeting the issue, not just the quick fix.  Have you made any further progress on this?  I will be trying your suggestion tomorrow, since I can't at the moment (really the NetBIOS alias registry hack, since everything else you suggest I have already done like NTLMv1 etc).  Just wondering if you've had an update to this.

    Ditto on the being thrown back and forth between apple and microsoft.  One side note, I changed my workgroup from the default (WORKGROUP) to a custom one, and for a brief time (under 15 minutes) the workgroup showed up automatically in the mac osx network/advanced/wins tab as a dropdown (actually both WORKGROUP and the custom one).  Additionally under add a printer, the windows tab showed both workgroups.  For the record, before that and since then I have NEVER been able to see those workgroups from the mac osx side no matter what I do (I can manually enter the workgroup but it doesn't seem to do anything).  I've been able to work around issues with bandaid solutions for file sharing (ie: rarely seeing pc's under shared in finder and having to manually connect as you said) but nothing allows me to connect to the windows printer share.

    I hope your suggestion straightens out the workgroup issue (which is vital for printing).  I have trouble suggesting mac to others when despite loving my MBP I have to qualify my purchase with the statement "It's amazing...but I can't print"!

    -Jonny
    Monday, February 1, 2010 7:32 AM
  • Greg,

    Following document could be the reason 'why' this is happening:

    http://blogs.msdn.com/sfu/archive/2009/06/24/removal-of-technology-services-for-macintosh-sfm.aspx

    Ketan.

    Saturday, February 20, 2010 12:36 PM
    Moderator
  • Greg,

    2010 mac mini server 10.5.6

    This seems promising i see this error message in SMB name service log:

    [2010/11/09 13:22:33, 0, pid=167] /SourceCache/samba/samba-235.4/samba/source/nmbd/nmbd_workgroupdb.c:dump_workgroups(282)
      dump_workgroups()
       dump workgroup on subnet     192.168.0.2: netmask=255.255.255.240:
          WORKGROUP(1) current master browser = SERVER
              SERVER 408c9a03 (Mac OS X Server)
              BRUCE-PC 40011003 ()
              RECEPTION1-PC 40011203 ()
              RECEPTION2-PC 40011003 ()
              ERIK-PC 40011003 ()
              BILLING-PC 40011003 ()
              KENT-PC 40011003 ()
              TIMECLOCK-PC 40011003 ()
              MELINDA-PC 40011203 ()
    [2010/11/09 13:22:33, 0, pid=167] /SourceCache/samba/samba-235.4/samba/source/nmbd/nmbd_workgroupdb.c:dump_workgroups(282)
      dump_workgroups()
       dump workgroup on subnet  UNICAST_SUBNET: netmask=    192.168.0.2:
          WORKGROUP(1) current master browser = UNKNOWN
              SERVER 40899a03 (Mac OS X Server)
    [2010/11/09 13:22:33, 0, pid=167] /SourceCache/samba/samba-235.4/samba/source/nmbd/nmbd_workgroupdb.c:dump_workgroups(282)
      dump_workgroups()
       dump workgroup on subnet     192.168.0.2: netmask=255.255.255.240:
          WORKGROUP(1) current master browser = SERVER
              SERVER 408c9a03 (Mac OS X Server)
              BRUCE-PC 40011003 ()
              RECEPTION1-PC 40011203 ()
              RECEPTION2-PC 40011003 ()
              ERIK-PC 40011003 ()
              BILLING-PC 40011003 ()
              KENT-PC 40011003 ()
              TIMECLOCK-PC 40011003 ()
              MELINDA-PC 40011203 ()
    [2010/11/09 13:22:33, 0, pid=167] /SourceCache/samba/samba-235.4/samba/source/nmbd/nmbd_workgroupdb.c:dump_workgroups(282)
      dump_workgroups()
       dump workgroup on subnet  UNICAST_SUBNET: netmask=    192.168.0.2:
          WORKGROUP(1) current master browser = UNKNOWN
              SERVER 40899a03 (Mac OS X Server)

    i've 8 windows 7 computers accessing shared files on the server. are they fighting for who is the MASTER BROWSER ?

    i also cannot see any W7 computers in the Finder unless i turn ON the guest mode on the SMB .

    I would like to try your solution, but i might misunderstand one thing. Can i specify the server IP address among all W7 registry creating the OptionalNames string ? Or does it have to be one of the Windows 7 computers and disabling MB on the server ?

    i've started a lot of threads elsewhere related:

    http://forums.macrumors.com/showthread.php?t=1042812

    http://forums.techguy.org/networking/955257-windows-7-computers-not-appearing.html

     

     

    please clarify and update

    www.lightimagination.net

     

    Tuesday, November 16, 2010 10:53 PM
  • Hi Greg,

    I don't have any Apple devices on my home network but I do have a couple of Linux machines and I do this. I assume your router handles dhcp/ip addresses for all your machines and devices like printers/smart tv's etc. Well make all the devices static by locking the ip address to their mac address with dhcp and create a lmhost file with the names and ip addresses. You plug the lmhost file just a txt file listing ips and machine names into each device you want to see from another. Ping one machine from another and it will find the ip address from the lmhost file. In Windows from the wins tab in network properties you tick lmhost lookup in winxp/vista/win7 then you can connect by name from one machine to another.

    regards Robert

    Wednesday, June 17, 2015 1:16 PM