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

Netzwerkdrucker per vbs auslesen

Frage Entwicklung Batch & Shell

Mitglied: superwasi

superwasi (Level 1) - Jetzt verbinden

11.08.2008, aktualisiert 15:07 Uhr, 13834 Aufrufe, 6 Kommentare

Hallo.

Ich würde gerne wissen, wie ich per Remote alle Drucker, das heisst auch die Netzwerkdrucker, von andren PCs anzeigen lassen kann.

Ich habe ein kleines Script geschrieben, das mir aber nur lokal sämtlichen Drucker anzeigt.

Wenn man die Drucker eines anderen PCs auslesen möchte, werden nur die lokal installierten ausgegeben.


Hier mein Script:


On Error Resume Next
strComputer=inputbox("Bitte geben sie die IP oder den Hostnamen des gewünschten PCs an," _
& "auf dem die Drucker ausgelesen werden sollen!")
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


Könnte mir vielleicht jemand bei diesem Problem helfen?

Danke für eure Antworten im voraus!
Mitglied: colinardo
11.08.2008 um 13:54 Uhr
das sollte gehen ...
01.
strComputer = InputBox("Bitte IP-Adresse des PC's eingeben:","Installierte Drucker abrufen") 
02.
strUsername = InputBox("Bitte Username eines Administrators des Remotesystems eingeben:","Installierte Drucker abrufen") 
03.
strPassword = InputBox("Bitte Password des Administrators eingeben:","Installierte Drucker abrufen") 
04.
Const WbemAuthenticationLevelPktPrivacy = 6 
05.
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
06.
Set objWMIService = objwbemLocator.ConnectServer(strComputer, "root\cimv2", strUsername, strPassword) 
07.
objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy 
08.
Set objPrinters = objWMIService.ExecQuery("Select * From Win32_Printer") 
09.
 
10.
For Each objPrinter In objPrinters 
11.
	WScript.Echo objPrinter.Name 
12.
Next 
13.
 
14.
 

Das folgende Script benutz ein Array in dem die IP-Adressen der Computer stehen und schreibt die Drucker der jeweiligen Maschine in eine Textdatei:
Das Array ist an die jeweiligen Rechner anzupassen... // Achtung: Der angegebene User muss auf allen PC's Admin-Rechte besitzen. In der Domänenumgebung ist dieser in folgender Form anzugeben: "DOMÄNE\USER"

01.
On Error Resume Next 
02.
Const WbemAuthenticationLevelPktPrivacy = 6 
03.
strUsername = InputBox("Bitte Username eines Administrators des Remotesystems eingeben:","Installierte Drucker abrufen") 
04.
strPassword = InputBox("Bitte Password des Administrators eingeben:","Installierte Drucker abrufen") 
05.
Set fso = CreateObject("scripting.filesystemobject") 
06.
 
07.
strComputers = Array("10.10.1.5","10.10.1.6") 
08.
 
09.
For i = 0 To UBound(strComputers) 
10.
	strComputer = strComputers(i) 
11.
	Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
12.
	Set objWMIService = objwbemLocator.ConnectServer(strComputer, "root\cimv2", strUsername, strPassword) 
13.
	objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy 
14.
	Set objPrinters = objWMIService.ExecQuery("Select * From Win32_Printer") 
15.
	Set txtfile = fso.OpenTextFile("c:\temp\Drucker_von_" & strComputer & ".txt", 2, True) 
16.
	For Each objPrinter In objPrinters 
17.
		txtfile.WriteLine objPrinter.Name 
18.
	Next 
19.
	txtfile.Close 
20.
Next
Bitte warten ..
Mitglied: superwasi
11.08.2008 um 14:18 Uhr
Danke Stofmeister für deine Antwort.

Ich habe nur noch ein Problem.

Ich habe das Tool gerade getested und es ist genau das was ich gesucht habe.

Aber es funktioniert nur wenn ich den aktuell angemeldeten User eintrage.

Wenn ich als User den lokal Admin oder einen Sysacount benutze, bekomme ich immer die Fehlermeldung, dass der Zugriff verweigert wurde.

Wüsstest du vielleicht eine Variante in der es auch mit dem lokal admin funktioniert.

