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, 3517 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
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 7 StundenHumor (lol)

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 9 StundenExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 1 TagErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 1 TagVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Windows Server
Domäne einsilbig mit nur einem Namen benannt - sowie AD und MX auf einer VM Kardinalsfehler?
Frage von TomTestWindows Server48 Kommentare

Hallo liebe Freunde gepflegter Probleme, seit kurzem soll ich eine Domäne verwalten die zuvor von einem IT-Dienstleister erstellt und ...

Microsoft
VPN Verbindung kann nicht aufgebaut werden
Frage von AlexderITlerMicrosoft35 Kommentare

Hallo, Ich möchte an einem unserer PCs in unserer Tochterfirma eine VPN zu unserem Netzwerk einrichten. Das schlägt allerdings ...

DNS
Gibt es eine Art DNS Proxy?
Frage von icepietDNS16 Kommentare

Hallo Nerds, Ich würde gerne folgendes machen: ts.domain.de:3389 soll auf 1.2.3.4:3389 auflösen ts2.domain.de:3389 soll auf 1.2.3.4:3390 auflösen Gibt es ...

Windows Server
Windows Server per Web auf Daten zugreifen und verwalten
Frage von matze2090Windows Server16 Kommentare

Hallo, ich würde gerne von außen auf meinem Windows Server zugreifen um auf meine Daten zu verwalten. Meine frage ...