Я ИТ специалист или Жизнь ИТшника Это блог о моей работе, жизни и увлечениях! Решим ИТ проблемы вместе!

8Окт/100

Подключение сетевых папок пользователю домена

Этот пост содержит азбучную истину, которую обычно  использует каждый администратор , однако при этом не знает каждый новичок. Речь пойдет о монтировании сетевых папок пользователям домена при запуске РМ.

Когда я начинал свою Ит карьеру, мне нужна была  работа для студента, и я ее нашел в родном же институте,  где и начинал работу с самого нуля, спустя какое то время  мне понадобилось перевести крупный отдел на отдельный домен и организовать для них эффективную и удобную работу с многочисленными данными на файловом сервере.

Выбор естественно пал на  использование возможностей домена Active Directory. В нем очень просто реализовать различные действия с окружением пользователя используя политики GPO и скрипты.

Вообще можно пойти двумя путями:

1. Самый простой и трудоемкий. Если вам необходимо одному из пользователей, при загрузке подключать определенный набор сетевых папок или принтеров, для этого достаточно открыть свойства пользователя домена, и на вкладке профиль указать имя скрипта, который будет выполнятся при входе в систему:

Сам скрипт необходимо положить в общедоступную папку, и указывать полный путь  до него, или можно положить в папочку NETLOGON на контроллере домена. В скрипте можно использовать любые алгоритмы и задачи необходимые вам, ниже будет приведен простой пример монтирования сетевых папок.

Как можно увидеть это очень простой способ, однако он крайне неудобен при большом количестве пользователей и необходимости выполнения различных задач, именнно поэтому использование второго способа более актуально

2. Назначение скриптов на группы Подразделения, Organisation Unit или сокращенно OU. Сосбтвенно это иерархический элемент LDAP позволяющий организовывать древовидные структуры из вложенных групп пользователей. На каждую иp OU, мы можем применять самые различные политики GPO и управлять любыми мелочами в окружении пользователя или на ПК.

В моем случае мы имеем множество отделов и подоттделов у которых самые различные сетевые папки на сервере DFS и подключаемые принтеры рабочих групп. К примеру мы создаем на какое-либо OU простую политику test

Идем в свойства OUЗаходим в свойства OU, на вкладку Групповые политики -  Group Policy  и создаем новую политику кнопкой Создать. После чего, даем ей нормлаьное имя, к примеру -  test :)?

Создаем политику GPO нажимая кнопку Создать

Создаем политику GPOТеперь необходимо изменить политику так как нам надо, мы выделяем ее и нажимаем кнопку Изменить

Нам открываться консоль mmc c оснасткой групповой политики, мы не будем углубляться в ее описание и остановимся на самом. Имеется две ветки. Одна отвечает на настройки специфические для ПК, другая за настройки специфические для пользователя. т.к. как нам надо чтобы у пользователя при входе монтировалась сетевая папка, нам соответственно нужна вторая ветка.

gpo Добавляем скрипт загружаемый при входе пользователя

В ней мы перейдем в подветвь Конфигурация Windows -> Сценарии входа выхода, изменяем этот парметр и в открывшемся окне добавляем выполняемый сценарий? кнопкой Добавить, и затем  мы выбираем файл самым обычным способом. Файл в нашем случае будет скрипт VBS. Скрипт не сложный, он определяет логин пользователя и монтирует папку с таким же именем с файл сервера, после чего выводит некое привественное сообщение. Базируясь на нем вы можете создать скрипты  гораздо более сложные, чем это самый простой. Ну а комбинируя  и возможности программирования, к примеру анализируя тот же  логин пользователя, вы можете подключать не только сетевые папки. Да и забыл дабавить, что GPO из ветки  пользователя выполняются с правами пользователя.

Сам скрипт:

Dim objNetwork Dim strDriveLetter, strRemotePath
Set wshNetwork = WScript.CreateObject("WScript.Network") username=wshNetwork.Username

On Error Resume Next

Set colDrives = WSHNetwork.EnumNetworkDrives
For i = 0 To colDrives.Count - 1 Step 2         If (colDrives(i) = "M:") then         wshNetwork.RemoveNetworkDrive "M:"         End If

Next

strDriveLetter = "M:" strRemotePath = "\\server\files\"&usernamewshNetwork.MapNetworkDrive strDriveLetter,strRemotePath

i=0Set colDrives = WSHNetwork.EnumNetworkDrives
If colDrives.Count = 0 Then

MsgBox "Подключенных сетевых дисков нет",     _           vbInformation + vbOkOnly,              _           "Работа с WSHNetwork"

Else
strMsg = strMsg & "Бла Бла Бла " & Chr(10)
strMsg = strMsg & "Текущие сетевые подключения: " & Chr(10)

For i = 0 To colDrives.Count - 1 Step 2        strMsg = strMsg & Chr(10) & colDrives(i) & Chr(9) & colDrives(i + 1)    Next

End If
WScript.Echo "Добро пожаловать в Бла Бла " + chr(10)+strMSG

Скачать скрипт файлом вы можете тут

  test.vbs (1,1 KiB, 1 482 hits)