Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

BESCHREIBUNG des Drucker ports auslesen

Mitglied: 43344

43344 (Level 1)

09.03.2007, aktualisiert 16:28 Uhr, 3556 Aufrufe, 5 Kommentare

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????
Mitglied: bastla
09.03.2007 um 12:17 Uhr
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:
01.
strComputer = "." 
02.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
03.
Set colItems = objWMIService.ExecQuery( _
04.
    "SELECT * FROM Win32_Printer",,48) 
05.
For Each objItem in colItems 
06.
    Wscript.Echo "-----------------------------------"
07.
    Wscript.Echo "Win32_Printer instance"
08.
    Wscript.Echo "-----------------------------------"
09.
    Wscript.Echo "Attributes: " & objItem.Attributes
10.
    Wscript.Echo "Availability: " & objItem.Availability
11.
    Wscript.Echo "AveragePagesPerMinute: " & objItem.AveragePagesPerMinute
12.
    If isNull(objItem.Capabilities) Then
13.
        Wscript.Echo "Capabilities: "
14.
    Else
15.
        Wscript.Echo "Capabilities: " & Join(objItem.Capabilities, ",")
16.
    End If
17.
    If isNull(objItem.CapabilityDescriptions) Then
18.
        Wscript.Echo "CapabilityDescriptions: "
19.
    Else
20.
        Wscript.Echo "CapabilityDescriptions: " & Join(objItem.CapabilityDescriptions, ",")
21.
    End If
22.
    Wscript.Echo "Caption: " & objItem.Caption
23.
    Wscript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
24.
    Wscript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
25.
    Wscript.Echo "CreationClassName: " & objItem.CreationClassName
26.
    Wscript.Echo "DefaultPriority: " & objItem.DefaultPriority
27.
    Wscript.Echo "Description: " & objItem.Description
28.
    Wscript.Echo "DetectedErrorState: " & objItem.DetectedErrorState
29.
    Wscript.Echo "DeviceID: " & objItem.DeviceID
30.
    Wscript.Echo "DriverName: " & objItem.DriverName
31.
    Wscript.Echo "ErrorCleared: " & objItem.ErrorCleared
32.
    Wscript.Echo "ErrorDescription: " & objItem.ErrorDescription
33.
    Wscript.Echo "HorizontalResolution: " & objItem.HorizontalResolution
34.
    Wscript.Echo "InstallDate: " & objItem.InstallDate
35.
    Wscript.Echo "JobCountSinceLastReset: " & objItem.JobCountSinceLastReset
36.
    If isNull(objItem.LanguagesSupported) Then
37.
        Wscript.Echo "LanguagesSupported: "
38.
    Else
39.
        Wscript.Echo "LanguagesSupported: " & Join(objItem.LanguagesSupported, ",")
40.
    End If
41.
    Wscript.Echo "LastErrorCode: " & objItem.LastErrorCode
42.
    Wscript.Echo "Location: " & objItem.Location
43.
    Wscript.Echo "Name: " & objItem.Name
44.
    If isNull(objItem.PaperSizesSupported) Then
45.
        Wscript.Echo "PaperSizesSupported: "
46.
    Else
47.
        Wscript.Echo "PaperSizesSupported: " & Join(objItem.PaperSizesSupported, ",")
48.
    End If
49.
    Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
50.
    Wscript.Echo "PortName: " & objItem.PortName
51.
    If isNull(objItem.PowerManagementCapabilities) Then
52.
        Wscript.Echo "PowerManagementCapabilities: "
53.
    Else
54.
        Wscript.Echo "PowerManagementCapabilities: " & Join(objItem.PowerManagementCapabilities, ",")
55.
    End If
56.
    Wscript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
57.
    If isNull(objItem.PrinterPaperNames) Then
58.
        Wscript.Echo "PrinterPaperNames: "
59.
    Else
60.
        Wscript.Echo "PrinterPaperNames: " & Join(objItem.PrinterPaperNames, ",")
61.
    End If
62.
    Wscript.Echo "PrinterState: " & objItem.PrinterState
63.
    Wscript.Echo "PrinterStatus: " & objItem.PrinterStatus
64.
    Wscript.Echo "PrintJobDataType: " & objItem.PrintJobDataType
65.
    Wscript.Echo "PrintProcessor: " & objItem.PrintProcessor
66.
    Wscript.Echo "SeparatorFile: " & objItem.SeparatorFile
67.
    Wscript.Echo "ServerName: " & objItem.ServerName
68.
    Wscript.Echo "ShareName: " & objItem.ShareName
69.
    Wscript.Echo "SpoolEnabled: " & objItem.SpoolEnabled
70.
    Wscript.Echo "StartTime: " & objItem.StartTime
71.
    Wscript.Echo "Status: " & objItem.Status
72.
    Wscript.Echo "StatusInfo: " & objItem.StatusInfo
73.
    Wscript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
