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, 3497 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
Batch & Shell

Domain User Beschreibung oder Email auslesen

Frage von mavericklpBatch & Shell3 Kommentare

Moin moin zusammen, ich bin auf der Suche nach einer Möglichkeit, entwerder die User Beschreibung, die im AD gespeichert ...

Bibliotheken & Toolkits

ActiveXObjects - Beschreibungen

Frage von BirdyBBibliotheken & Toolkits1 Kommentar

Hallo zusammen, ich habe mal eine etwas blöde Frage: Unser ERP-System ist mittels JScript anpassbar und ich habe einige ...

Router & Routing

802.1Q Port auslesen

Frage von DerEisigeRouter & Routing7 Kommentare

Guten Morgen, ich habe ein kleines Problem mit meinem heim Netzwerk, und zwar habe ich drei Netzwerke die ich ...

Windows Server

Drucker am WSD-Port

gelöst Frage von raba34Windows Server2 Kommentare

Hallo, ich habe einen Drucker am TCP/IP-Port (Printserver unter Windows 2012 R2) eingerichtet. Nun erscheint er aber als Drucker ...

Neue Wissensbeiträge
Windows 10

Mikrofon von Headset geht nach Update auf Windows 10 1803 nicht mehr

Tipp von Deepsys vor 1 TagWindows 10

Ich verwende ein Plantronics Headset das per USB mit dem Windows 10 PC verbunden ist. Damit kann ich auch ...

Video & Streaming

Ruckelfreies Fernsehen auf Smartphone oder Tablet - in SD oder gar HD - Eine Alternative zum Fritz DVB-C Receiver

Anleitung von power-user vor 2 TagenVideo & Streaming9 Kommentare

Wer kennt das nicht: Man möchte gemütlich auf dem Balkon sitzen und vielleicht grillen und dabei das WM-Spiel gucken ...

Erkennung und -Abwehr
Trendmicro WFBS 10 ist in deutsch verfügbar!
Tipp von VGem-e vor 2 TagenErkennung und -Abwehr4 Kommentare

Servus Kollegen, downloadbar unter

Windows Update

Microsoft Patchday Juni 2018 - BSOD, obwohl noch kein Patch freigegeben

Erfahrungsbericht von diemilz vor 2 TagenWindows Update8 Kommentare

Hallo zusammen, wir hatten hier letzte Woche ein massives Problem. Alles begann damit, dass ein Mitarbeiter kurz vor Feierabend ...

Heiß diskutierte Inhalte
Windows Userverwaltung
User Überwachung
gelöst Frage von YellowcakeWindows Userverwaltung38 Kommentare

Hey ich habe von unserem neuem Datenschutzbeauftragten ein kleines Horror Paket bekommen. Ich soll wenn es möglich ist, das ...

Windows Installation
Adobe Reader noch notwendig?
gelöst Frage von EitieOSWindows Installation26 Kommentare

Muss ich mir noch die Arbeit machen und den Adobe Reader installieren und aktuell halten, wenn doch in Win10 ...

Netzwerkmanagement
Druckprobleme bei Thin Clients und Netzwerkdruckern
Frage von hesperNetzwerkmanagement14 Kommentare

Morgen zusammen! Bei uns werden in den Außenstellen HP t520 Thin Clients an drei W2k16 Terminalserver mittels RDP eingesetzt. ...

Windows 10
Data Recovery
Frage von HanutaWindows 1012 Kommentare

Hallo Zusammen, welches Tool (egal ob Freeware oder Kostenpflichtig) kann man für Datenwiederherstellung empfehlen ? Die zu rettenden Daten ...