Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

installierte Drucker auslesen

Frage Microsoft

Mitglied: quba

quba (Level 1) - Jetzt verbinden

22.09.2006, aktualisiert 22.11.2007, 37942 Aufrufe, 8 Kommentare

Hallo zusammen,

ich möchte gerne in bezug auf Inventarisierung
per Netlogon Script alle installierten Drucker auf unseren
PCs Dokumentieren.
Also am besten ein Batch Skript, das die installierten Drucker
in eine Textdatei schreibt. (%COMPUTERNAME%.txt)

Wie ist das am besten zu bewerkstelligen?

Danke und Gruß
quba
Mitglied: AndreasHoster
22.09.2006 um 17:03 Uhr
Mit dem Universalwerkzeug für alle Windows Verwaltungsaufgaben: WMI
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanch ...
und zum sehen, was man noch alles auslesen kann die Scriptomatic V2 (extrem empfehlenswert):
http://www.microsoft.com/downloads/details.aspx?familyid=09DFC342-648B- ...

Jetzt bleibt noch die Frage, wieviele Infos Du haben willst.
Wenn nur der Name, folgendes als .vbs speichern:
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer",,48)
For Each objItem in colItems
Wscript.Echo "Name: " & objItem.Name
Next

und mit cscript.exe ...vbs > Ausgabedatei starten.

