Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

emx (13-12-2006 21:07): http://forum.ru-board.com/topic.cgi?forum=8&topic=19088#1  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

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
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования
emx (13-12-2006 21:07): http://forum.ru-board.com/topic.cgi?forum=8&topic=19088#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru