43344
Goto Top

Standarddrucker beim Logon abfragen und setzen

bei Benutzern mit ständig wechselndem Arbeitsplatz

Morgen,

ich habe hier das merkwürdige Phänomen, dass Benutezr, die sich ständig an wechselnden Plätzen anmelden nach JEDER Systemanmeldung an JEDEM PC aufs Neue ihren Standarddrucker definieren müssen, da sich dieser auf den auf jedem PC installierten FreePDF Writer stellt.

Gedacht hatte ich mir eine Abfrage der bekannten Drucker beim Logon mittels prnmngr.vbs. Das Tool liefert mir eine Liste der Drucker, aber eben nur eine Liste. Wie kann ich diese Liste so verarbeiten, dass überprüft wird, ob ein Drucker an LPT1, bzw. USB installiert ist - sollte dies der Fall sein, diesen zum Standard machen - wenn nicht, überprüfen ob ein localport eingerichtet ist und dann diesen zum Standard machen??????

Vielleicht fällt dem Bieber ja wieder was feines ein ???? ;)


Grüße vom Dorf ...

Content-Key: 52924

Url: https://administrator.de/contentid/52924

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: bastla
bastla 01.03.2007 um 18:48:11 Uhr
Goto Top
Hallo Stylewalker!

Dürfte ich als Nicht-Bi(e)ber face-wink es auch versuchen? Vielleicht wäre ja das etwas für Dich:
'SetDefaultPrinterByPort.vbs  
strComputer = "."   
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")   

If CheckAndSet("LPT1:") Then WScript.Echo "LPT": WScript.Quit  
If CheckAndSet("USB%") Then WScript.Echo "USB": WScript.Quit  
r = CheckAndSet("%"): WScript.Echo "Irgendeiner ..."  

Function CheckAndSet(sPort)
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_Printer WHERE PortName LIKE '" & sPort & "'",,48)  
For Each objItem in colItems
	objItem.SetDefaultPrinter()
Next
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_Printer WHERE PortName LIKE '" & sPort & "'",,48)  
Found = False
For Each objItem in colItems
	If objItem.Default Then Found = True
Next
CheckAndSet = Found
End Function
Für jede Vorgabe eines Ports kannst Du mit einer "If"-Zeile (wie oben zB für "LPT1:" und "USB%") versuchen, einen daran angeschlossenen Drucker als Standarddrucker zu setzen und bei Erfolg das Script beenden (das "WScript.Echo" steht vorrangig zum Testen drinnen und kann samt Doppelpunkt entfernt werden).

Das %-Zeichen fungiert als Wildcard, sodass zB "LPT%" nach jedem Port, dessen Name mit "LPT" beginnt, sucht. Bei mehreren gefundenen Einträgen wird der letzte aus der Liste als Standarddrucker gesetzt.

Ein Suchbegriff "%" schließlich steht für "totale Verzweiflung face-wink" - in anderen Worten: "Nimm den erst- (oder genauer: letzt-) besten installierten Drucker!"

Grüße
bastla
Mitglied: 43344
43344 02.03.2007 um 10:04:34 Uhr
Goto Top
Ja alle Achtung, danke, funktioniert astrein ..... das mit totaler Verzweiflung hast du aber nett formuliert ;) .... trifft den Kern der Sache ;P !!