Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > Операционные системы > Microsoft Windows > Windows 200x Server

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 13.11.2008, 02:14   #1
ViP
 
Пол:Мужской
Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
По умолчанию Организация папок пользователей и обмена в домене

В свете периодически обсуждаемых проблем с правами пользователей на папки выкладываю описание технологии, как это делаю я.
Политика такова.
  • На файл-сервере есть общий шаринг. Он же "файлопомойка", он же "папка для обмена", он же "common".
  • У каждого пользователя на сервере есть персональная папка, доступ к которой имеет только он. Она носит такое же имя, как и пользователь. Можно перенаправлять туда "Мои документы", почтовые базы и т.п.
  • Общий диск мы обычно подключаем логон-скриптом под буквой N каждому клиенту. Персональный диск - P.
  • Чтобы не плодить лишние шары на сервере, и common и все персональные папки лежат в одной папке - "personal folders" в корне диска на сервере. Зашарена эта самая родительская папка под именем "pf".
  • В список доступа (acl) на "personal folders" добавляем Domain Users.
  • Со всех папок пользователей снимаем наследование прав (это лучше делать, выделив их все скопом), копируем acl от родителя и удаляем оттуда Domain Users. Теперь в acl каждой папки добавляем пользователя, которому она принадлежит.

Итак, типовой логон-скрипт allusers.cmd:
Код:
@net use * /delete /yes
@net use N: \\server\PF\common
@net use P: \\server\PF\%username%
@net time \\server /set /y
@net use * /delete /yes
Сносим все шаринги пользователей, которые они могли наделать (зачем вы им вообще дали эти права?)
@net use N: \\server\PF\common
Подключаем общую папку. Механизм одинаков для всех.
@net use P: \\server\PF\%username%
А вот тут уже для каждого пользователя подключится своя папка. Замечу, что это прокатит только для англоязычных имён пользователей (не проверял!). Русские символы, imho, будут коверкаться, как обычно, командной строкой. Для их использования надо переделать этот скрипт под vbs.
@net time \\server /set /y
Синхронизируем время во всей сети с сервером.
Картина прекрасная, но какими усилиями она достигнута? В конторе 50 челов. Админу машинисткой клепать 50 папок, копируя их из списка AD? На это дело есть скриптик, который:
  • Создаёт Organizational Unit (OU) в AD. В дальнейшем вы можете создавать для него отдельную групповую политику.
  • Создаёт в этом OU пользователей, прописывает им дефолтный пароль, задаёт логон-скрипт (allusers.cmd). Сам логон-скрипт надо копировать в папку отдельно.
  • Создаёт общую папку и шарит её
  • Создаёт папки пользователей
Список пользователей берётся скриптом из текстового файла c:\users.txt, в котором эти имена написаны по одному в строке.
Далее приведён текст скрипта CreateUsers.vbs. Перед копированием прочитайте комментарии. Строки комментариев начинаются с апострофа.

Код:
Const PersonalFoldersPath = "D:\Personal folders"
Const UsersPassword = "DefPass90"

Const Enabled = 1
Const Disabled = 0
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' УСТАНОВКА ПАРАМЕТРОВ
Set objFSO = CreateObject("Scripting.FileSystemObject")
' проверяем существование файла C:\users.txt
If Not objFSO.FileExists("C:\users.txt") Then
	Wscript.Echo "Users list (c:\users.txt) does not exist."
	Return
End If

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\MicrosoftActiveDirectory")
Set colDomainInfo = objWMIService.ExecQuery("Select TreeName,DCName from Microsoft_LocalDomainInfo")
For each objDomain in colDomainInfo
	strTreeName = objDomain.TreeName
	strDCName = objDomain.DCName & "." & strTreeName