Danke im voraus für deine Antwort.
Bitte warten ..
Mitglied: colinardo
11.08.2008 um 14:23 Uhr
Du musst einen Admin des anderen Rechners angeben und nicht einen lokalen Admin. Eine Variante ohne Password ? das wäre ein großes Sicherheitsloch. Du kannst auf dem anderen PC einen extra Admin anlegen der für solche Zwecke dient. Wenn dieser den gleichen Namen und das gleiche Passwort besitzt dann geht der Zugriff auch mit deinem ersten Script.
Ebenfalls Vorraussetzung ist das auf der anderen Maschine die "Remote Administration" Ausnahme in der Firewall freigegeben ist...
Kommandozeile dafür:
01.
netsh firewall set service REMOTEADMIN ENABLE SUBNET
mfg Uwe
Bitte warten ..
Mitglied: superwasi
11.08.2008 um 14:40 Uhr
Sorry Stofmeister, das kannst du ja nicht wissen.

Bei uns in der Firma hat jeder lokal Admin das gleiche Passwort.


Müsste es dann nicht auch mit dem lokal admin gehen?

Der Firewalldienst ist bei uns standartmässig deaktiviert, dieser müsste also keine Wirkung haben. Oder sehe ich das falsch.

Danke nochmals für deine Antworten.
Bitte warten ..
Mitglied: colinardo
11.08.2008 um 14:56 Uhr
Wie ich sehe hast du ein Authentifizierungsproblem.
Wenn du dich mit deinem aktuellen Usernamen und Password an dem anderen PC authentifizieren willst muss im Script die folgende Zeile geändert werden:

01.
Const WbemAuthenticationLevelPktPrivacy = 0

Diese Zeile definiert die Art und Weise wie sich das Script gegenüber dem PC ausweist.

Wenn du Wert "0" benutzt muss in dieser Zeile der Benutzername und das Passwort herausgenommen werden:

01.
Set objWMIService = objwbemLocator.ConnectServer(strComputer, "root\cimv2") 


Folgende Werte für Authentifizierung sind möglich :

WbemAuthenticationLevelDefault
0
Short name: Default

WMI uses the default Windows Authentication setting.

WbemAuthenticationLevelNone
1
Short name: None

Uses no authentication.

WbemAuthenticationLevelConnect
2
Short name: Connect

Authenticates the credentials of the client only when the client establishes a relationship with the server.

WbemAuthenticationLevelCall
3
Short name: Call

Authenticates only at the beginning of each call when the server receives the request.

WbemAuthenticationLevelPkt
4
Short name: Pkt

Authenticates that all data received is from the expected client.

WbemAuthenticationLevelPktIntegrity
5
0x5
Short name: PktIntegrity

Authenticates and verifies that none of the data transferred between client and server has been modified.

WbemAuthenticationLevelPktPrivacy
6
0x6
Short name: PktPrivacy

Authenticates all previous impersonation levels and encrypts the argument value of each remote procedure call.


weitere infos dazu findest du hier : MSDN
Bitte warten ..
Mitglied: superwasi
11.08.2008 um 15:07 Uhr
Super!

Danke für deine kompetente Hilfe.

Ich wünsche dir noch einen schönen Tag.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Netzwerkdrucker auslesen und neu hinzufügen
gelöst Frage von ApfeITeeBatch & Shell7 Kommentare

Hallo Leute, ich habe folgendes Problem: Ich möchte gerne per Batch meine Drucker auslesen und diese alle entfernen und ...

VB for Applications
VBS - Vor- und Nachnamen auslesen
Frage von Ah3n0bar6usVB for Applications2 Kommentare

Ich könnte noch einmal (teuren) Rat gebracuhen. Ich versuche mir dem u.a. Script den kompletten Namen eines Nutzers vom ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen
Frage von joni2000deBatch & Shell4 Kommentare

Hallo zusammen, ich lese mit folgendem Code das Eventlog aus um die Druckjobs zu ermitteln. Das funktioniert auf dem ...

Entwicklung
Zählerstände über SNMP und VBS auslesen
Frage von motofuzyEntwicklung4 Kommentare

Hallo ihr lieben, ich suche ein Script das in VBS oder Powershell geschrieben ist und mir die Zählerstände der ...

Neue Wissensbeiträge
Windows 10

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

Tipp von kgborn vor 1 TagWindows 107 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?
gelöst Frage von HelloWorldBatch & Shell20 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 ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

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 > ...