Ich versuche, die Standarddruckereinstellungen eines Geräts zu bearbeiten. Genauer gesagt, ich versuche jeden Drucktyp in einen gesperrten Druck zu ändern, und dann an jeden einzelnen Benutzer einen Benutzernamen und ein Passwort zuweisen:Standarddruckereinstellungen bearbeiten Auftragstyp mit VBScript
Jeder ist auf den PCL6-Druckertreiber, aber ich habe keine Ahnung, wie um von VBScript aus darauf zuzugreifen. Hier ist was ich bisher habe. Ich habe es so oft kommentiert, wie ich kann, also hoffentlich, wer auch immer es aufhebt, wenn ich es verlasse, werde es verstehen können. Alles ist in Ordnung:
Option Explicit
' Tell WSH to resume on errors, otherwise our error handling can't do it's job
On Error Resume Next
' Define variables
Dim objNetwork, objWMIService, objPrinter
Dim colInstalledPrinters
Dim strPrinterServer, strPrinterShare, strUserName, strPassword, strPrinterName
Dim Return, LocalDefault
Dim DynamicMessage
Dim DefaultPrinter
strPrinterServer = "\\GBDSCWSSC0125"
strPrinterShare = "GBGBMIL1NPSC000"
strPassword = "1234"
msgbox("This tool will set up your default printer with a username and password. When changing default printers, please run this tool again")
strUserName = CreateObject("WScript.Network").UserName
DynamicMessage = msgbox("Your username is " & strUserName & vbNewLine & "Is this correct?", vbYesNo)
If DynamicMessage = vbNo Then
strUserName = InputBox("Please enter your username")
DynamicMessage = msgbox("Your username is " & strUserName, vbOK)
End If
' Get WMIService so we can run WMI queries (windows management instrumentation). Basically a library for controlling windows
Set objWMIService = GetObject(_
"winmgmts:" & "{impersonationLevel=impersonate}!\\" _
& strComputerName & "\root\cimv2")
' Run a WMI query to get all the installed printers. This returns a collection so the variable uses the "col" prefix
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer")
' The WMI query returns a collection that we need to loop through and check to see if the current printer object is the default printer
For Each objPrinter in colInstalledPrinters
If objPrinter.Default = "True" Then
If objPrinter.Name <> "Microsoft Office Document Image Writer" Then
LocalDefault = True
strPrinterName = objPrinter.Name
DynamicMessage = msgbox("Default printer is " & strPrinterName, vbOKOnly)
End If
End If
Next
msgbox("Done!")
Set objWMIService = Nothing
Set objNetwork = Nothing
WScipt.Quit
Ist das überhaupt möglich?
Welchen Drucker verwendest du? Vielleicht ein RICOH? – JoSerra
Ja, wir haben verschiedene RICOH-Drucker im Büro, aber alle laufen von den gleichen Treibern ab. – JaayB
Hi @JaayB Ricoh-Druckerwarteschlange speichert einige Druckereinstellungen für diesen Registrierungsschlüssel ** HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Drucker \ Drucker \ \ PrinterDriverData \ capsdb_scope :: UI_Customize ** auf PRINT SERVER, der eine XML-Datei enthält . Sie können eine benutzerdefinierte Konfigurationsdatei mit [Printer Driver Packager NX-Software] (http://support.ricoh.com/html_gen/util/PDP/PDP.html) erstellen Ich denke, Sie können die Benutzer-ID von printjob auf den aktuellen Windows-Anmeldenamen setzen , aber ich weiß nicht, wie man das Passwortfeld einstellt. –
JoSerra