JSI Tip 7401. How can I test a domain controller for a specific FSMO role?

Active Directory defines five FSMO (Flexible Single-Master Operations) roles:

Schema master
Domain naming master
RID master
PDC emulator

The schema master and domain naming master are per-forest roles. The remaining three, RID master, PDC emulator, and infrastructure master, are per-domain roles.

I have scripted IsRole.bat to test a specified server for a given role.

The syntax for using IsRole.bat is:

call isrole ServerName Role Answer


ServerName is the NetBIOS name of the server, with or without the leading \\.

Role       is the one of the following, and is NOT case sensitive:

Answer     is a call directed environment variable that will contain
                  a Y if the server holds the Role,
                  a N if the server does NOT hold the Role, or
                  a X if the server could not be contacted.
IsRole.bat contains:
@echo off
if ""=="%3" goto usage
set ans=N
set role=%2
set role="%role:"=%"
set run=Ntdsutil roles Connections "Connect to server %1" Quit "select Operation Target" "List roles for connected server" Quit Quit Quit 
for /f "Skip=4 Tokens=1" %%r in ('%run%') do if "!ans!" EQU "N" call :testrole "%%r"
endlocal&set %3=%ans%
goto :EOF
if "%ans%" EQU "X" goto :EOF
if /i %1 EQU "DsBindW" set ans=X&goto :EOF
if /i %1 EQU %role% set ans=Y
goto :EOF
@echo Syntax: IsRole ServerName Role Answer

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.