Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 42
Благодарности: 13

Профиль | Отправить PM | Цитировать


"Полный доступ" нужен только для изменения прав доступа и давать его обычным пользователя которым вполне достаточно прав Чтения/записи, а тем более "Пользователям домена" очень вредно. Мне кажется вы взялись за проблему не с того конца так как у вас на корневой папке Users стоит наследование на суб контейнеры изначально с полным доступом. И решать эту задачу лучше не логин скриптом а все таки от имени администратора. (ИМХО)

Как я понял у каждого пользователя папка соответствует его имени и если объем данных не большой то можно и просто перегородить структуру каталогов заново.
Цитата Неизвестного админа:
Скрипт монтирует диск T:. У пользователя при этом проверяется наличие папки (соотвествующее имени пользователя) и если ее нет, то она создается по пути \\fileserver\users и на эту папку выставляются права только на этого пользователя и учетных записей Admin и Administrator. Смонтированному диску присваивается новая метка.
Код: Выделить весь код
' ------ SCRIPT CONFIGURATION ------ 
Set WshShell = Wscript.CreateObject("Wscript.Shell") 
Set objNetwork = CreateObject("Wscript.Network") 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objWSH = CreateObject("WScript.Shell") 
Set objShell = CreateObject("Shell.Application") 
objUserName = objNetwork.UserName 
strDrive = "T:" 
strNewDiskName = "Личная папка "&objUserName 
strPath = "\\fileserver\users\"&objUserName 
boolPersistent = True 
' ------ END CONFIGURATION --------- 
On Error Resume Next 
 
if (objFS.FolderExists(strPath)) = false then  
 
Call objFS.CreateFolder(strPath) 
 
strACLCommand = "cmd /c echo y| CACLS " 
strACLCommand = strACLCommand & strPath 
strACLCommand = strACLCommand & " /g DOMAIN\" & objUserName & ":F" 
return = objWSH.Run (strACLCommand , 0, True) 
 
Call WshShell.Run("cacls " & strPath & _ 
" /e /g DOMAIN\" & "Administrator" & ":f", HIDE_WINDOW, WAIT_ON_RETURN) 
 
Call WshShell.Run("cacls " & strPath & _ 
" /e /g DOMAIN\" & "admin" & ":f", HIDE_WINDOW, WAIT_ON_RETURN) 
end if 
 
objNetwork.MapNetworkDrive strDrive, strPath, boolPersistent 
objShell.NameSpace(strDrive).Self.Name = strNewDiskName
ну а если этот вариант не приемлем то вначале отстроите права так сказать у корневых контейнеров а потом уже через if (objFS.FolderExists(strPath)) = false/true и cacls /? согласно вашего шаблона для папки пользователя и подкаталогов.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:46, 06-12-2011 | #3