
43344
09.03.2007, aktualisiert um 16:28:58 Uhr
BESCHREIBUNG des Drucker ports auslesen
Morgen zusammen,
nach toller Lösung des letzten Problems muss ich schon wieder eins anbringen
Wenn ein eingeschränkter Benutzer sich selber einen Drucker im Netzwerk verbindet, lautet die Beschreibung dieses Druckers: "Virtual printer port for USB/LPT". Wie kann ich per Skript darauf zugreifen? Ich dachte mir etwas wie:
if objItem.description <> "Virtual printer port for USB/LPT" then ......
Dummerweise ist objItem.description leer und ich habe keine Ahnung, wohin diese Information geschrieben wird ... kann mir da jemand auf die Sprünge helfen????
nach toller Lösung des letzten Problems muss ich schon wieder eins anbringen
Wenn ein eingeschränkter Benutzer sich selber einen Drucker im Netzwerk verbindet, lautet die Beschreibung dieses Druckers: "Virtual printer port for USB/LPT". Wie kann ich per Skript darauf zugreifen? Ich dachte mir etwas wie:
if objItem.description <> "Virtual printer port for USB/LPT" then ......
Dummerweise ist objItem.description leer und ich habe keine Ahnung, wohin diese Information geschrieben wird ... kann mir da jemand auf die Sprünge helfen????
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 53628
Url: https://administrator.de/forum/beschreibung-des-drucker-ports-auslesen-53628.html
Ausgedruckt am: 20.05.2025 um 15:05 Uhr
5 Kommentare
Neuester Kommentar
Hallo Stylewalker!
Vorläufig kann ich Dich nur einmal zur MS-eigenen Doku verweisen, wo Du alle Eigenschaften aufgelistet findest, bzw Dir folgendes Script aus dem gleichen Hause zur Anzeige dieser Eigenschaften anbieten - vielleicht findest Du ja was:
Grüße
bastla
Vorläufig kann ich Dich nur einmal zur MS-eigenen Doku verweisen, wo Du alle Eigenschaften aufgelistet findest, bzw Dir folgendes Script aus dem gleichen Hause zur Anzeige dieser Eigenschaften anbieten - vielleicht findest Du ja was:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Printer",,48)
For Each objItem in colItems
Wscript.Echo "-----------------------------------"
Wscript.Echo "Win32_Printer instance"
Wscript.Echo "-----------------------------------"
Wscript.Echo "Attributes: " & objItem.Attributes
Wscript.Echo "Availability: " & objItem.Availability
Wscript.Echo "AveragePagesPerMinute: " & objItem.AveragePagesPerMinute
If isNull(objItem.Capabilities) Then
Wscript.Echo "Capabilities: "
Else
Wscript.Echo "Capabilities: " & Join(objItem.Capabilities, ",")
End If
If isNull(objItem.CapabilityDescriptions) Then
Wscript.Echo "CapabilityDescriptions: "
Else
Wscript.Echo "CapabilityDescriptions: " & Join(objItem.CapabilityDescriptions, ",")
End If
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
Wscript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
Wscript.Echo "CreationClassName: " & objItem.CreationClassName
Wscript.Echo "DefaultPriority: " & objItem.DefaultPriority
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "DetectedErrorState: " & objItem.DetectedErrorState
Wscript.Echo "DeviceID: " & objItem.DeviceID
Wscript.Echo "DriverName: " & objItem.DriverName
Wscript.Echo "ErrorCleared: " & objItem.ErrorCleared
Wscript.Echo "ErrorDescription: " & objItem.ErrorDescription
Wscript.Echo "HorizontalResolution: " & objItem.HorizontalResolution
Wscript.Echo "InstallDate: " & objItem.InstallDate
Wscript.Echo "JobCountSinceLastReset: " & objItem.JobCountSinceLastReset
If isNull(objItem.LanguagesSupported) Then
Wscript.Echo "LanguagesSupported: "
Else
Wscript.Echo "LanguagesSupported: " & Join(objItem.LanguagesSupported, ",")
End If
Wscript.Echo "LastErrorCode: " & objItem.LastErrorCode
Wscript.Echo "Location: " & objItem.Location
Wscript.Echo "Name: " & objItem.Name
If isNull(objItem.PaperSizesSupported) Then
Wscript.Echo "PaperSizesSupported: "
Else
Wscript.Echo "PaperSizesSupported: " & Join(objItem.PaperSizesSupported, ",")
End If
Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
Wscript.Echo "PortName: " & objItem.PortName
If isNull(objItem.PowerManagementCapabilities) Then
Wscript.Echo "PowerManagementCapabilities: "
Else
Wscript.Echo "PowerManagementCapabilities: " & Join(objItem.PowerManagementCapabilities, ",")
End If
Wscript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
If isNull(objItem.PrinterPaperNames) Then
Wscript.Echo "PrinterPaperNames: "
Else
Wscript.Echo "PrinterPaperNames: " & Join(objItem.PrinterPaperNames, ",")
End If
Wscript.Echo "PrinterState: " & objItem.PrinterState
Wscript.Echo "PrinterStatus: " & objItem.PrinterStatus
Wscript.Echo "PrintJobDataType: " & objItem.PrintJobDataType
Wscript.Echo "PrintProcessor: " & objItem.PrintProcessor
Wscript.Echo "SeparatorFile: " & objItem.SeparatorFile
Wscript.Echo "ServerName: " & objItem.ServerName
Wscript.Echo "ShareName: " & objItem.ShareName
Wscript.Echo "SpoolEnabled: " & objItem.SpoolEnabled
Wscript.Echo "StartTime: " & objItem.StartTime
Wscript.Echo "Status: " & objItem.Status
Wscript.Echo "StatusInfo: " & objItem.StatusInfo
Wscript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
Wscript.Echo "SystemName: " & objItem.SystemName
Wscript.Echo "TimeOfLastReset: " & objItem.TimeOfLastReset
Wscript.Echo "UntilTime: " & objItem.UntilTime
Wscript.Echo "VerticalResolution: " & objItem.VerticalResolution
Next
Grüße
bastla
Hallo Stylewalker!
Wenn's nur darum geht, den Anfang eines Strings zu vergleichen, kannst Du es ja etwa so versuchen:
Die Längenermittlung ist für den Fall gedacht, dass "\\C38PCX" in eine Variable ausgelagert wird und daher nicht einfach davon ausgegeangen werden kann, dass die ersten 8 Stellen überprüft werden - kürzer, aber weniger flexibel wäre demnach:
Noch zum UCase(): Um bei Stringvergleichen das Problem Groß-/Kleinschreibung zu eliminieren, bringe ich beide Strings in einen definierten Zustand (in diesem Fall Großschreibung).
Was mir noch auffällt: Meinst Du mit
weder / noch? In diesem Fall müsstest Du schreiben:
Grüße
bastla
Wenn's nur darum geht, den Anfang eines Strings zu vergleichen, kannst Du es ja etwa so versuchen:
If UCase(Left(objItem.Name, Len("\\C38PCX"))) <> UCase("\\C38PCX") Then objItem.SetDefaultPrinter()
If UCase(Left(objItem.Name, 8)) <> UCase("\\C38PCX") Then objItem.SetDefaultPrinter()
Was mir noch auffällt: Meinst Du mit
... <> "Microsoft Document Imaging Writer Port:" & "FreePDFXP1:" ...
if objItem.portname <> "Microsoft Document Imaging Writer Port:" And objItem.portname <> "FreePDFXP1:" Then
Grüße
bastla
Hallo Stylewalker!
Zur Sicherheit nochmals die ganze Zeile:
Grüße
bastla
Das % Zeichen (oder was auch immer ich da einsetzen muss) brauche ich als Platzhalter für mind. 5 immer unterschiedliche Zeichen.
Du brauchst es nicht: Es soll ja symbolisieren, dass nach den ersten 8 Stellen beliebige weitere folgen können - genau das macht aber die von mir vorgeschlagene Änderung: es wird nur der Anfang verglichen (verbunden wird demnach, wenn der Druckername nicht mit "\\C38PCX" beginnt) ...Zur Sicherheit nochmals die ganze Zeile:
If objItem.portname <> "Microsoft Document Imaging Writer Port:" And objItem.portname <> "FreePDFXP1:" Then If UCase(Left(objItem.Name, Len("\\C38PCX"))) <> UCase("\\C38PCX") Then objItem.SetDefaultPrinter()
Grüße
bastla