Мы переключаем наш сервер принтеров для персонала на Windows 2016, и у нас уже есть 700-800 сотрудников, которые сопоставлены с очередями принтеров на старом сервере.Мы искали сценарий для замены имени сервера / переназначения персонала на те же очереди принтеров, но на новом сервере, и оставляли принтер по умолчанию таким, какой он есть.этот сценарий VBScript будет помещен в сценарий входа в домен и перенастроит принтеры при входе в систему.Я нашел этот VBScripting, который прекрасно работает в нашей системе.За исключением того, что у меня есть исключение, чтобы сделать для одной очереди принтера, которая требует установки во время сопоставления.Поэтому я хочу исключить этот принтер, чтобы скрипт игнорировал переназначение этого принтера на новом сервере, пропустив его и продолжив.таким образом мы можем переназначить эти 8 штатных принтеров на сервер вручную.Я не могу добавить if в этот скрипт, так как я не знаю VBscripting.Это сценарий и имя этого специального принтера «RD Communication»:
On Error Resume Next
Function GetDefaultPrinter()
sRegVal = "HKCU\Software\Microsoft\Windows
NT\CurrentVersion\Windows\Device"
sDefault = ""
On Error Resume Next
sDefault = objShell.RegRead(sRegVal)
sDefault = Left(sDefault ,InStr(sDefault, ",") - 1)
On Error Goto 0
GetDefaultPrinter = sDefault
End Function
Set objNetwork = CreateObject ("Wscript.Network")
Set objShell = CreateObject ("WScript.Shell")
Set objFSO = CreateObject ("Scripting.FileSystemObject")
LogonServer = objShell.ExpandEnvironmentStrings("%logonserver%")
UserName = objShell.ExpandEnvironmentStrings("%username%")
strComputer = "."
PrintServer = "HCLStaffPrinter1"
PrintServer = LCase (PrintServer)
Err.Clear
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2")
If Err.Number Then
wscript.echo ("Error : " & Err.Number & ": " & Err.Description & VbCrLf)
Err.Clear
Else
ImpDefault = GetDefaultPrinter
Set colInstalledPrinters = objWMIService.ExecQuery _
("SELECT * FROM Win32_Printer")
For Each objPrinter in colInstalledPrinters
PrinterArray = Split (objPrinter.Name , "\")
If (LCase(objPrinter.ServerName) <> "") and
(LCase (objPrinter.ServerName) <> "\\" & PrintServer) then
objNetwork.AddWindowsPrinterConnection "\\" & PrintServer & "\" & PrinterArray(3)
if Err.Number Then
wscript.echo ("Error : " & Err.Number & ": " & Err.Description & VbCrLf)
Err.Clear
End If
If ImpDefault = objPrinter.Name then
objNetwork.SetDefaultPrinter ("\\" & PrintServer & "\" & PrinterArray(3))
End If
objNetwork.RemovePrinterConnection objPrinter.Name
End If
Next
End If