Next
strADsPath = "dc=" & Join(Split(strTreeName, "."), ",dc=")
' собираем имя DC

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ДОБАВИМ В РЕЕСТР ПОЛЕЗНЫЕ КЛЮЧИКИ
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.RegWrite("HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate" , 1, "REG_DWORD")
objShell.RegWrite("HKCR\Folder\Shell\MenuText\Command\", "cmd.exe /k cd " & chr(34) & "%1" & chr(34))
objShell.RegWrite("HKCR\Folder\Shell\MenuText\", "Command Prompt Here")

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' СОЗДАЁМ ПАПКИ И ШАРИМ ИХ
objFSO.CreateFolder(PersonalFoldersPath)
objFSO.CreateFolder(PersonalFoldersPath & "\Common")

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
objNewShare.Create(PersonalFoldersPath, "PF", 0, 32766, "Domain users personal folders")

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' СОЗДАЁМ OU
'старт или
 'создание OU
Set objDomain = GetObject("LDAP://" & strADsPath)
Set objOU = objDomain.Create("organizationalUnit", "ou=OU users")
objOU.SetInfo
'или
 'использование существующего OU
'Set objOU = GetObject("LDAP://ou=OU users," & strADsPath)
'конец или

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' СОЗДАЁМ ПОЛЬЗОВАТЕЛЕЙ В AD
Set objUsersList = objFSO.OpenTextFile("c:\users.txt", 1)

Do While objUsersList.AtEndOfStream = False
	strUserName = objScriptFile.ReadLine

	objFSO.CreateFolder(PersonalFoldersPath & "\" & strUserName)

	Set objUser = objOU.Create("User", "cn=" & strUserName)
	objUser.Put "givenName", strUserName
	objUser.Put "userPrincipalName", strUserName
	objUser.Put "sAMAccountName", strUserName
	objUser.Put "displayName", strUserName
	objUser.Put "homeDrive", "P:"
	objUser.Put "homeDirectory", "\\" & strDCName & "\pf\" & strUserName
	objUser.Put "scriptPath", "allusers.cmd"
	objUser.SetInfo

	objUser.AccountDisabled = False
	objUser.AllowLogon = Disabled
	objUser.SetPassword UsersPassword
	intUAC = objUser.Get("userAccountControl")
	objUser.Put "userAccountControl", intUAC Xor ADS_UF_DONT_EXPIRE_PASSWD
	objUser.SetInfo

Loop

objUsersList.Close
В скрипте не реализовано назначение полномочий на персональные папки пользователей. Ручками это делать геморно, поэтому рассчитываю, что в обсуждении мы найдём решение этой задачи.
PLAstic вне форума
 
Ответить с цитированием Вверх
Эти 3 пользователя(ей) сказали cпасибо за это полезное сообщение:
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама:


Старый 14.11.2008, 12:08   #2
pincer
Неактивный пользователь
 
Пол:Мужской
Регистрация: 11.11.2008
Сообщений: 8
Репутация: 4
По умолчанию Re: Организация папок пользователей и обмена в домене

А не легче создать группу в АД а не OU и работать с группой?
pincer вне форума
 
Ответить с цитированием Вверх
Старый 14.11.2008, 12:44   #3
PLAstic
ViP
 
Пол:Мужской
Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
По умолчанию Re: Организация папок пользователей и обмена в домене

Какую группу? Security group? У неё как у объекта нет возможности работать с отдельной политикой.
Представь, что у тебя в домене есть бухгалтерия, отдел продаж и куча боссов. У каждой группы свои политики безопасности. Как ты сделаешь их без OU?
PLAstic вне форума
 
Ответить с цитированием Вверх
Старый 14.11.2008, 23:22   #4
Hopeles
Пользователь
 
Аватар для Hopeles
 
Пол:Мужской
Регистрация: 01.11.2007
Сообщений: 199
Репутация: 92
По умолчанию Re: Организация папок пользователей и обмена в домене

если мне ни с кем не изменяет память, то в АД создать OU проще, если смотреть со стороны порядка действий
И политики действительно можно накладывать только на OU.
Так что вы, pincer, со всех сторон не правы
__________________
Хочешь помочь старику - сделай вместо него. Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай.А хочешь помочь дураку - сам дурак!
Hopeles вне форума
 
Ответить с цитированием Вверх
Старый 09.03.2009, 19:11   #5
UnclePecos
Новичок
 
Пол:Мужской
Регистрация: 01.05.2008
Сообщений: 10
Репутация: 0
По умолчанию Re: Организация папок пользователей и обмена в домене

Всё хорошо, всё складно, вот только не понимаю зачем такие танцы с бубном в виде скриптов и файла users.txt когда можно сделать проще написав батник следующего содержания:

if not exist "\\serv\Users$\%username%" (mkdir "\\serv\Users$\%username%")
net use z: \\serv\users$\%username%"

при первом же логоне создаётся папка со всеми нужными правами и в дальнейшем мапится как сетевой диск
UnclePecos вне форума
 
Ответить с цитированием Вверх
Старый 09.03.2009, 21:33   #6
PLAstic
ViP
 
Пол:Мужской
Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
По умолчанию Re: Организация папок пользователей и обмена в домене

Цитата:
Сообщение от UnclePecos Посмотреть сообщение
такие танцы с бубном в виде скриптов

Почитай внимательнее функционал скрипта. Мне кажется, он немного больше, чем приведённые тобой две строки, одна из которых присутствует в vbs-скрипте, а вторая - в логон-скрипте.
PLAstic вне форума
 
Ответить с цитированием Вверх
Старый 10.03.2009, 11:30   #7
dmitry_a
Постоялец
 
Пол:Мужской
Регистрация: 11.04.2007
Сообщений: 285
Репутация: 85
По умолчанию Re: Организация папок пользователей и обмена в домене

2PLAstic, Какие именно полномочия нужно реализовать на папки, у меня есть пара наработок на эту тему, попробую дополнить скрипт.
dmitry_a вне форума
 
Ответить с цитированием Вверх
Старый 10.03.2009, 12:09   #8
PLAstic
ViP
 
Пол:Мужской
Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
По умолчанию Re: Организация папок пользователей и обмена в домене

dmitry_a, Я обычно снимаю наследование Domain Users и добавляю одноимённого пользователя с полным доступом.
На сайте микрософта можно найти примеры кода, просто когда я писал этот скрипт, то не разобрался сразу.
PLAstic вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GPO: запретить добавление локальных пользователей на машинах в домене Heracl Windows 200x Server 6 09.02.2009 20:00
организация hotspot forform Скорая помощь 2 17.11.2008 03:11
организация vpn соединения artemz Вопросы и проблемы 7 17.05.2008 16:43

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 23:49. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.05486 секунды с 11 запросами