Войти

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


Butunin Klim
07-08-2008, 17:14
Где то видел статью обмусоленную про то, как цеплять принтеры пользователям в автомате согласно локации. Не могу найти.

madmax24
08-08-2008, 12:26
это (http://forum.oszone.net/showthread.php?t=94238&highlight=%E0%E2%F2%EE%EC%E0%F2%E8%F7%E5%F1%EA%EE%E5+%EF%EE%E4%EA%EB%FE%F7%E5%ED%E8%E5+%EF%F0%E8%ED% F2%E5%F0%EE%E2) ? Самый последний пост

dimich22
08-08-2008, 16:33
А что понимается под "локацией"? Можно пользователей распихать по OU согласно физическому расположению и назначить логон-скрипт через групповую политику, который бы цеплял нужные принтера. Можно - в зависимости от группы.
Приведу еще кусок кода, не помню откуда взятый. В нем принтеры назначаются в зависимости от имени компьютера:


If Instr( 1, strWorkstation, "-", 1) > 0 Then
strWorkstation = _
Left( strWorkstation, ( Instr( 1, strWorkstation, "-", 1)))
End If

Select Case UCase( strWorkstation )

Case "BLD1RM101-"
Call AddPrinter ("Mydomain2", "MyPrtSvr2", "Bld1Rm101-HP4050")
objWshNetwork.SetDefaultPrinter "\\MyPrtSvr2\Bld1Rm101-HP4050"

Case Else

End Select

Private Sub AddPrinter(strPrtServerDomain, strPrtServer, strPrtShare)

On Error Resume Next

Dim strPrtPath 'Full path to printer share
Dim objPrinter 'Object reference to printer
Dim strMsg 'Message output to user
Dim blnError 'True / False error condition

blnError = False

'Build path to printer share
strPrtPath = "\\" & strPrtServer & "\" & strPrtShare

'Test to see if shared printer exists.
'Proceed if yes, set error condition msg if no.
Set objPrinter = GetObject _
("WinNT://" & strPrtServerDomain & "/" & strPrtServer & "/" & strPrtShare)
If IsObject( objPrinter ) AND _
(objPrinter.Name <> "" AND objPrinter.Class = "PrintQueue") Then

'Different mapping techniques depending on OS version
If objWshShell.ExpandEnvironmentStrings( "%OS%" ) = "Windows_NT" Then
Err.Clear
'Map printer
objWshNetwork.AddWindowsPrinterConnection strPrtPath
Else
'Mapping printers for Win9x & ME is a pain and unreliable.
End If

Else
blnError = True
End IF

'Check error condition and output appropriate user message
If Err <> 0 OR blnError = True Then
strMsg = "Unable to connect to network printer. " & vbCrLf & _
"Please contact the Helpdesk @ ext 345" & vbCrLf & _
"and ask them to check the " & strPrtServer & " server." & _
vbCrLf & vbCrLf & _
"Let them know that you are unable to connect to the '" _
& strPrtShare & "' printer"
objWshShell.Popup strMsg,, "Logon Error !", 48
Else
Call UserPrompt ("Successfully added printer connection to " & strPrtPath)
End If

Set objPrinter = Nothing

End Sub

madmax24
08-08-2008, 23:35
А что понимается под "локацией"? »
Я думаю имеется в виду значение поля Location у компа.
На самом деле это и есть OU в котором он лежит в моем скрипте, хотя туда можно упихнуть все что душе угодно и фильтровать и по OU и по Location например. :)




© OSzone.net 2001-2012