pixel0815
Goto Top

Per Skript lokal angeschlossene USB Drucker auslesen

Moin moin,

gibt es eine Möglichkeit lokal angeschlossene USB Drucker auszulesen?
Ein Tool, ein Skript? Also so viel wie möglich über das angeschlossene Gerät zu erfahren?

Gruß
Heiko

Content-ID: 316343

Url: https://administrator.de/contentid/316343

Ausgedruckt am: 21.11.2024 um 21:11 Uhr

SauBaer2014
SauBaer2014 27.09.2016 um 16:16:32 Uhr
Goto Top
...Hi !

warum möchtest du dAS usb-interface des Druckers auslesen, wenn in der Vendor ID und deren Device alles drinsteht was du wissen möchtest ?
Oder um welche Infos geht es Dir?

MFG
pixel0815
pixel0815 27.09.2016 um 16:29:57 Uhr
Goto Top
Hallo, es geht um die Seriennummer.
Ich finde die Seriennummer über den Gerätemanager nicht.
Grade habe ich das Tool USBDevice von Nirsoft gefunden, da kann ich das per CMD exportieren und dann entsprechend schauen.
Wäre toll gewesen, wenn ich diese Info einfacher herausbekommen könnte.

Gruß
Pixel
SauBaer2014
SauBaer2014 27.09.2016 um 16:39:17 Uhr
Goto Top
... das Ganze sollte aber auch über das Power Shell zu erfragen sein ....! Würde es mal installieren und dann den Commander "nutzen" .... als ein Tool !

MFG
SauBaer2014
SauBaer2014 27.09.2016 um 16:46:02 Uhr
Goto Top
... mach dich mal kundig über den Befehl "wmic" . Damit konnte ich immer die SN von PC erfragen und verarbeiten!

MFG
pixel0815
pixel0815 27.09.2016 um 17:19:14 Uhr
Goto Top
Keine PC Seriennummer, das ist mir bewusst.
Es geht um die Seriennummer die beim Connecten eines beliebigen USB device, in meinem Fall USB Drucker übertragen werden.
colinardo
colinardo 27.09.2016 aktualisiert um 18:40:25 Uhr
Goto Top
Hallo pixel0815,
diese Daten stehen in der Registry.

Probiers mal hiermit für USB-Drucker:
gci "HKLM:\SYSTEM\CurrentControlSet\Enum\USB" -Force -Recurse -EA SilentlyContinue | ?{$_.PsChildName -eq 'PRINT' -and (Get-Item $_.PSParentPath).PSChildName -eq 'Functions'} | %{  
    [pscustomobject]@{"Drucker" = $_.GetValue('Description');"Seriennummer" = (get-item (Get-Item $_.PSParentPath).PSParentPath).GetValue("SymbolicName").split("#")[2] }  
}
oder so
$printerclasses = '{48721b56-6795-11d2-b1a8-0080c72e74a2}','{49ce6ac8-6f86-11d2-b1e5-0080c72e74a2}','{4d36e979-e325-11ce-bfc1-08002be10318}','{4658ee7e-f050-11d1-b6bd-00c04fa372a7}'  
gci "HKLM:\SYSTEM\CurrentControlSet\Enum\USB" -Force -Recurse -EA SilentlyContinue | ?{(Get-ItemProperty -PSPath $_.PSPath -Name 'classGUID' -EA SilentlyContinue).classGUID -in $printerclasses} | %{  
    [pscustomobject]@{"Drucker" = $_.GetValue('DeviceDesc').split(';',2)[1];"Seriennummer" = $_.PSChildName}  
}
Nur mal kurz hier auf einem lokalen System angetestet

Grüße Uwe
SauBaer2014
SauBaer2014 27.09.2016 aktualisiert um 19:27:56 Uhr
Goto Top
... ist mir klar, dass es nicht um die PC-SN geht. Da es aber als Option "Printer" und "Ports" etc. bei WMCI gibt, dachte ich ... man kann diese dort auslesen.

Wenn über das Tool " USBDeview" keine Seriennummer angezeigt wird, kannst du sie auch nicht vom USB-Interface des Printers auslesen.

Dann vielleicht wie colinardo geschrieben hat, über die Registry.

Solltest du eine Seriennummer sehen, dann kannst du mit dem gen. Tool alle Daten zum USB-Gerät (egal welches) in eine textbasierte Datei speichern und weiterverwenden.

Gruß