|
|
![]() Как с командной строки проверить роли мастеров операций Flexible Single-Master Operation (FSMO) для локального сервера?Вопрос: Ответ: Для выполнения сценария нужно ввести с командной строки cscript //nologo localsrvroles.vbs Пример вывода сценария: PDC RIS Infrastructure Schema Domain Naming Обратите внимание, что сценарий не выводит ничего кроме ролей, которые выполняет данный компьютер (в приведенном примере сервер выполняет 5 ролей FSMO). Джон Севилл - Консультант, автор книги «The Windows NT and Windows 2000 Answer Book» (Addison Wesley), имеет сертификат MCSE. С ним можно связаться по адресу: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script . Листинг 1********************
Option Explicit
Dim WSHNetwork, objArgs, ADOconnObj, bstrADOQueryString, RootDom,
RSObj
Dim FSMOobj,CompNTDS, Computer, Path, HelpText, LocalDNSName,
strComputerDN, objSysInfo, objComputer
Set WSHNetwork = CreateObject("WScript.Network")
Path = WSHNetwork.ComputerName
Set objSysInfo = CreateObject("ADSystemInfo")
strComputerDN = objSysInfo.ComputerName
Set objComputer = GetObject("LDAP://" & strComputerDN)
LocalDNSName = objComputer.dNSHostName
Set ADOconnObj = CreateObject("ADODB.Connection")
ADOconnObj.Provider = "ADSDSOObject"
ADOconnObj.Open "ADs Provider"
'PDC FSMO
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)
if StrComp(LocalDNSName, Computer.dnsHostName) = 0 then
WScript.Echo "PDC"
end if
'Rid FSMO
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)
if StrComp(LocalDNSName, Computer.dnsHostName) = 0 then
WScript.Echo "RIS"
end if
'Infrastructure FSMO
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)
if StrComp(LocalDNSName, Computer.dnsHostName) = 0 then
WScript.Echo "Infrastructure"
end if
'Schema FSMO
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)
if StrComp(LocalDNSName, Computer.dnsHostName) = 0 then
WScript.Echo "Schema"
end if
'Domain Naming FSMO
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)
if StrComp(LocalDNSName, Computer.dnsHostName) = 0 then
WScript.Echo "Domain Naming"
end if
********************
Windows & .NET Magazine/RE // Издательство "Открытые системы" (www.osp.ru) Постоянный адрес статьи: http://www.osp.ru/win2000/worknt/qna/406_2.htm |





