Drucker per Batchdatei bearbeiten

Chrisler1

Losemarkler^^
ID: 209272
L
20 April 2006
643
19
Hallo,

hoffentlich bin ich hier richtig!
Also nächste Woche ist es so weit und wir übersiedeln in der Arbeit.
Insgesamt sind es um die 200 Leute und ich muss schauen das jeder Arbeitsplatz wieder läuft. Nun da im neuen Haus die Drucker alle andere Namen vom Rechenzentrum bekommen müssen die bei jedem geändert werden.
Zur Zeit ist es so das die Drucker im RZ installiert sind und man mit der drucken.cmd die Drucker einstellen kann. Diese wird beim starten des Rechners ausgeführt und somit alle Drucker eingerichtet.
Aussehen tut Sie so:

@echo off
rem -----------------------------------------------------------------
rem ---- Druckerverbindungen für Microsoft-Printserver ----
rem -----------------------------------------------------------------
rem --- SA3 Q3/2004 ----
rem --- Version 1.8 ----
rem -----------------------------------------------------------------
rem Nötige Änderungen:
rem Ändern des AbteilungsKurzeichen
rem Ändern des AbteilungsPrintservers

set abtkurz=UAT
set PServer=PSUAT01

rem -----------------------------------------------------------------
rem ---- Anzeige der Druckerverbindung unter Drucker ----
rem -----------------------------------------------------------------
rem - Die rem's sind dort zu entfernen wo eine Verbindung gebraucht wird
rem - bzw. die Zeile kopieren falls mehrere Verbinungen benötigt werden
rem - Ändern von yy durch die laufenden Nummer des Druckers
rem -
rem - Der erste Drucker wird automatisch als Standarddrucker eingerichtet
rem -
rem - Für Standarddrucker
rem - zB: con2prt /cd \\%PServer%\q%abtkurz%01
rem - Für weitere Drucker
rem - zB: con2prt /c \\%PServer%\q%abtkurz%01

Rem - 1. Drucker (Standarddrucker)
con2prt /cd \\%PServer%\q%abtkurz%01

Rem - Weitere Drucker
con2prt /c \\%PServer%\q%abtkurz%05
con2prt /c \\%PServer%\q%abtkurz%06
con2prt /c \\PSBAW01\qbaw50

So mein Problem ist folgendes:
Ich hab nicht vor das ich bei allen 200 Anwendern diese Datei manuell zu ändern. Mein Plan ist es das ich jedem eine E-Mail schicke mit einem Link welcher zu einer Batchdatei im Netzwerk führt (auf die hat natürlich jeder Zugriff) und diese Datei muss erstmal alle bereits "installierten" Drucker am PC löschen, die neue Drucken.cmd vom Netzwerk holen und unter C:/Util abspeichern (die alte wird dabei überschrieben und die Meldung "Wollen Sie diese Datei überschreiben" soll automatisch mit JA beantwortet werden) und dann soll er die Datei gleich ausführen damit alle Drucker die derjenige bekommt gleich installiert sind!

Mein Ansatz ist folgender:

@echo off
copy /Y N.\Alle\drucken.cmd C:\util
C:\util\drucken.bat
:D:D:D

Das is mal das Grundscript mit dem die drucken.cmd vom Netzwerk in C:\Util reinkopiert wird aber wie können erst die alten Drucker gelöscht werden und wie mach ich das er die Datei dann automatisch ausführt?

Falls jemand meint die Batchdatei einfach im AD unter Anmeldescripten reinzugeben usw. das geht leider nicht oder is aufwendiger da wir da eine Genehmigung vom Rechenzentrum brauchen usw.

Wär kann mir helfen?
Danke
 
Du verwaltest 200 Benutzer, hast ein AD und machst das nicht über Gruppenrichtlinien??? Also ich mach das schon bei unseren 14 Leutz hier...

Ernsthaft, von Admin zu Admin, hol Dir lieber die Genehmigung, bzw. sieh zu, dass Du mal vernünftige Rechte über Dein AD bekommst. Alles andere ist doch super umständlich, und Du kannst echt nicht davon ausgehen, dass 200 Leute es schaffen Deine Anweisungen / Batchdateien vernünftig schaffen auszuführen.
Meine Meinung...
 
Du hast leicht reden :D
Ich bin Lehrling (bei euch sagt man glauch ich Azubi) und ich soll ja was lernen also auch das Programmieren und darum muss ich es so machen!
Die Leute müssen im Endeffekt nur auf den Link klicken und der Rest passiert alleine!

