[Script] VBScript que retorna as roles FSMO dos servidores Windows do Dominio

Scripts diversos para automatizar tarefas em servidores ou auxilio com tarefas administrativas.
Avatar do usuário
marceloleaes
Administrator
Administrator
Mensagens: 1523
Registrado em: 10 Jun 2013 12:45
Localização: Novo Hamburgo
Idade: 42
Contato:
Status: Offline

[Script] VBScript que retorna as roles FSMO dos servidores Windows do Dominio

Mensagem por marceloleaes »

Script útil para consultar as roles fsmo durante processo de migração de dominios ou mesmo para ter a relação atual de sua floresta do AD quanto a quem é responsável por qual role.

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


"Transportai um punhado de terra todos os dias e fareis uma montanha." Confúcio

Voltar para “Scripts”