Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 210
Благодарности: 76

Профиль | Отправить PM | Цитировать


Иринка7, можете воспользоваться приведённым ниже сценарием (на VBS). Возможно, он поможет Вам разобраться в структуре домена. Запускать его надо либо на контроллере домена (любом), либо из-под "учётки" администратора домена. Сохраните код сценария в простом текстовом файле, но с расширением .VBS.
читать дальше »
Код: Выделить весь код
Dim objRoot, objServers, objSrv, objNTDS
Dim strDomain, arrBinds, arrFSMO, strList, intTemp, i
Dim objWMI, objCollection, objItem
Const NTDSDSA_OPT_IS_GC = 1

On Error Resume Next
Set objRoot = GetObject("LDAP://RootDSE")
If Err.Number = 0 Then
    strDomain = objRoot.Get("defaultNamingContext")
    If Err.Number = 0 Then
        Set objServers = GetObject("LDAP://cn=Servers,cn=Default-First-Site-Name,cn=Sites,cn=Configuration," & strDomain)
        If Err.Number = 0 Then
            strList = "Контроллеры:" & vbNewLine
            For Each objSrv In objServers
                strList = strList & objSrv.cn
                Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & objSrv.cn & "\root\cimv2")
                If Err.Number = 0 Then
                    Set objCollection = objWMI.ExecQuery("SELECT DomainRole FROM Win32_ComputerSystem")
                    For Each objItem In objCollection
                        If objItem.DomainRole = 5 Then
                            strList = strList & ", основной"
                        Else
                            strList = strList & ", дополнительный"
                        End If
                    Next
                Else
                    Err.Clear
                End If
                Set objNTDS = GetObject("LDAP://" & GetObject("LDAP://" & objSrv.cn & "/RootDSE").Get("dsServiceName"))
                intTemp = objNTDS.Get("options")
                If intTemp And NTDSDSA_OPT_IS_GC Then
                    strList = strList & ", глобальный каталог" & vbNewLine
                Else
                    strList = strList & vbNewLine
                End If
            Next
            Set objItem = Nothing: Set objCollection = Nothing: Set objWMI = Nothing: Set objNTDS = Nothing
            strList = strList & vbNewLine & "Хозяева FSMO:" & vbNewLine
            arrBinds = Array("LDAP://" & strDomain, "LDAP://" & objRoot.Get("schemaNamingContext"), _
                                "LDAP://CN=Partitions," & objRoot.Get("configurationNamingContext"), _
                                "LDAP://CN=RID Manager$,CN=System," & strDomain, "LDAP://CN=Infrastructure," & strDomain)
            arrFSMO = Array("эмулятор PDC - ", "схема - ", "именование домена - ", "относительные идентификаторы - ", "инфраструктура - ")
            For i = 0 To UBound(arrBinds)
                If Err.Number = 0 Then
                    Set objItem = GetObject(GetObject("LDAP://" & GetObject(arrBinds(i)).Get("fSMORoleOwner")).Parent)
                    If Err.Number = 0 Then
                        strList = strList & arrFSMO(i) & Mid(objItem.Name, 4) & vbNewLine
                    Else
                        strList = strList & arrFSMO(i) & "ошибка " & Err.Number & " привязки к объекту-хозяину" & vbNewLine
                        Err.Clear
                    End If
                Else
                    strList = strList & arrFSMO(i) & "ошибка " & Err.Number & " привязки к базовому объекту" & vbNewLine
                    Err.Clear
                End If
            Next
            Set objItem = Nothing
            WScript.Echo strList
        Else
            WScript.Echo "ошибка " & Err.Number & " привязки к контейнеру SERVERS" & vbNewLine
            Err.Clear
        End If
        Set objServers = Nothing
    Else
        WScript.Echo "ошибка " & Err.Number & " определения имени домена" & vbNewLine
        Err.Clear
    End If
Else
    WScript.Echo "ошибка " & Err.Number & " привязки к объекту RootDSE" & vbNewLine
    Err.Clear
End If
Set objRoot = Nothing
WScript.Quit 0

Отправлено: 13:30, 19-03-2013 | #12