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

Frage Entwicklung VB for Applications

Mitglied: 43344

43344 (Level 1)

09.03.2007, aktualisiert 16:28 Uhr, 3478 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

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
Frage von HelloWorldBatch & Shell16 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...

Hardware
Fujitsu Workstation mit K80 und Quadro P5000, Fehlermeldung: Connect Power Adapter
Frage von MachelloHardware7 Kommentare

Hallo Zusammen, ich benötige euren Rat da ich ratlos bin. Folgende Konfiguration im Büro: Fujitsu Workstation Celcius R940 Power ...