Falls Du mehr Infos über die Drucker brauchst, die Klasse Win32_Printer hat noch mehr:
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer",,48)
For Each objItem in colItems
Wscript.Echo "Attributes: " & objItem.Attributes
Wscript.Echo "Availability: " & objItem.Availability
Wscript.Echo "AvailableJobSheets: " & objItem.AvailableJobSheets
Wscript.Echo "AveragePagesPerMinute: " & objItem.AveragePagesPerMinute
Wscript.Echo "Capabilities: " & objItem.Capabilities
Wscript.Echo "CapabilityDescriptions: " & objItem.CapabilityDescriptions
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "CharSetsSupported: " & objItem.CharSetsSupported
Wscript.Echo "Comment: " & objItem.Comment
Wscript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
Wscript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
Wscript.Echo "CreationClassName: " & objItem.CreationClassName
Wscript.Echo "CurrentCapabilities: " & objItem.CurrentCapabilities
Wscript.Echo "CurrentCharSet: " & objItem.CurrentCharSet
Wscript.Echo "CurrentLanguage: " & objItem.CurrentLanguage
Wscript.Echo "CurrentMimeType: " & objItem.CurrentMimeType
Wscript.Echo "CurrentNaturalLanguage: " & objItem.CurrentNaturalLanguage
Wscript.Echo "CurrentPaperType: " & objItem.CurrentPaperType
Wscript.Echo "Default: " & objItem.Default
Wscript.Echo "DefaultCapabilities: " & objItem.DefaultCapabilities
Wscript.Echo "DefaultCopies: " & objItem.DefaultCopies
Wscript.Echo "DefaultLanguage: " & objItem.DefaultLanguage
Wscript.Echo "DefaultMimeType: " & objItem.DefaultMimeType
Wscript.Echo "DefaultNumberUp: " & objItem.DefaultNumberUp
Wscript.Echo "DefaultPaperType: " & objItem.DefaultPaperType
Wscript.Echo "DefaultPriority: " & objItem.DefaultPriority
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "DetectedErrorState: " & objItem.DetectedErrorState
Wscript.Echo "DeviceID: " & objItem.DeviceID
Wscript.Echo "Direct: " & objItem.Direct
Wscript.Echo "DoCompleteFirst: " & objItem.DoCompleteFirst
Wscript.Echo "DriverName: " & objItem.DriverName
Wscript.Echo "EnableBIDI: " & objItem.EnableBIDI
Wscript.Echo "EnableDevQueryPrint: " & objItem.EnableDevQueryPrint
Wscript.Echo "ErrorCleared: " & objItem.ErrorCleared
Wscript.Echo "ErrorDescription: " & objItem.ErrorDescription
Wscript.Echo "ErrorInformation: " & objItem.ErrorInformation
Wscript.Echo "ExtendedDetectedErrorState: " & objItem.ExtendedDetectedErrorState
Wscript.Echo "ExtendedPrinterStatus: " & objItem.ExtendedPrinterStatus
Wscript.Echo "Hidden: " & objItem.Hidden
Wscript.Echo "HorizontalResolution: " & objItem.HorizontalResolution
Wscript.Echo "InstallDate: " & objItem.InstallDate
Wscript.Echo "JobCountSinceLastReset: " & objItem.JobCountSinceLastReset
Wscript.Echo "KeepPrintedJobs: " & objItem.KeepPrintedJobs
Wscript.Echo "LanguagesSupported: " & objItem.LanguagesSupported
Wscript.Echo "LastErrorCode: " & objItem.LastErrorCode
Wscript.Echo "Local: " & objItem.Local
Wscript.Echo "Location: " & objItem.Location
Wscript.Echo "MarkingTechnology: " & objItem.MarkingTechnology
Wscript.Echo "MaxCopies: " & objItem.MaxCopies
Wscript.Echo "MaxNumberUp: " & objItem.MaxNumberUp
Wscript.Echo "MaxSizeSupported: " & objItem.MaxSizeSupported
Wscript.Echo "MimeTypesSupported: " & objItem.MimeTypesSupported
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "NaturalLanguagesSupported: " & objItem.NaturalLanguagesSupported
Wscript.Echo "Network: " & objItem.Network
Wscript.Echo "PaperSizesSupported: " & objItem.PaperSizesSupported
Wscript.Echo "PaperTypesAvailable: " & objItem.PaperTypesAvailable
Wscript.Echo "Parameters: " & objItem.Parameters
Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
Wscript.Echo "PortName: " & objItem.PortName
Wscript.Echo "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities
Wscript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
Wscript.Echo "PrinterPaperNames: " & objItem.PrinterPaperNames
Wscript.Echo "PrinterState: " & objItem.PrinterState
Wscript.Echo "PrinterStatus: " & objItem.PrinterStatus
Wscript.Echo "PrintJobDataType: " & objItem.PrintJobDataType
Wscript.Echo "PrintProcessor: " & objItem.PrintProcessor
Wscript.Echo "Priority: " & objItem.Priority
Wscript.Echo "Published: " & objItem.Published
Wscript.Echo "Queued: " & objItem.Queued
Wscript.Echo "RawOnly: " & objItem.RawOnly
Wscript.Echo "SeparatorFile: " & objItem.SeparatorFile
Wscript.Echo "ServerName: " & objItem.ServerName
Wscript.Echo "Shared: " & objItem.Shared
Wscript.Echo "ShareName: " & objItem.ShareName
Wscript.Echo "SpoolEnabled: " & objItem.SpoolEnabled
Wscript.Echo "StartTime: " & objItem.StartTime
Wscript.Echo "Status: " & objItem.Status
Wscript.Echo "StatusInfo: " & objItem.StatusInfo
Wscript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
Wscript.Echo "SystemName: " & objItem.SystemName
Wscript.Echo "TimeOfLastReset: " & objItem.TimeOfLastReset
Wscript.Echo "UntilTime: " & objItem.UntilTime
Wscript.Echo "VerticalResolution: " & objItem.VerticalResolution
Wscript.Echo "WorkOffline: " & objItem.WorkOffline
Next
Bitte warten ..
Mitglied: Biber
22.09.2006 um 17:30 Uhr
... wobei die flexibelste Variante für einen Batchaufruf die Verwendung des von AndreasHoster geposteten Monster-Skripts in Verbindung mit findstr wäre [Beispiel]:
01.
cscript //nologo GetPrnInfosSatt.vbs|findstr "DriverName ServerName ShareName Caption">>\\target\Inventur\ClientPrinters.log
Gruß
Biber
Bitte warten ..
Mitglied: Manolax
21.11.2007 um 10:48 Uhr
Kann mir jemand von euch das Skript vielleicht noch ein bisschen erweitern?
Und zwar bräuchte ich es so, das alle Drucke bei einem User ausgelesen werden.
Dann soll überprüft werden ob Drucker "Bla" auf Server "Blubb" vorhanden ist, wenn ja, dann soll Drucker "Bla" gelöscht werden und mit einem anderen Freigabenamen auf einem anderen Server wieder verbunden werden.
Wäre euch sehr dankbar wenn jemand das hinbekommt.

