Código: Selecionar todos
Option Explicit
Dim WSHNetwork, objArgs, ADOconnObj, bstrADOQueryString, RootDom, RSObj
Dim FSMOobj,CompNTDS, Computer, Path, HelpText
Set WSHNetwork = CreateObject("WScript.Network")
Set objArgs = WScript.Arguments
Select Case objArgs.Count
Case 0
Path = InputBox("Informe o netbios de seu dominio"&_
" conforme exemplo: 'DC=contoso,DC=local':","Ação do usuário requerida",WSHNetwork.ComputerName)
End Select
Set ADOconnObj = CreateObject("ADODB.Connection")
ADOconnObj.Provider = "ADSDSOObject"
ADOconnObj.Open "ADs Provider"
bstrADOQueryString = "<LDAP://"&Path&">;(&(objectClass=domainDNS)(fSMORoleOwner=*));adspath;subtree"
Set RootDom = GetObject("LDAP://RootDSE")
Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
Dim varPDCFSMO
varPDCFSMO = "PDC FSMO: " & Computer.dnsHostName
bstrADOQueryString = "<LDAP://"&Path&">;(&(objectClass=rIDManager)(fSMORoleOwner=*));adspath;subtree"
Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
Dim varRIDFSMO
varRIDFSMO = varPDCFSMO & vbcrlf & "RID FSMO: " & Computer.dnsHostName
bstrADOQueryString = "<LDAP://"&Path&">;(&(objectClass=infrastructureUpdate)(fSMORoleOwner=*));adspath;subtree"
Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
Dim varINFRAFSMO
varINFRAFSMO = varRIDFSMO & vbcrlf & "Infrastructure FSMO: " & Computer.dnsHostName
bstrADOQueryString = "<LDAP://"&RootDom.Get("schemaNamingContext")&_
">;(&(objectClass=dMD)(fSMORoleOwner=*));adspath;subtree"
Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
Dim varSCHMFSMO
varSCHMFSMO = varINFRAFSMO & vbcrlf & "Schema FSMO: " & Computer.dnsHostName
bstrADOQueryString = "<LDAP://"&RootDom.Get("configurationNamingContext")&_
">;(&(objectClass=crossRefContainer)(fSMORoleOwner=*));adspath;subtree"
Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
Dim varDOMAINFSMO
varDOMAINFSMO = varSCHMFSMO & vbcrlf & "Domain Naming FSMO: " & Computer.dnsHostName
wscript.echo varDOMAINFSMO