Настройка свойств пользователей через интерфейсы Active Directory Service
Использование графических утилит для конфигурации пользователей удобно, если у вас мало пользователей. Но если вам необходимо конфигурировать большое число пользователей, то легче это делать с использованием интерфейса службы активного каталога (Active Directory Service Interfaces, ADSI). По сравнению с Win2K эта особенность значительно улучшена.
Доступ к ADSI осуществляется через Windows Script Host (WSH), поэтому вы можете использовать скрипты на Visual Basic Script (VBScript) или Java Script. Примеры, приведенные далее, написаны на VBScript.
Конфигурирование пользователей через ADSI состоит из трех этапов. Сначала вы должны открыть соединение с учетной записью пользователя, затем установить свойства, и наконец записать изменения в учетную запись пользователя. Для открытия соединения вы используете либо провайдера WinNT, либо LDAP. Провайдер WinNT используется записями Security Accounts Manager (SAM) - либо локальными учетными записями на терминальном сервере, либо записями в домене NT 4.0. LDAP используется для учетных записей пользователей в АD.
Хотя вы можете использовать эти скрипты для конфигурирования как учетных записей домена NT 4.0, так и Win2K AD, вы можете запустить их только на сервере WS2K3; они не будут работать на Win2K и даже на Windows XP.
Синтаксис для соединения:
Set objUser = GetObject(“WinNT://<domain name>/<username>,user”
или
Set obUser = Get Object(“LDAP://<distinguished name of user>”)
Как видно, для использования LDAP вы должны знать отличительное имя объекта пользователя (например, cn=joe.user,ou=users,dc=example,dc=domain,dc=com), что нелегко, если ваши пользователи расположены в нескольких OU. Для облегчения этого Microsoft разрешила использовать провайдера WinNT также для учетных записей AD. Контроллер домена автоматически транслирует вызовы WinNT в вызовы LDAP.
Открыв учетную запись, вы устанавливаете параметры, которые хотите изменить. Имена параметров Terminal Services и синтаксис их использования приведены ниже:
objUser.ConnectClientDrivesAtLogon = [1,0]
objUser.ConnectClientPrintersAtLogon = [1,0] ObjUser.DefaultToMainPrinter = [1,0]objUser.TerminalServicesInitialProgram = [“path to program”]objUser.TerminalServicesWorkDirectory = [“path to directory”]objUser.TerminalServicesProfilePath = [“path to directory”]objUser.TerminalServicesHomeDirectory = [“path to directory”]objUser.TerminalServicesHomeDrive = [“drive letter:”]objUser.AllowLogon = [1,0]objUser.MaxDisconnectionTime = [minutes, 0 for never]objUser.MaxConnectionTime = [minutes, 0 for never]objUser.MaxIdleTime = [minutes, 0 for never]objUser.BrokenConnectionAction = [1,0] 1 = end session, 0 = disconnect the sesionobjUser.ReconnectionAction = [1.,0] 1 = original client only, 0 = any clientobjUser.EnableRemoteControl = [0,1,2,3,4]0 = Disable Remote Control 1 = Enable Notify & Enable Interact 2 = Disable Notify & Enable Interact 3 = Enable Notify & Disable Interact 4 = Disable Notify & Disable Interact
Наконец, вы должны сохранить изменения в учетной записи пользователя:
objUser.SetInfo
Теперь объединим все это вместе и настроим параметры для одной учетной записи пользователя:
Set objUser = GetObject(“LDAP://cn=joe.user,ou=users,dc=example,dc=domain,dc=com”)‘ илиr: Set objUser = GetObject(“WinNT://example/joe.user,user”)objUser.ConnectClientDrivesAtLogon = 1objUser.ConnectClientPrintersAtLogon = 1 objUser.DefaultToMainPrinter = 1objUser.TerminalServicesInitialProgram = “C:\windows\notepad.exe”objUser.TerminalServicesWorkDirectory = “c:\windows”objUser.TerminalServicesProfilePath = “\\server\tsprofiles\joe.user”objUser.TerminalServicesHomeDirectory = “\\server\home\joe.user”objUser.TerminalServicesHomeDrive = “H:”objUser.AllowLogon = 1objUser.MaxDisconnectionTime = 15objUser.MaxConnectionTime = 0objUser.MaxIdleTime = 180objUser.BrokenConnectionAction = 0objUser.ReconnectionAction = 0objUser.EnableRemoteControl = 1objUser.SetInfo
Конечно, если вам нужно сконфигурировать одну учетную запись, то быстрее и проще это сделать графической утилитой, но ADSI удобен для одновременного конфигурирования свойств для множества пользователей.
Microsoft TechNet Script Center (http://www.microsoft.com/technet/scriptcenter) - отличный ресурс для административных скриптов. Даже с небольшим знанием программирования вы можете изменить примеры скриптов, приспособив их для своих нужд.