Grüße
Thomas
Bitte warten ..
Mitglied: Manolax
21.11.2007 um 12:07 Uhr
Habe jetzt selber schon eine Lösung gefunden.
Sogar nur mit Windows Batch.
Will euch nicht vorenthalten, vielleicht kann es ja jemand brauchen:

01.
@echo off 
02.
reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" >> C:\Temp\drucker.txt 
03.
 
04.
find /I "\\server\drucker" C:\Temp\drucker.txt 
05.
IF %ERRORLEVEL% == 0 rundll32 printui.dll,PrintUIEntry /q /dn /n \\server\drucker 
06.
IF %ERRORLEVEL% == 0 rundll32 printui.dll,PrintUIEntry /q /in /n \\NEUserver\NEUdrucker 
07.
del C:\Temp\drucker.txt
Bitte warten ..
Mitglied: Biber
21.11.2007 um 13:12 Uhr
Moin Manolax,

danke für die Erweiterung/Ergänzung der Fragestellung und das Posten der Lösung.

Kann bestimmt jemand brauchen.

Danke und Gruß
Biber
Bitte warten ..
Mitglied: Manolax
22.11.2007 um 10:18 Uhr
Jetzt bräuchte ich doch nochmal ne Erweiterung von dem Script.

Und zwar soll das ganze jetzt mit mehr Druckern passieren.
Klar jetzt könnt ich einfach für jeden Drucker paar Zeilen nehmen, aber schöner wärs das ganze in ne Schleife zu packen.
Dann könnte man irgendwo oben die auszutauschenden Drucker definieren.

Soweit ich weiß kann man in Batch keien Arrays definieren, was das ganze doch schon etwas kniffliger macht.
Weiß jemand von euch, wie man das in etwa realisieren könnte?
Bitte warten ..
Mitglied: Biber
22.11.2007 um 10:46 Uhr
Moin Manolax,

Jetzt bräuchte ich doch nochmal ne Erweiterung von dem Script.
Von dem Script wirst Du keine Erweiterung bekommen, dieses Feature ist nachweislich nicht implementiert.

Wenn Du eine Erweiterung des Scriptes wünscht, dann können wir das gerne hier entwickeln (auch durchaus in diesem Thread, passt ja hierher).

Aber dann versuche bitte etwas genauer die Anforderungen im Einzelnen zu beschreiben.

Danke
Biber
Bitte warten ..
Mitglied: Manolax
22.11.2007 um 11:30 Uhr
Na dann versuch ich doch mal die Anforderungen genau zu beschreiben.

Momentan sind bei den Benutzern verschiedene Drucker über einen Printserver verbunden.
Dieser Printserver wird "entsorgt".
Deshalb sollen alle Drucker auf einem neuen Printserver, welcher auch einen neuen Hostnamen hat, verbunden werden.
In dem Zuge werden auch die Freigabenamen aller Drucker geändert.
Das heißt alte Verbindungen löschen und neue erstellen.
Das Script von mir macht das auch erst mal, allerdings nur mit einem Drucker.
Wie schon gesagt könnte ich den Code jetzt für jeden einzelnen Drucker kopieren und nur die Druckernamen ersetzen, dann wär das Script aber ziemlich lang.
Deshalb hab ich mir gedacht, das es da doch eine schönere Lösung geben muss. Evtl. mit einer Schleife.


Im nächsten Schritt soll es dann nöch einen zweiten Printserver geben, welcher genau die gleichen Freigaben anbietet, wie der erste.
Vor dem verbinden soll dann erst mal abgefragt werden ob Printserver1 verfügbar ist.
Evtl. über nen Ping oder besser noch ob der Druckerdienst läuft.
Falls nicht, dann soll die Verbindung mit Printserver2 hergestellt werden.

Ich hoffe ich habe das erst mal so weit verständlich erklärt.

Gruß
Manolax
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Per Skript lokal angeschlossene USB Drucker auslesen (7)

Frage von pixel0815 zum Thema Batch & Shell ...

Windows 7
gelöst Bereits eingebundener Drucker - IP Adresse lokal auslesen (17)

Frage von harald.schmidt zum Thema Windows 7 ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...