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

Drucker und Benutzer

Anleitung Entwicklung Batch & Shell

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

12.10.2009, aktualisiert 21:23 Uhr, 9863 Aufrufe, 1 Kommentar

Ein Netzwerkdrucker wird getauscht - wie finde ich heraus wer ihn alles verbunden hat?

Hallo zusammen,

in größeren Organisationen ist es üblich, dass es zwar Abteilungsdrucker gibt, der eine oder andere Benutzer aber auch gerne mal hier oder da druckt, vielleicht auch lieber auf dem Drucker im 1. OG weil der Farbe kann oder besser/schneller ist usw.. Mit anderen Worten - werden eines oder mehrere Großgeräte getauscht, ist es nicht immer ganz leicht herauszufinden, wer alles den Drucker benutzt, das wollen wir ja aber. Schließlich muss der neue Drucker auch wieder eingerichtet werden, denn auch wenn der Standarddrucker oftmals per Script verbunden wird, so ist das bei Userseitig eingebundenen Druckern normalerweise nicht der Fall.

Mittels der nachfolgenden Batch-Datei (die von jedem Benutzer über das Logon-Script aufgerufen werden muss) kann dies relativ einfach herausgefunden werden.

Vom Prinzip her arbeitet das Script so:
1. Registry-Export der Drucker des angemeldeten Users erzeugen

Das sieht dann in etwa so aus:
! REG.EXE VERSION 3.0
HKEY_CURRENT_USER\Printers\Connections\
Printservername,,Druckername1
Printservername,,Druckername2
Printservername1,,Druckername1

Recht unschön. Ausserdem interessieren und nicht alle Drucker also gehts weiter mit Punkt 2

2. Zu suchende Drucker im Export ausfindig machen und bei Erfolg in eine "saubere" Datei schreiben
Das wird eine einfache Auflistung aller gesuchten und gefundenen Drucker, sieht dann in etwa so aus:

Druckername1
Druckername2

usw.

3. Textdatei erstellen für jeden gesuchten und gefundenen Drucker und Eintragung des Benutzernamens. Bei bestehender Datei nur Eintragung des Benutzernamens.
Um nun eine Übersicht zu erhalten, welche User welchen der gesuchten Drucker verbunden hat, wird pro Drucker eine Datei angelegt und der Benutzer hineingeschrieben.
Die Datei heißt also z.B. Drucker1.csv und hat den Inhalt

Benutzername1
Benutzername4
Benutzername5


Nun haben wir also eine Übersicht nach Drucker und können die Benutzer per Mail anschreiben oder was auch immer...

Hier nun der Quelltext für die Batch (funktioniert nur in Domänennetzwerken mit verbundenen Druckern):


Zunächst werden Variablen deklariert. Wichtig ist hierbei dass als Ausgabepfad ein Verzeichnis verwendet wird, in dem alle Benutzer Schreibrechte haben.
01.
REM Variablen für Programm deklarieren 
02.
set Ausgabeverzeichnis=\\Domaenenname\Server\Gemeinsame_Freigabe 
03.
set Ausgabeformat=csv
Wurde das Script schon einmal ausgeführt, aber abgebrochen, so werden die temporär benötigten Dateien hiermit gelöscht, um Doppeleinträge zu vermeiden.
Danach wird der Registry-Export erzeugt:
01.
REM Alte Text-Dateien werden falls vorhanden geloescht, neuer Registry-Export erzeugt 
02.
if exist %temp%\regdump_installed_printers.txt del %temp%\regdump_installed_printers.txt 
03.
if exist %temp%\total_installed_printers.txt del %temp%\total_installed_printers.txt 
04.
reg query HKEY_CURRENT_USER\Printers\Connections\ > %temp%\regdump_installed_printers.txt

Hier werden nun nacheinander die gewünschten Drucker im Registry-Export gesucht und bei Auffinden wird der Benutzername über die temporäre Textdatei total_installed_printers.txt in die endgültige Datei (z.B. Drucker1.csv) geschrieben
01.
REM Durchsuchung des Registry-Exports nach den gewünschten Druckern 
02.
:Find_Drucker1 
03.
@echo --- Suche ersten Drucker --- 
04.
findstr "%USERNAME%" %Ausgabeverzeichnis%\Drucker1.%Ausgabeformat% >nul && goto :Find_Drucker2 
05.
findstr "Drucker1" %temp%\regdump_installed_printers.txt>nul && @echo MFPC-102a >> %temp%\total_installed_printers.txt && @echo %USERNAME% >> %Ausgabeverzeichnis%\Drucker1.%Ausgabeformat% 
06.
@echo ---------------------------- 
07.
 
