Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Подключение сетевых дисков (http://forum.oszone.net/showthread.php?t=157736)

YDen 20-11-2009 14:33 1275650

Подключение сетевых дисков
 
Здравствуйте!
Есть батник:
---------------------------------------------------------------------------------
@echo off

net time /domain:mou102.local /set /y

rem net use m: \\server2\Metodika$ /persistent:no
rem net use r: \\server2\Biblioteka$ /persistent:no


rem if %username%==borodulya net use s: \\Server2\Shared_folder$\school\erudit /persistent:no



rem подключение пользовательского диска

net use u: /delete - это типа сначал удаляем существующий диск


if exist \\server2\Shared_folder$\%username% goto label
rem проверяем наличие папки, если есть такая папка, то идем на ок,
rem если нету папки, идем дальше

mkdir \\server2\Shared_folder$\%username%
rem создаем папку c таким же именем, с каким пользователь входит в сеть

xcacls \\server2\Shared_folder$\%username% /t /c /g Domain\%username%:c /y
rem назначаем для пользователя на папку разрешения Change

:label
net use u: \\server2\Shared_folder$\%username% /persistent:no
rem подключаем папку как сетевой диск U
---------------------------------------------------------------------------------

Батник подключает общие и персональный сетевые диски.

Есть скрипт:

---------------------------------------------------------------------------------

On Error Resume Next

Set objWshNetwork = CreateObject( "WScript.Network" )
Set objShell = CreateObject("Shell.Application")


MapDrive "U:", "\\server2\Shared_folder\school\%username%", "Пользовательский"

MapDrive "S:", "\\server2\Shared_folder\school\school", "Общий"

Sub MapDrive(strDrive, strPath, strName)
On Error Resume Next
objWshNetwork.RemoveNetworkDrive strDrive, vbTrue, vbTrue
objWshNetwork.MapNetworkDrive strDrive, strPath, vbTrue
objShell.NameSpace(strDrive).Self.Name = strName
End Sub

---------------------------------------------------------------------------------

Это скрипт мне подсказали на форуме - дает имя сетевому диску.

Хочу из скрипта и батника сделать один скрипт или батник делающий следующее: создает общие сетевые диски и дает имя им, и создает персональные диски, закрепляет права пользователя и дает имя этому диску.

Подскажите пожалуйста код.

Спасибо

amel27 23-11-2009 10:43 1277819

Цитата:

Цитата YDen
xcacls \\server2\Shared_folder$\%username% /t /c /g Domain\%username%:c /y
rem назначаем для пользователя на папку разрешения Change »

а не проще дать нужные права на корень учетке "CREATOR OWNER"?.. тогда пользователь при создании будет сразу получать нужные права на свою папку

alecsandrb 30-11-2009 07:12 1283035

Попробуй проверить такой код
Код:

 

Set objWshNetwork = CreateObject( "WScript.Network" )
UsersFolderName = ucase((objNetwork.UserName))

' создаем папку пользователя, проверяя если она есть то идем дальше
    FolderUser = "\\server2\Shared_folder\school\" + UsersFolderName
    Set objFld1 = CreateObject("Scripting.FileSystemObject")
    If objFld1.FolderExists(FolderUser) Then
    Else
        ' если папки нет то создаем ее и назначаем права 
        Set objFolder1 = objFld1.CreateFolder(FolderUser)
        ' формируем строку с назначением прав на личную папку
        StrCmdRightUsers = "xcacls.exe " + FolderUser + " /g ""DOMAIN ADMINS"":F System:f " + UsersFolderName + ":с /y "
        RetVal = WshShell.Run("%COMSPEC% /c " & StrCmdRightUsers, 1, False)
      End If


Set objShell = CreateObject("Shell.Application")

MapDrive "U:", FolderUser, "Пользовательский"
MapDrive "S:", "\\server2\Shared_folder\school\school", "Общий"

Sub MapDrive(strDrive, strPath, strName)
On Error Resume Next
objWshNetwork.RemoveNetworkDrive strDrive, vbTrue, vbTrue
objWshNetwork.MapNetworkDrive strDrive, strPath, vbTrue
objShell.NameSpace(strDrive).Self.Name = strName
End Sub


xcacls должен лежать в той же папке откуда скрипт запускаешь

nvhost 27-07-2010 06:37 1461235

пишет требуется objNetwork, при исполнении последнего скрипта,как быть?

Iska 27-07-2010 14:25 1461475

Код:

Set objWshNetwork = CreateObject( "WScript.Network" )
UsersFolderName = ucase((objWshNetwork.UserName))


nvhost 28-07-2010 06:12 1461920

понял,щас исправлю

nvhost 28-07-2010 10:00 1462012

а как создать папку пользователя от имени админа?Надо сделать так чтобы другие юзеры не могли попасть в папку, а то при создании userfolder берет права родителя

nvhost 30-07-2010 13:30 1463491

Ребят подскажите как это сделать,никто не знает???Скрипт почему то исполняется только при входе в терминал......как сделать чтоб при входе в домен?

NiOl 30-07-2010 15:29 1463602

1.
Цитата:

Цитата nvhost
а как создать папку пользователя от имени админа?Надо сделать так чтобы другие юзеры не могли попасть в папку, а то при создании userfolder берет права родителя »

Совершенно не знаю VB (и не очень спешу его знать ;) ), но думаю достаточно в строке
Цитата:

