Схема такова: AD (dom.local), лес\домен 2008 - два сайта, в основном DC (DC01), во втором Read Only DC (RODC01) DC01, мастер всего, один интерфейс (10.0.0.1/24) ReadOnlyDC, два интерфейса, (10.0.0.2/24, 10.0.1.1/24 - филиал). Рутинга нет, компы со стороны филиала основной DC не видят. Домен контроллеры видят друг друга, пингаются, репликации проходят нормально. DHCP раздается, регестрируются. Пароли кешируются, ДНС работает нормально. Единственная засада - не могу подключить компы (Windows XP SP3) к домену со стороны филиала. На компах стоит обновление WindowsXP-KB944043.
Пользовался (http://blogs.dirteam.com/blogs/jorge/archive/2009/01/02/domain-join-through-an-rodc-instead-of-an-rwdc.aspx): На домен контроллере добавляю учетную запись для компа: ADMOD -replacedn DC=DOM,DC=local:_default -add -b "CN=WINXP-CHILD,CN=Computers,DC=dom,DC=local" "objectClass::computer" "sAMAccountName:: WINXP-CHILD$" "userAccountControl::4096" -kerbenc "unicodePwd::thereispassword" "dNSHostName::WINXP-CHILD.%USERDNSDOMAIN%" "servicePrincipalName:++:HOST/WINXP-CHILD;HOST/WINXP-CHILD.%USERDNSDOMAIN%" Добавляю комп в группу репликации. ADMOD -replacedn DC=DOM,DC=local:_default -b "CN=Allowed RODC Password Replication Group,CN=Users,DC=dub,DC=local" "member::"CN=WINXP-CHILD,CN=Computers,DC=dom,DC=local" Дожидаюсь репликацию, проверяю, пароли закешированы.
Затем на компке с XP запускаю .vbs --------------- 'Execute the VBS script: CSCRIPT DomainJoinAgainstRODC.vbs Const JOIN_DOMAIN = 1 ' Joins a computer to a domain. If this value is not specified, the join is a computer to a workgroup Const ACCT_CREATE = 2 ' Creates an account on a domain Const ACCT_DELETE = 4 ' Deletes an account when a domain exists Const WIN9X_UPGRADE = 16 ' The join operation is part of an upgrade from Windows 98 or Windows 95 to Windows 2000 or Windows NT Const DOMAIN_JOIN_IF_JOINED = 32 ' Allows a join to a new domain, even if the computer is already joined to a domain Const JOIN_UNSECURE = 64 ' Performs an unsecured join Const MACHINE_PASSWORD_PASSED = 128 ' The machine, not the user, password passed. This option is only valid for unsecure joins Const DEFERRED_SPN_SET = 256 ' Writing SPN and DnsHostName attributes on the computer object should be deferred until the rename that follows the join Const NETSETUP_JOIN_READONLY = 2048 ' Use an RODC to perform the domain join against Const INSTALL_INVOCATION = 262144 ' The APIs were invoked during install strDomain = "DOM.local" ' The FQDN of the AD domain strRODC = "RODC01.DOM.local" ' The FQDN of the RODC to use strPassword = "thereispassword" ' The custom password for the computer account Set objNetwork = CreateObject("WScript.Network") strComputer = objNetwork.ComputerName ' The NetBIOS name of the local computer Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & strComputer & "'") Wscript.echo("### STARTING ###") Wscript.echo("Trying to join the local computer to the AD domain using an RODC...") Wscript.echo("") ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain & "\" & strRODC, strPassword, NULL, NULL, JOIN_DOMAIN+MACHINE_PASSWORD_PASSED+NETSETUP_JOIN_READONLY) Select Case ReturnValue Case 0 strErrDescr = "The operation completed successfully" Case 5 strErrDescr = "Access is denied" Case 87 strErrDescr = "The parameter is incorrect" Case 1326 strErrDescr = "Logon failure: unknown username or bad password" Case 1355 strErrDescr = "The specified domain either does not exist or could not be contacted" Case 2691 strErrDescr = "The machine is already joined to the domain" End Select Wscript.echo("FQDN AD Domain : '" & strDomain & "'") Wscript.echo("FQDN RODC : '" & strRODC & "'") Wscript.echo("Local Computer Name : '" & strComputer & "." & strDomain & "'") Wscript.echo("Domain Join Result Code : '" & ReturnValue & "'") Wscript.echo("Domain Join Result Text : '" & strErrDescr & "'") Wscript.echo("") Wscript.echo("### FINISHED ###") -------------------- В итоге получаю "Access is denied". Без патча было "The parameter is incorrect" Пароли в скриптах совпадают. При прямом подключении к основному ДЦ подключается на ура.
Если пользовать не скрипт, а повершелл (согласно пророчеству и http://amaksimov.wordpress.com/2011/02/03/ad-ds-selection-of... Add-Computer -DomainName 'dom.local\RODC01' -Credential 'DOM\admin' -OUPath 'OU=Computers,DC=dom,DC=com' -PassThru -Verbose Ругается на отсутствие домена, в ошибке видно что пытается достучаться до DC01 и отваливается.
Не понимаю, где я ошибаюсь. Или может кто знает более простой (и желательно работающий) способ подключать компы в домен со стороны филиала? Давать доступ до основного ДЦ не вариант.
|
|