08.
:Find_Drucker2 
09.
@echo --- Suche zweiten Drucker --- 
10.
findstr "%USERNAME%" %Ausgabeverzeichnis%\Drucker2.%Ausgabeformat% >nul && goto :Find_Drucker3 
11.
findstr "Drucker2" %temp%\regdump_installed_printers.txt>nul && @echo Drucker2 >> %temp%\total_installed_printers.txt && @echo %USERNAME% >> %Ausgabeverzeichnis%\Drucker2.%Ausgabeformat% 
12.
@echo ----------------------------- 
13.
 
14.
:Find_Drucker3 
15.
@echo --- Suche dritten Drucker --- 
16.
findstr "%USERNAME%" %Ausgabeverzeichnis%\Drucker3.%Ausgabeformat% >nul && goto :Find_Drucker4 
17.
findstr "Drucker3" %temp%\regdump_installed_printers.txt>nul && @echo Drucker3 >> %temp%\total_installed_printers.txt && @echo %USERNAME% >> %Ausgabeverzeichnis%\Drucker3.%Ausgabeformat% 
18.
@echo ----------------------------- 
19.
 
20.
:Find_Drucker4 
21.
@echo --- Suche vierten Drucker --- 
22.
findstr "%USERNAME%" %Ausgabeverzeichnis%\Drucker4%Ausgabeformat% >nul && goto :eof 
23.
findstr "Drucker4" %temp%\regdump_installed_printers.txt>nul && @echo Drucker4 >> %temp%\total_installed_printers.txt && @echo %USERNAME% >> %Ausgabeverzeichnis%Drucker4.%Ausgabeformat% 
24.
@echo -----------------------------

Danach noch ein goto :Ende um nicht in einer Endlosschleife hängen zu bleiben:
01.
goto :Ende

Und wie es sich gehört, räumen wir danach auf...
01.
:Ende 
02.
REM Loeschen der nicht mehr benoetigten, temporaeren Dateien 
03.
del %TEMP%\total_installed_printers.txt 
04.
del %TEMP%\regdump_installed_printers.txt



Ich hoffe die Anleitung ist soweit verständlich, dass man das Script nachbauen kann.
Würde mich freuen, wenn es dem einen oder anderen hilft...

Viele Grüße
Larz
Mitglied: Dani
24.10.2009 um 00:36 Uhr
Hi Larz,
warum immer so kompliziert?! Einfach über Batch ein Kix-Script aufrufen...da Lässt sich das Ganze mit 7 Zeilen realsieren:
01.
If DelPrinterConnection ("ALTER DRUCKERNAME") = 0 
02.
  ? "Deleted printer connection...." 
03.
Endif 
04.
 
05.
If ADDPRINTERCONNECTION ("\\server\druckerfreigabe") = 0 
06.
  ? "Added printer connection...." 
07.
Endif
Die entsprechenden Namen müssen eben noch ersetzt werden und das Script mit der Endung ".kix" gespeichert werden. Auf dem Netlogon das Kix entpacken und im Loginscript wie folgt aufrufen:
01.
.... 
02.
"\\%logonserver%\netlogon\kix\kix.exe" "\\%logonserver%\netlogon\transfer_printer.kix" 
03.
...
Fertig ist der Druckertausch... Funktioniert unter Windows 2000, XP, Vista und 7. Vorallem du musst nicht in der Registry rumbasteln.


Grüße,
Dani
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Kritische Pfadlänge für Benutzer kenntlich machen (Script)
Anleitung von manuel-rBatch & Shell12 Kommentare

Wir alle kennen das Problem mit den zu langen Pfaden und allem was es an Problemen mit sich bringt. ...

Viren und Trojaner
Ransomware "Ordinypt" hat es auf Benutzer aus Deutschland abgesehen
Information von MrCountViren und Trojaner6 Kommentare

Ordinypt hat es auf Benutzer aus Deutschland abgesehen Die Ransomware "Ordinypt" (auch bekannt unter dem wenig handlichen Namen „HSDFSDCrypt“) ...

Windows Server
Teamviewer-IDs von angemeldeten Benutzern auslesen
Tipp von BirdyBWindows Server10 Kommentare

Auch wenn es im Allgemeinen verpönt ist, nutzen wir derzeit noch den Teamviewer für den Remotesupport. Unter Anderem läuft ...

Windows 8
HP-Drucker meldet sich unerwartet offline
Anleitung von InternetterWindows 85 Kommentare

Ist es euch auch schon passiert? Ihr habt euren Netzwerk-Drucker eingeschaltet und wollt drucken und dann meldet sich der ...

Neue Wissensbeiträge
Windows 10

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

Tipp von kgborn vor 23 MinutenWindows 10

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 2 StundenSicherheits-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 16 StundenInternet2 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 19 StundenDSL, VDSL1 Kommentar

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

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...