74.
    Wscript.Echo "SystemName: " & objItem.SystemName
75.
    Wscript.Echo "TimeOfLastReset: " & objItem.TimeOfLastReset
76.
    Wscript.Echo "UntilTime: " & objItem.UntilTime
77.
    Wscript.Echo "VerticalResolution: " & objItem.VerticalResolution
78.
Next
Grüße
bastla
Bitte warten ..
Mitglied: 43344
09.03.2007 um 13:57 Uhr
Danke erstmal, steht leider nicht drin was ich suche

Ich bin bisher soweit:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")

Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Printer")
For Each objItem in colItems
If objItem.Workoffline = True Then
objItem.Workoffline = False
objItem.Put_
End If
Next

If CheckAndSet("LPT%:") Then WScript.Quit
If CheckAndSet("USB%") Then WScript.Quit
If CheckAndSet("%38PCX%") Then WScript.Quit
r = CheckAndSet("%")

Function CheckAndSet(sPort)
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Printer WHERE PortName LIKE '" & sPort & "'",,48)
For Each objItem in colItems
if objItem.portname <> "Microsoft Document Imaging Writer Port:" & "FreePDFXP1:" then _
if objItem.Name <> "\\C38PCX%" then objItem.SetDefaultPrinter()


In der letzten Zeile liegt der Hase begraben: er frisst irgendwie das % Zeichen nicht und "NOT LIKE" als Vergleichsoperator haut auch nicht hin. Hast du ne Idee, wie ich aus der Nummer rauskomme?
Bitte warten ..
Mitglied: bastla
09.03.2007 um 14:57 Uhr
Hallo Stylewalker!

Wenn's nur darum geht, den Anfang eines Strings zu vergleichen, kannst Du es ja etwa so versuchen:
01.
If UCase(Left(objItem.Name, Len("\\C38PCX"))) <> UCase("\\C38PCX") Then objItem.SetDefaultPrinter()
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:
01.
If UCase(Left(objItem.Name, 8)) <> UCase("\\C38PCX") Then objItem.SetDefaultPrinter()
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
01.
... <> "Microsoft Document Imaging Writer Port:" & "FreePDFXP1:" ...
weder / noch? In diesem Fall müsstest Du schreiben:
01.
if objItem.portname <> "Microsoft Document Imaging Writer Port:" And objItem.portname <> "FreePDFXP1:" Then
Grüße
bastla
Bitte warten ..
Mitglied: 43344
09.03.2007 um 15:12 Uhr
Hmmm, sieht gut aus, geht aber auch nicht

Das % Zeichen (oder was auch immer ich da einsetzen muss) brauche ich als Platzhalter für mind. 5 immer unterschiedliche Zeichen.

Hintergrund:

Netzwerkdrucker, die sich ein Benutzer selbst verbinden kann werden auf dem Port erkannt, an dem sie am Host PC hängen. Wechselt der Benutzer den PC soll ein lokal vorhandener Drucker als Standard gewählt werden. Die Info was das für ein Drucker ist will teilweise über die Ports (Microsoft und PDF) teils über den Namen (\\C38PCX = Teil des PC-Namens) ziehen und dementsprechend aussortieren.


Gruß

ps.: ja, meinte weder/noch ... ;)
Bitte warten ..
Mitglied: bastla
09.03.2007 um 16:28 Uhr
Hallo Stylewalker!

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:
01.
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
Bitte warten ..
Ähnliche Inhalte
VB for Applications

VBA - Excel: Beschreibung einzelner Variablen

gelöst Frage von PridoxVB for Applications2 Kommentare

Guten Tag werte Community. Ich habe eine Frage bezüglich der Beschreibung für den Nutzer in Excel. Verwendet man beispielsweise ...

Drucker und Scanner

Duplex-Druck

Frage von beamenwaerschoenDrucker und Scanner5 Kommentare

Hallo liebe Admins, wir haben einen Rechner in der Firma nach einem Virus neuinstalliert. Jedoch tritt nach folgendes Problem ...

Windows 10

Druck option

Frage von jensgebkenWindows 108 Kommentare

Hallo Gemeinschaft, folgendes Problem. Ich muss aus einer Anwendung drei Drucke erstellen 2x schwarz weiss 1 x Farbe 1 ...

Windows Server

DNS-Ereignisse "Beschreibung nicht gefunden"

Frage von pwolf1789Windows Server3 Kommentare

Hallo, zu meinem Problem: - ich habe 2 DCs, DC02 synchronisiert von DC01 - auf beiden ist jeweils ein ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 14 StundenInternet2 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 18 StundenWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 1 TagWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 1 TagSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
Switche und Hubs
Medienkonverter mit 12 oder 24 Ports gesucht
Frage von wmuellerSwitche und Hubs24 Kommentare

Guten Morgen, ich bin auf der Suche nach einem größeren Medienkonverter, der "stumpf" 1:1 die Ports auf über ein ...

Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell21 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...