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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   [решено] AD подключение дисков (http://forum.oszone.net/showthread.php?t=123069)

forsem 16-11-2008 10:32 953878

AD подключение дисков
 
Всем привет
Имеется следующая проблемка. В моем распорежении только один cmd файл для отработки скриптов.
У меня 7 OU, и для каждого надо подключить свои диски, как можно одним батником разделить подключение
дисков для семи разных регионов?

Delirium 17-11-2008 01:02 954524

Цитата:

Цитата forsem
У меня 7 UO »

как они разделяются в структуре AD?
Сетевой диск подключается пользователям при входе? Я делал так: в cmd файле сервера писал:
if exist %homeshare%\%homepath%\script.bat start script.bat
Таким образом, при старте будет проверяться у пользователя, есть ли у него в домашней папке файл script.bat, и, если он есть, запускает его. Ну а в этом файле уже для каждого юзера запускаются свои задачи.

forsem 18-11-2008 23:59 956422

разделяеть так.
UO
1
2
3
4
Диск подключается при входе через батник.
Не выход, потому что много пользователей Нужна логика типа. if UO user = 1 then bla bla и т.д.

monkkey 19-11-2008 08:44 956606

Сложно сделать из одного батника семь? По одному на OU?

forsem 20-11-2008 21:16 958468

Нет такой возможности. Если мог бы . не спрашивал :) есть только один батник для всех пользователей

Возможно есть решения силами VBS но кто подскажет как получить данный параметр пользователя

GreenIce 21-11-2008 20:42 959493

Как вариант можно диски цеплять не черз батник а через политику.

forsem 22-11-2008 02:31 959810

читаем первый пост

Oleg Krylov 23-11-2008 03:27 960658

Цитата:

Цитата forsem
В моем распорежении только один cmd файл для отработки скриптов »

Прочитали. В чем проблема непонятно. Написать три строчки семь раз, изменяя одну в каждом случае? И прицепить на каждый OU по одному батнику? Вы бы проблему яснее объяснили. И людям понятнее, и Вам быстрее ответят.
В CMD можно включить элементы LDAP-запроса. Но это муторно, долго и нестабильно.

babki 24-11-2008 14:17 961975

вот скрипт VBS, может поможет...





Подключение принтера
2 июня 2008
Скрипт (vbs) мапит принтера на основе членства в соответствующей группе.
Один недостаток - если пользователь входит в несколько групп, принтеры для которых делаются дефолтными, то в результате дефолтным будет тот принтер, кот. мапится в скрипте последним.



Dim oNet
Dim sPrintServer

'On Error Resume Next

Set oNet = CreateObject("WScript.Network")

' default print server
sPrintserver = "DC1"


If IsMember("Printer1") then
oNet.AddWindowsPrinterConnection "\\" & sPrintServer & "\Printer1"
End If

If IsMember("Printer2") then
oNet.AddWindowsPrinterConnection "\\" & sPrintServer & "\Printer2"
End If

If IsMember("Printer3") then
oNet.AddWindowsPrinterConnection "\\" & sPrintServer & "\Printer3"
oNet.SetDefaultPrinter "\\" & sPrintServer & "\Printer3"
End If

If IsMember("Printer4") then
oNet.AddWindowsPrinterConnection "\\" & sPrintServer & "\Printer4"
oNet.SetDefaultPrinter "\\" & sPrintServer & "\Printer4"
End If




' FUNCTION ============ IsMEmber =====================================================
Function IsMember(sGroup)
' IsMember
' Test to see if user if member of specified group

' sGroup Name of group
' Returns True if user is group member

Dim sAdsPath, oUser, oGroup
' ================= Populate dictionary if not yet created =======================
If IsEmpty(g_oGroupDict) Then
Set g_oGroupDict = CreateObject("Scripting.Dictionary")
g_oGroupDict.CompareMode = vbTextCompare
sAdsPath = oNet.UserDomain & "/" & oNet.UserName
On Error Resume Next
Set oUser = GetObject("WinNT://" & sAdsPath & ",user")
If Err.Number then
IsMember = FALSE
Exit Function
End IF
On Error Goto 0
For Each oGroup In oUser.Groups
g_oGroupDict.Add oGroup.Name, "-"
Next
Set oUser = Nothing
End If
IsMember = CBool(g_oGroupDict.Exists(sGroup))
End Function





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


et WshNetwork = WScript.CreateObject("WScript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
On Error Resume Next

For i = 0 to oDrives.Count - 1 Step 2
WshNetwork.RemoveNetworkDrive oDrives.Item(i),true
Next
On Error Goto 0

WshNetwork.MapNetworkDrive "R:", "\\SERVER1\share"
WshNetwork.MapNetworkDrive "S:", "\\SERVER\obm"

forsem 24-11-2008 16:04 962105

нашел утилиту ifmember самый . оказался самый простой способ . всем спасибо


Время: 05:38.

Время: 05:38.
© OSzone.net 2001-