Старожил
Сообщения: 392
Благодарности: 6
|
Профиль
|
Сайт
|
Отправить PM
| Цитировать
вот скрипт 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"
|
Отправлено: 14:17, 24-11-2008
| #9
|