Hi,
When a user logs on, a getdcname request is sent to wins (I assume you are using wins). This returns the first 10 domain controllers listed in wins, the first of which is always the pdc. If none of the 10 are contactable, another request is made and the next 10 are sent. the client fires off requests to all 10, and uses the first to respond. This means that the logon server used by the clients can be any either the PDC or any of the BDC's. Now, if your logon script is referenced (as it probably is) by the
%logonserver% variable in user manager then the client will run the script from whatever DC it is using to log on - that being the server referenced by the logonserver variable (we've already established that could be any DC in the domain. You can see what server is logging the client on by opening a command prompt and typing
set l
which will show you the value for logonserver. Now, what to do about it. there are two approaches you could take. Firstly, change all the suers accounts at the site to to use the name of the local server rather than %logonserver% in user manager - this can be done by selecting all relevant accounts at once, selecting properties and making the change 'across the board'. Alternatively, use the reskit util setprfdc.exe. this allows you to specify what dc the client will use as it's preferred logon server. You will need to create a batch file calling the exe to be run locally on the machine at every logon (IE in the run key or startupfolder). Note that if the client is rebooted, it will not be until someone has logged on, and the script is run, that the preferred setting will take effect - and even then only the next time someone logs in. hope this helps....
BTW, this issue has been addressed in win2k with the sue of sites.