Показать полную графическую версию : [решено] AD подключение дисков
Всем привет
Имеется следующая проблемка. В моем распорежении только один cmd файл для отработки скриптов.
У меня 7 OU, и для каждого надо подключить свои диски, как можно одним батником разделить подключение
дисков для семи разных регионов?
Delirium
17-11-2008, 01:02
У меня 7 UO »
как они разделяются в структуре AD?
Сетевой диск подключается пользователям при входе? Я делал так: в cmd файле сервера писал:
if exist %homeshare%\%homepath%\script.bat start script.bat
Таким образом, при старте будет проверяться у пользователя, есть ли у него в домашней папке файл script.bat, и, если он есть, запускает его. Ну а в этом файле уже для каждого юзера запускаются свои задачи.
разделяеть так.
UO
1
2
3
4
Диск подключается при входе через батник.
Не выход, потому что много пользователей Нужна логика типа. if UO user = 1 then bla bla и т.д.
Сложно сделать из одного батника семь? По одному на OU?
Нет такой возможности. Если мог бы . не спрашивал :) есть только один батник для всех пользователей
Возможно есть решения силами VBS но кто подскажет как получить данный параметр пользователя
GreenIce
21-11-2008, 20:42
Как вариант можно диски цеплять не черз батник а через политику.
Oleg Krylov
23-11-2008, 03:27
В моем распорежении только один cmd файл для отработки скриптов »
Прочитали. В чем проблема непонятно. Написать три строчки семь раз, изменяя одну в каждом случае? И прицепить на каждый OU по одному батнику? Вы бы проблему яснее объяснили. И людям понятнее, и Вам быстрее ответят.
В CMD можно включить элементы LDAP-запроса. Но это муторно, долго и нестабильно.
вот скрипт 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"
нашел утилиту ifmember самый . оказался самый простой способ . всем спасибо
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.