- •1. Присоединение компьютера к домену
- •Dsmove dn_объекта [-newname новое_имя] [-newparent dn_родителя]
- •2. Управление учетными записями компьютеров
- •3. Устранение неполадок с учетными записями компьютеров
- •О возможных проблемах с учетной записью компьютера
- •Создание объекта computer
- •Присоединение компьютера к домену
- •Перемещение объекта computer
- •Переименование компьютера
- •Переустановка учетной записи компьютера
Создание объекта computer
' Этот код создает объект computer
' ----- SCRIPT CONFIGURATION ------------
strBase = "<имя_род_конт_компьютера>" 'Например: cn=Computers,dc=povtas,dc=com
strComp = "<имя_компьютера>" 'Например: ivan-pc
strDescr = "<описание>" 'Например: ivan's Windows XP workstation
' ----- END CONFIGURATION ---------------
'Из перечисления ADS_USER_FLAG_ENUM
Const ADS_UF_WORKSTATION_TRUST_ACCOUNT = &h1000
set objCount = GetObject("LDAP://" & strBase)
set objComp = objCont.Create("computer","cn=" & strComp)
objComp.Put "sAMAccountName", strComp & "$"
objComp.Put "description", strDesc
objComp.Put "userAccountControl", ADS_UF_WORKSTATION_TRUST_ACCOUNT
objComp.SetInfo
Wscript.Echo "Computer account for " & strComp & " created"
Процедура создания объекта computer в Active Directory мало чем отличается от процедуры создания объекта user. В решениях с использованием командной строки и сценария на языке VBScript обычно (но не всегда) устанавливается значение атрибута description. Единственным обязательным атрибутом является отличительное имя компьютера, которое в сценарии на языке VBScript используется также для заполнения атрибута sAMAccountName, представляющего имя учетной записи SAM, — в него записывается имя компьютера с символом «$» на конце. Заметьте, что во всех решениях просто создается объект computer. Однако одного только его присутствия недостаточно для того, чтобы пользователь мог присоединить этот компьютер к домену.
Присоединение компьютера к домену
---------------------------------------------------------------------------
'Этот код присоединяет компьютер к домену
' ------- SCRIPT CONFIGURATION --------------
strComputer ="<имя_компьютера>" 'Например:ivan-pc
strDomain ="<имя_домена>" 'Например:povtas.com
strDomainUser ="<UPN-имя_пользователя>" 'Например:administrator@povtas.com
strDomainPassword ="<пароль_пользователя_домена>"
strLocalUser ="<администратор_компьютера>" 'Например:administrator
strLocalPasswd ="<пароль_пользователя_компьютера>"
' ------- END CONFIGURATION -----------------
'##################
'Константы
'##################
Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
Const ACCT_DELETE = 4
Const WIN9X_UPGRADE = 16
Const DOMAIN_JOIN_IF_JOINED = 32
Const JOIN_UNSECURE = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET = 256
Const INSTALL_INVOCATION = 262144
'##################
'Подключение к компьютеру
'##################
set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
objWMILocator.Security_.AuthenticationLevel = 6
set objWMIComputer = objWMILocator.ConnectServer(strComputer,
"root\cimv2",
strLocalUser,
strLocalPasswd)
set objWMIComputerSystem = objWMIComputer.Get(
"Win32_ComputerSystem.Name='"&
strComputer & "'")
'###################
'Присоединение к домену
'###################
rc = objWMIComputerSystem.JoinDomainOrWorkGroup(strDomain,
strDomainPasswd,
strDomainUser,
vbNullString,
JOIN_DOMAIN)
if rc<>0 then
WScript.Echo "Join failed with error: " & rc
else
WScript.Echo "Successfully joined " & strComputer & " to " & strDomain
end if
При необходимости присоединить компьютер к домену Active Directory нужно сначала создать представляющий его объект computer.
Для удаленного выполнения метода Win32_ComputerSystem::JoinDomainOrWorkGroup нужно установить параметр AuthenticationLevel равным 6, чтобы трафик между двумя компьютерами (а точнее, передаваемые между ними пароли) обязательно шифровался. Создать объект computer можно и с помощью метода JoinDomainOrWorkGroup, задав флаги ACCT_CREATE и JOIN_DOMAIN.
Примечание. Указанная возможность доступна только в Windows ХР и Windows Server 2003, но не в Windows 2000 и более ранних операционных системах.
Данный сценарий, равно как и утилиту netdom, нельзя выполнять для удаленного компьютера, на котором включена установка ForceGuest.