- •1. Присоединение компьютера к домену
- •Dsmove dn_объекта [-newname новое_имя] [-newparent dn_родителя]
- •2. Управление учетными записями компьютеров
- •3. Устранение неполадок с учетными записями компьютеров
- •О возможных проблемах с учетной записью компьютера
- •Создание объекта computer
- •Присоединение компьютера к домену
- •Перемещение объекта computer
- •Переименование компьютера
- •Переустановка учетной записи компьютера
Перемещение объекта computer
' Этот код перемещает компьютер в заданный контейнер или подразделение
' --------- SCRIPT CONFIGURATION -----------
strCompDN = "<ОИ_компьютера>" 'Например:cn=ivan-xp,cn=users,dc=povtas,dc=com
strOUDN = "<ОИ_нового_род_контейнера>" 'Например:ou=workstations,dc=povtas,dc=com
' --------- END CONFIGURATION --------------
set ObjComp = GetObject("LDAP://" & strCompDN)
set objOU = GetObject("LDAP://" & strOUDN)
objOU.MoveHere objComp.ADsPath, objComp.Name
Перемещение объекта computer практически никак не отражается на его свойствах. Однако следует иметь в виду, что установки безопасности нового родительского подразделения могут сказаться на возможностях пользователей управлять данным объектом в Active Directory. Кроме того, если с новым родительским контейнером или подразделением был связан другой объект групповой политики, его установки повлияют на процесс загрузки и подключения компьютера.
Переименование компьютера
'Этот код переименовывает компьютер и записывает его новое имя в каталог Active Directory
' ------- SCRIPT CONFIGURATION --------------
strComputer ="<имя_компьютера>" 'Например:ivan-pc
strNewComputer ="<новое_имя_компьютера>" 'Например:ivan-xp
strDomainUser ="<UPN-имя_пользователя>" 'Например:administrator@povtas.com
strDomainPassword ="<пароль_пользователя_домена>"
strLocalUser ="<администратор_компьютера>" 'Например:administrator
strLocalPasswd ="<пароль_пользователя_компьютера>"
' ------- END CONFIGURATION -----------------
'##################
'Подключение к компьютеру
'##################
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.Rename(strNewComputer,
strDomainPasswd,
strDomainUser)
if rc<>0 then
WScript.Echo "Rename failed with error: " & rc
else
WScript.Echo "Successfully renamed " & strComputer & " to " & strNewComputer
end if
WScript.Echo "Rebooting..."
set objWSHShell = WScript.CreateObject("WScript.Shell")
objWSHShell.Run "shutdown.exe /r"
Чтобы переименовать компьютер, нужно выполнить два действия: переименовать в Active Directory объект computer и изменить имя самого компьютера. Для того чтобы сделать это за один раз, как показано выше, в Active Directory нужно иметь разрешение на переименование учетной записи, а на компьютере, подлежащем переименованию, - разрешения администратора.
Внимание.
В некоторых случаях переименование компьютера отражается на функционирующих на нем службах. Поэтому нельзя, скажем, переименовать компьютер, являющийся контроллером домена Windows 2000 или сервером сертификации Windows, не отключив в начале соответствующие службы.
Если компьютер, который вы хотите переименовать, не входит в состав домена, метод Win32_ComputerSystem::Rename должен выполняться на нем локально. Программное решение не позволяет задать для подключения имя и пароль пользователя, отличные от имени и пароля пользователя домена. По этой причине учетная запись, задаваемая при вызове метода Rename, должна иметь на переименовываемом компьютере права администратора (то есть быть членом группы Администраторы), а также иметь разрешение на переименование объекта computer в Active Directory.
Примечание. Данный метод является нововведением Windows ХР и Windows Server 2003, поэтому недоступен в Windows 2000 и более ранних операционных системах.