alecsandrb
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору ' Создание папок пользователей внесенных в AD и папок для отделов (OU) ' раздаются права для доступа к личным папкам пользователей ' принцип: Domain Admins - full, ' User - Full (only on personal folder), ' System - full, Set WshShell = CreateObject("Wscript.Shell") Set objConnection = CreateObject("ADODB.Connection") objConnection.provider = "ADsDSOObject" objConnection.Open ("Active Directory Provider") ' Запрос информации по всем учетным записям пользователей ' исправь строку запроса в соответствии со структурой твоего домена CommandText = "Select cn, name, distinguishedName, sAMAccountName" CommandText = CommandText + " from 'LDAP://OU=ou1,OU=ou2,DC=dc1,DC=dc2'" CommandText = CommandText + " where objectClass='person' and objectClass<>'computer'" CommandText = CommandText + " ORDER BY cn" Set objRecordset = CreateObject("ADODB.Recordset") objRecordset.Open CommandText, objConnection While Not objRecordset.EOF ' общая информация включая полный перечень всех OU dn = objRecordset.fields("distinguishedName").Value ' название имени пользователя для создания его личной папки UsersFolderName = objRecordset.fields("sAMAccountName").Value myArray = Split(dn, ",") Path = "" For Each rec In myArray If Left(rec, 3) = "OU=" Then Path = Mid(rec, 4) + Path End If Next DepartmentPath = Mid(Path, 12) ' создаем папку пользователя ' при запуске не на сервере а удаленно ' поменяй E:\Users на что-то вроде \\имя сервера\шара с папками пользователей FolderUser = "E:\Users\" + UsersFolderName Set objFld1 = CreateObject("Scripting.FileSystemObject") If objFld1.FolderExists(FolderUser) Then Else Set objFolder1 = objFld1.CreateFolder(FolderUser) End If ' аналогично можешь создать нужные тебе подпапки внутри уже созданной ' для пользователя папки ' формируем строку с назначением прав на личную папку ' положи xcacls.exe в папку со скриптом или укажи к нему полный путь в команде StrCmdRightUsers = "xcacls.exe " + FolderUser + " /g ""DOMAIN ADMINS"":F System:f " + UsersFolderName + ":f /y " RetVal = WshShell.Run("%COMSPEC% /c " & StrCmdRightUsers, 1, False) objRecordset.MoveNext Wend | Всего записей: 36 | Зарегистр. 03-09-2003 | Отправлено: 15:17 13-03-2006 | Исправлено: alecsandrb, 17:29 13-03-2006 |
|