Войти

Показать полную графическую версию : Переменные среды - скрыть путь 'домашней папки' пользователя


morozov_s_v
15-06-2011, 11:09
Всем привет.

Есть Win Server SBS 2003 - ДК. АД. пользователи.

Сделал квотирование на домашние папки пользователей.

Но при присоединении домашние папки к пользователю в названии присоединенного сетевого диска по умолчанию виден путь к домашней папке пользователя.

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

Создал я значит в переменных средах ДК (системные переменные):

имя переменной : share

значение переменной : \\server2\test

Это же проделал и на пользовательском ПК (пользовательские переменные).

Но при добавлении пути домашней папке в учетке пользователя типа : \\server2\%share%\%username%

пишет что путь не найден ( а путь : \\server2\test\%username% >>> конечно добавляет). Если писать %share%\%username% то ругается на неприемлемый путь.

Если проделать просто на ДК и на ПК пользователя в 'выполнить' набрав %share% то открывается мне нужная расшариная папочка.

У расшаренной папки на общий доступ права 'все' в безопасности тоже полный доступ.

Что я делаю не так, подскажите.

amel27
15-06-2011, 14:46
в названии присоединенного сетевого диска по умолчанию виден путь к домашней папке пользователя »переименовать?
CMD/BAT - [решено] Скрипт - подключить сетевой диск и назначить ему имя. (http://forum.oszone.net/showthread.php?t=148958)

morozov_s_v
15-06-2011, 15:49
переименовать?
CMD/BAT - [решено] Скрипт - подключить сетевой диск и назначить ему имя. »


Тык а через переменные среды разве нельзя ?
Ведь мне надо чтобы для каждого пользователя своя отдельная сетевая папка создавалась, а тут(CMD/BAT - [решено] Скрипт - подключить сетевой диск и назначить ему имя.) как я понял такого нет.

cameron
15-06-2011, 16:13
делайте это через Group Policy Preferences, тогда скроете всё что хотите, если я правильно поняла идею.

iMirRor
15-06-2011, 17:06
У меня в скрипте на VB прописано так:const HKEY_CURRENT_USER = &H80000001
Set WSHNetwork = WScript.CreateObject("WScript.Network")
...
Set objReg = GetObject ("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
On Error resume next
user = lcase(wshnetwork.username)
...
WshNetwork.RemoveNetworkDrive "Q:","true","true"
WshNetwork.MapNetworkDrive "Q:","\\trmsrv\Personals$\Dep\"+user,"false"
objReg.CreateKey HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##trmsrv#Personals$#Dep#"+user
objReg.SetStringValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##trmsrv#Personals$#Dep#"+user, "_LabelFromReg", "Персональный диск"
...
WScript.Quit

В данном случае скрипт, выполняющий при входе в домен ассоциирует диск Q с предварительно созданной папкой (\\trmsrv\Personals$\Dep\vasya_p для пользователя "vasya_p") и присваивает название ей: "Персональный диск".

morozov_s_v
16-06-2011, 16:35
У меня в скрипте на VB прописано так:
Код:
const HKEY_CURRENT_USER = &H80000001
Set WSHNetwork = WScript.CreateObject("WScript.Network")
...
Set objReg = GetObject ("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
On Error resume next
user = lcase(wshnetwork.username)
...
WshNetwork.RemoveNetworkDrive "Q:","true","true"
WshNetwork.MapNetworkDrive "Q:","\\trmsrv\Personals$\Dep\"+user,"false"
objReg.CreateKey HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##trmsrv#Personals$#Dep#"+user
objReg.SetStringValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##trmsrv#Personals$#Dep#"+user, "_LabelFromReg", "Персональный диск"
...
WScript.Quit
В данном случае скрипт, выполняющий при входе в домен ассоциирует диск Q с предварительно созданной папкой (\\trmsrv\Personals$\Dep\vasya_p для пользователя "vasya_p") и присваивает название ей: "Персональный диск". »


Испытал скриптик он работает, но все так и остается - те. виден полный путь в названии прикрепленного диска.

А можете, если не сложно пояснить вкратце строки скрипта :))

iMirRor
16-06-2011, 18:28
const HKEY_CURRENT_USER = &H80000001
Здесь просто константа для ветки, где все эти настройки прописываются - оставляете как есть.
Set WSHNetwork = WScript.CreateObject("WScript.Network")
Объявляется переменная для работы с сетевыми ресурсами - оставляете как есть.
Set objReg = GetObject ("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
Объявляется переменная для работы с реестром - оставляете как есть.
On Error resume next
Если ошибка, не прерывать работу скрипта - оставляете как есть.
user = lcase(wshnetwork.username)
в переменной user - имя пользователя компьютера (в данном случае в нижнем регистре) - оставляете как есть
WshNetwork.RemoveNetworkDrive "Q:","true","true"
Отсоединяется диск Q, если он был подключен - оставляете как есть.
WshNetwork.MapNetworkDrive "Q:","\\trmsrv\Personals$\Dep\"+user,"false"
присоединяете Q к сетевому компьютеру (в данном случае на сервере trmsrv есть расшаренная папка Personals$ (знак доллара делает папку скрытой, когда расшариваете папку, добавьте к ее названию $ без пробела и ее не будет видно в проводнике), в ней подпапка Dep и в ней папки с именами всех пользователей (их логины). В Вашем случае нужно вместо "\\trmsrv\Personals$\Dep\" подставить свой путь, но внутри должны еще быть папки пользователей.
objReg.CreateKey HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##trmsrv#Personals$#Dep#"+user
Здесь создается ветка реестра c названием того пути, что был прописан строкой ранее. В вашем случае ##trmsrv#Personals$#Dep# заменяете на свой путь, как видите, здесь символ # заменяет \
objReg.SetStringValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##trmsrv#Personals$#Dep#"+user, "_LabelFromReg", "Персональный диск"
здесь создается параметр _LabelFromReg в созданой ранее ветке и ему присваивается название диска (здесь - "Персональный диск"). В вашем случае так же ##trmsrv#Personals$#Dep# меняете на свой путь. И если точно замените, то диск будет называться как напишите. В 2000 это не действует, а в XP и выше - работает
WScript.Quit
Это конец скрипта.

morozov_s_v
17-06-2011, 14:33
iMirRor iMirRor вне форума »

Я изменил скрипт под себя :
-----------------------------------------------------------------------
const HKEY_CURRENT_USER = &H80000001

Set WSHNetwork = WScript.CreateObject("WScript.Network")

Set objReg = GetObject ("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
On Error resume next
user = lcase(wshnetwork.username)

WshNetwork.RemoveNetworkDrive "O:","true","true"
WshNetwork.MapNetworkDrive "O:","\\server2\test$\"+user, "false"
objReg.CreateKey HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##server2#test$#"+user
objReg.SetStringValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##server2#test$#"+user, "LabelFromReg", "Персональный диск"

WScript.Quit
-----------------------------------------------------------------------
но все равно пишет полный путь : petrov на "server2\test$" (O)

iMirRor
17-06-2011, 21:07
На клиентской машине переименуйте имя диска вручную.
Зайдите в реестр по этому пути "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\" и посмотрите, есть ли ваше имя диска и сравните параметры. Может конечное имя расшаренной подпапки и значение user у вас разные? Попробуйте вывести на экран имя user, поместив команду user = lcase(wshnetwork.username)
Wscript.echo user в скрипт и сравнить с именем папки.

Iska
18-06-2011, 05:19
morozov_s_v, попробуйте в части именования использовать Проводник:
VBScript: подключение сетевого ресурса и назначение ему описания (http://forum.script-coding.com/viewtopic.php?id=3801)
[решено] Скрипт - подключить сетевой диск и назначить ему имя. (http://forum.oszone.net/showthread.php?t=148958)
(хотя у меня нет уверенности, отработает ли сие в logon-скрипте).

amel27
18-06-2011, 09:29
Тык а через переменные среды разве нельзя ? »переменные среды тут не помогут - на имя диска это никак не повлияет
имя переменной : share
значение переменной : \\server2\test

Но при добавлении пути домашней папке в учетке пользователя типа : \\server2\%share%\%username% »
... "\\server2\%share%\%username%" раскроется в "\\server2\\\server2\test\%username%"

пример переименования диска "Z:" в имя пользователя на VBS:WScript.CreateObject("Shell.Application").NameSpace("Z:").Self.Name=WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserName%")

у меня нет уверенности, отработает ли сие в logon-скрипте »именно в логон-скрипте!

Iska
18-06-2011, 15:00
именно в логон-скрипте! »
Будем знать ;)!




© OSzone.net 2001-2012