Цитата alecsandrb
StrCmdRightUsers = "xcacls.exe " + FolderUser + " /g ""DOMAIN ADMINS"":F System:f " + UsersFolderName + ":с /y " »

надо добавить User:F (можно впихнуть между "доменными админами" и "системой"), правда из соображений безопасности "доменных админов" тут быть вообще не должно, а должна с разрешением по чтению быть учетка, которой делигированы права на бэкап пользовательских данных.
2. Имя учетки пользователя (здесь указана как User) можно взять из переменной %UserName%, особенно если скрипт запускается при входе пользователя в систему - в домене он (скрипт) должен прописываться в GPO не в "Computer configuration => Windows settings => Scripts", а в "User configuration => Windows settings => Scripts"

nvhost 31-07-2010 08:30 1463964

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

NiOl 02-08-2010 15:04 1465219

1. Я недостаточно внимательно посмотрел приведенный "alecsandrb" скрипт, добавлять пользователя туда не надо, он лежит в переменной "UsersFolderName". Можно заменить права изменения на полные (:c заменить на :f).

2. Нужно посмотреть на готовую строку с xcacls после раскрытия переменных - возможно где-то пропущен пробел (или наоборот лишний) - просмотрите содержимое переменной StrCmdRightUsers перед вызовом CMD.

3. Попробуйте выполнить указанную строку вручную - какие ошибки будут...

atm_kzn 01-03-2011 14:12 1624447

Добрый день.
Есть vbs скрипт для подключения сетевых дисков у пользователей.
Код:

Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set wn = WScript.CreateObject("WScript.Network")
Set ap = CreateObject("Shell.Application")
if fs.DriveExists("Y:") then wn.RemoveNetworkDrive "Y:", true, true
wn.MapNetworkDrive "Y:", "\\server\share01", false, login, password
if fs.DriveExists("Z:") then wn.RemoveNetworkDrive "Z:", true, true
wn.MapNetworkDrive "Z:", "\\server\share02", false, login, password

Пробовал подключать таким образом диски на своём компе - всё отлично работает, попробовал запустить его для другой учётки на виртуальной тачке - появляется ошибка:
Код:

Сценарий: C:\mab.vbs
Строка: 5
Символ: 1
Ошибка: Сетевой пароль указан неверно
Код: 80070056
Источник: WSHNetwork.MapNetworkDrive

Если в командной строке выполнить:
Код:

net use "\\server\share" password /user:login
то после выполнения скрипт выполняется, после перезагрузки ситуация повторяется.
Сеть без домена, подключение идёт к шаре на Samba.

Ну или подскажите, как сделать так, чтобы при запуске батника не было видно окна командной строки.

Petya V4sechkin 01-03-2011 16:53 1624595

Цитата:

Цитата atm_kzn
Пробовал подключать таким образом диски на своём компе - всё отлично работает, попробовал запустить его для другой учётки на виртуальной тачке - появляется ошибка

Можно сравнить разделы реестра:
  • HKLM\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters
  • HKLM\SYSTEM\CurrentControlSet\Control\Lsa
  • HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0


Время: 17:33.

Время: 17:33.
© OSzone.net 2001-