VBScript , Вопросы Дата публикации: 19.07.2009 - 07:46
Nicolay_7, 27.06.2009 - 13:27
Решил потестить этот скрипт добавления юзверов в AD из txt файлика. Почему то не работают аттрибуты службы терминалов ...? TerminalServicesProfilePath TerminalServicesHomeDirectory В чём грабли .... кто ответит Сообщение об ошибке: Указанное значение или аттрибут службы каталогов не существует Set filesys = CreateObject("Scripting.FileSystemObject") Set InFile = filesys.OpenTextFile("c:\users.txt", 1) Set objRootDSE = GetObject("LDAP://RootDSE") strDNSDomain = objRootDSE.Get("defaultNamingContext") While Not InFile.AtEndOfStream sInString = InFile.ReadLine sADName = Split(sInString, ",")(0) sLogonName = Split(sInString, ",")(1) sPassword = Split(sInString, ",")(2) sGroup = Split(sInString, ",")(3) sOU = Split(sInString, ",")(4) sOfficeName= Split(sInString, ",")(5) sDName= Split(sInString, ",")(6) sLogonScript= Split(sInString, ",")(7) sScPath= Split(sInString, ",")(8) sHDrive= Split(sInString, ",")(9) sTermProf= Split(sInString, ",")(10) sTermHDir= Split(sInString, ",")(11) Set objOU = GetObject("LDAP://ou=" & sOU & "," & strDNSDomain) sOUdn = objOU.Get("distinguishedName") Set objGroup = GetObject("LDAP://cn=" & sGroup & "," & sOUdn) Set objUser = objOU.Create("user", "cn=" & sADName) objUser.Put "SAMAccountName", sLogonName objUser.Put "userPrincipalName", sLogonName objUser.SetInfo objUser.AccountDisabled = false objUser.Put "physicalDeliveryOfficeName", sOfficeName objUser.Put "displayName", sDName objUser.Put "ProfilePath", sScPath objUser.Put "ScriptPath", sLogonScript objUser.Put "HomeDirectory", sHDrive sHDrive objUser.Put "HomeDrive", "Z" objUser.Put "TerminalServicesProfilePath", sTermProf objUser.Put "TerminalServicesHomeDirectory", sTermHDir objUser.SetPassword sPassword objUser.SetInfo objGroup.Add objUser.ADSPath objGroup.SetInfo Wend
charodey_mag, 2.07.2009 - 13:35
C этой странички проверял такой код:
Code
Const Enabled = 1 Const Disabled = 0 Set objUser = GetObject _ ("LDAP://cn=MyerKen,ou=Management,dc=NA,dc=fabrikam,dc=com") objUser.TerminalServicesProfilePath = "" objUser.TerminalServicesHomeDirectory = "" objUser.TerminalServicesHomeDrive = "" objUser.AllowLogon = Enabled objUser.SetInfo
Все работает, только изменения проявляются иногда с задержкой несколько секунд...
Nicolay_7, 7.07.2009 - 16:46
Если вместо этого objUser.Put "TerminalServicesProfilePath", sTermProf добавить это objUser.TerminalServicesProfilePath = sTermProf 'работает
Nicolay_7, 19.07.2009 - 7:46
Помогите разобратся Нужно поставить галочку для всех пользователей >>> Запретить смену пароля пользователем Как в первом так и втором варианте показывает ошибкуКод защиты данных имеет неверную структуру Win 2003 R2 Stan SP2 x86Вариант № 1 Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6 Const ADS_ACEFLAG_OBJECT_TYPE_PRESENT = &H1 Const CHANGE_PASSWORD_GUID = "{ab721a53-1e2f-11d0-9819-00aa0040529b}" Const ADS_RIGHT_DS_CONTROL_ACCESS = &H100 Set objUser = GetObject _ ("LDAP://cn=myerken,ou=management,dc=fabrikam,dc=com") Set objSD = objUser.Get("ntSecurityDescriptor") Set objDACL = objSD.DiscretionaryAcl arrTrustees = array("nt authority\self", "EVERYONE") For Each strTrustee in arrTrustees Set objACE = CreateObject("AccessControlEntry") objACE.Trustee = strTrustee objACE.AceFlags = 0 objACE.AceType = ADS_ACETYPE_ACCESS_DENIED_OBJECT objACE.Flags = ADS_ACEFLAG_OBJECT_TYPE_PRESENT objACE.ObjectType = CHANGE_PASSWORD_GUID objACE.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS objDACL.AddAce objACE Next objSD.DiscretionaryAcl = objDACL objUser.Put "nTSecurityDescriptor", objSD objUser. SetInfoВариант № 2 почти тоже самое strUserDN = "xxx" ' e.g. cn=rallen,ou=Sales,dc=rallencorp,dc=com Const ACETYPE_ACCESS_DENIED_OBJECT = 6 Const ACEFLAG_OBJECT_TYPE_PRESENT = 1 Const RIGHT_DS_CONTROL_ACCESS = 256 Const CHANGE_PASSWORD_GUID = "{ab721a53-1e2f-11d0-9819-00aa0040529b}" set objUser = GetObject("LDAP://" & strUserDN) set objSD = objUser.Get("ntSecurityDescriptor") set objDACL = objSD.DiscretionaryAcl ' Add a deny ACE for Everyone set objACE = CreateObject("AccessControlEntry") objACE.Trustee = "Everyone" objACE.AceFlags = 0 objACE.AceType = ACETYPE_ACCESS_DENIED_OBJECT objACE.Flags = ACEFLAG_OBJECT_TYPE_PRESENT objACE.ObjectType = CHANGE_PASSWORD_GUID objACE.AccessMask = RIGHT_DS_CONTROL_ACCESS objDACL.AddAce objACE ' Add a deny ACE for Self set objACE = CreateObject("AccessControlEntry") objACE.Trustee = "Self" objACE.AceFlags = 0 objACE.AceType = ACETYPE_ACCESS_DENIED_OBJECT objACE.Flags = ACEFLAG_OBJECT_TYPE_PRESENT objACE.ObjectType = CHANGE_PASSWORD_GUID objACE.AccessMask = RIGHT_DS_CONTROL_ACCESS objDACL.AddAce objACE objSD.DiscretionaryAcl = objDACL objUser.Put "nTSecurityDescriptor", objSD objUser.SetInfo WScript.Echo "Enabled no password changing for " & strUserDN
SoftoRooM © 2004-2024