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, 3527 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
Microsoft

Neuigkeiten zu Server und Office 365 was läuft mit was und was nicht

Tipp von AlFalcone vor 7 StundenMicrosoft

Server Betriebssysteme auf dem die verschiedenen Offices nicht supported sind: • Office 365 ist und wird nicht supported auf Windows ...

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 8 StundenSpeicherkarten1 Kommentar

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 10 StundenSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 1 TagHardware1 Kommentar

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows 10
Sysprep Fehler im Log kann nicht starten
Frage von grillinator95Windows 1022 Kommentare

Hallo, kann leider SYSPREP nicht mehr starten, Win10 64bit. Logfile sagt folgendes: 2018-10-17 13:44:56, Info SYSPRP 2018-10-17 13:44:56, Info ...

Sicherheitsgrundlagen
EuGH-Urteil - Internetanschluss für die ganze Familie - Filesharer haften trotzdem
Frage von StefanKittelSicherheitsgrundlagen17 Kommentare

Hallo, In diesem Artikel geht es darum, dass Jemand aus der Familie ein Hörbuch illegal hochgeladen hat. Der Vater ...

Apple
MacBook Pro 2018 mit 8 GB oder 16 GB
Frage von SysAdm81Apple14 Kommentare

Hallo zusammen, ich steh vor der Überlegung mir ein MacBook Pro 13 (2018) zu kaufen. Bzgl. SSD habe ich ...

Outlook & Mail
Outlook schiebt Mails aus Posteingang sofort in den Papierkorb
Frage von hermesOutlook & Mail13 Kommentare

Hallo Outlook Fachleute, wir haben hier das Problem, dass Outlook 2010 alle ankommenden Mails seit zwei Tagen einfach in ...