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

installierte Drucker auslesen

Frage Microsoft

Mitglied: quba

quba (Level 1) - Jetzt verbinden

22.09.2006, aktualisiert 22.11.2007, 40831 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 ..
Ähnliche Inhalte
Hardware
Über RDP weitergeleitete Drucker drucken nicht trotz installiertem Treiber
gelöst Frage von sven784230Hardware2 Kommentare

Hallo zusammen, leider drucken die über Remotedesktop umgeleiteten Drucker nicht trotz installierten Treibern. Wenn ich eine Testseite ausdrucken möchte ...

Monitoring
SNMP Traps lokal installierter Drucker
Frage von seltsamMonitoring3 Kommentare

Guten Morgen verehrte Gemeinde. Letzte Woche haben wir ein Drucksystemrollout durchgeführt, welches mir nun ebenfalls die zentrale Kontrolle aller ...

Windows Vista
Powershellscript zum Auslesen von Druckern
gelöst Frage von ghammerWindows Vista16 Kommentare

Hallo, Dömane: Server 2012 Clients Vista, Windows 7 Ich hab hier ein Powershellscript erstellt das mir die Drucker auf ...

Microsoft
Installierte Programme auf Client per Powershell auslesen?
gelöst Frage von itazubiiMicrosoft9 Kommentare

Hallo Leute, ich bin neu im Bereich Active Directory und Domänenverwaltung. Ich habe folgende Aufgabe: Ich soll von meinem ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 8 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 8 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 16 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...