Добавление исключения в VBScript - PullRequest
0 голосов
/ 29 января 2019

Мы переключаем наш сервер принтеров для персонала на 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 
...