Außerdem kommt noch folgendes hinzu:

#include <windows.h>

int _tmain( int argc, _TCHAR* argv[ ] )
{
TCHAR tchCmptrNme[ MAX_COMPUTERNAME_LENGTH + 4 ];
DWORD dwCmptrNme = (DWORD) MAX_COMPUTERNAME_LENGTH + 1;

TCHAR tchUsrNme[ 130 ];
DWORD dwUsrNme = (DWORD) 128;

SYSTEMTIME systm;

GetComputerName( (LPTSTR) tchCmptrNme, (LPDWORD) &dwCmptrNme );

GetUserName( (LPTSTR) tchUsrNme, (LPDWORD) &dwUsrNme );

GetLocalTime( (LPSYSTEMTIME) &systm );
// GetSystemTime returns the internal clock in the UTC time zone
// GetLocalTime returns the internal clock in the current time zone

_tprintf( TEXT( "[%04hu-%02hu-%02hu, %02hu:%02hu:%02hu]: %s; %s\n" ),
systm.wYear, systm.wMonth, systm.wDay,
systm.wHour, systm.wMinute, systm.wSecond,
tchCmptrNme, tchUsrNme );

return 0;
}

Das wird hier "echo %USERNAME% >>N:\Alle\logfile.txt" statt dem echo aufgerufen.
Dann müsste ich eine logfile - Datei haben die mir ausspuckt welcher User wann die Datei aufgerufen hat und ich kann alles überprüfen!

Also es muss wirklich so erledigt werden sagt mein Ausbildner damit ich was lerne nur beim löschen komm ich nicht weiter...
 
:LOL: was lernt man dabei bitte? warum einfach wenns auch umständlich geht? sry... man kann im ad ganz simple ein drucker in eine oe setzen und schon ist er bei allen benutzern eingerichtet die in der selben oe sind. technik die begeistert :LOL: (ausser es sind richtige netzwerkdrucker, um das zu auomatisieren müssteste man nen msi paket mit den drucker treibern erstellen und mittels gruppenrichtlinien verteilen) und wenns dann doch ne batch sein soll zum lernen... dann kann man die notfalls als logon script laufen lassen, aber nicht per hand verteilen. damit lernt man höchstens umständlich zu arbeiten... windows ist schließlich kein linux, von daher sollte man die möglichkeiten ausschöpfen die ein geboten werden ;)

und mir ist eh ein rätsel wie du das machen willst... willst du für jede abteilung ne extra batch datei erstellen? na dass ist spaßig...
 
Keine Ahnung aber du vertritst die selbe Meinung :D
Tja schau wenn es so einfach wäre.
Nicht jeder der in einer OE ist ist im selben Gebäude und hat somit nicht die selben Drucker. Ich müsste es also wieder händisch verteilen.
So schick ich 5 Mails raus die zu 5 verschiedenen Links und jeder klickt einmal und das wars aber ich bring es nicht zusammen per Batchdatei die Drucker zu löschen.
Werde einfach in der Mail vermerken das erst nach neu start das ganze gültig is und ja damit müssen die leben :D

Danke das so auf meine Fragen eingegangen wurde!
Für mich hat sich das Thema da wir schon übersiedeln!

Gruß Alex
 
nabend,

finde auch, dass es die einfachste Lösung wäre, es mit Gruppenrichtlinien im ActiveDirectory zu machen. Dazu musst du natürlich lokale Adminrechte am Server haben um im AD etwas zu verändern. Nur leider lassen viele Admins keine Azubis an irgendwelche Server. Ich kenn das aus meiner Ausbildung - hab mir da sehr viel selber durch eine Testumgebung beibringen müssen. Also ich weiß, dass man in den Organisationseinheiten (OEs) Standarddrucker angeben kann, die dann genau für die OE verwendet werden können. Recht hoher Administrativer Aufwand ist es dann wirklich, an jeden PC dieses script ausführen zu lassen. Ich weiß, ich rede hier viel von active directory und den ganzen Kram, aber wenn man keinen Zugang dazu hat ist es immer schwer solche Sachen zu machen.

hast du irgendwelche Rechte am Dinge am Server zu machen, oder ist es dir auch verboten, da etwas dran zu machen?

LG h3x3r
 
Zuletzt bearbeitet: