bunny-buster
Goto Top

Anmeldescript mit Druckerzuweisung, Reg ändern, Laufwerke zuweisen

Hallo

Ich hoffe es kann mir jemand von euch weiterhelfen. Ich habe seit einiger Zeit ein Problem, was mir leider auch das grosse www nicht beantworten kann.

Ich möchte ein Anmeldescript erstellen, in dem folgendes vorhanden sein soll:

- Einschalten der cmd.exe (RegSchlüssel ist vorhanden, muß aber mit AdminRechten durchgeführt werden)

- die übliche Laufwerkszuweisung (ist soweit kein Problem, die habe ich)

- eine Netzwerkdruckerzuweisung (stellt sich wür mich als größtes Problem dar)

- eine Prüfung ob der WINS und DNS eingetragen sind, evtl mit IF-Abfrage (Parameter soweit vorhanden, wen die .bat von Hand
ausgeführt wird funktioniert es soweit auch)

- kopieren von Stinger.exe und diese ausführen und das Protokoll zurück zum Server kopieren (Grund: ich habe irgendwo noch einen
Trojaner oder sonstiges, der mein Netz ausbremst und den Trafic in die Höhe treibt. Ich habe als Standart Virensoftware Symantec
neuste Version und Updates drauf, aber der erkennt es nicht)

- der Client soll noch eine Login-Zusammenfassung am Schluß bekommen bekommen, die ihm anzeigt:
+ dies ist dein Loginname
+ dein Rechnername
+ in der Domän hast du dich angemeldet
+ mit diesen Laufwerken wurdest du verbunden
+ mit diesen Netzwerkdruckern wurdest du verbunden
die Login-Zusammenfassung ist ebenfalls bereits vorhanden

- zum Schluß noch das ausschalten der cmd.exe (damit der Client nicht mit der cmd arbeiten kann, was er ja auch nicht benötigt)


Ich arbeite mit dem Windows 2k Server und die Clients ca. 120 mit Windows 2k, alle neuen Uptades sind vorhanden.

Ich setz jetzt auch gleich mal meine Scripte mit rein und hoffe das es euch bei der Hilfe helfen wird

Hier das LoginScript: z.B. KTF.bat
@echo off

rem 11:10 24.08.2007
rem ## löschen der benötigten Laufwerksbuchstaben (dringend empfohlen)
net use X: /delete /y
net Use z: /delete /y
net use W: /delete /y
net use V: /delete /y


rem ## erstellen der neuen Laufwerke
	rem ## komplette Abteilung
	net use z: \\189.67.12.110\server"\abtlg" /persistent:no  

	rem ## Arbeitsordner vom KTF
	net use X: \\189.67.12.110\server\Abtlg\Arbeitsordner"\KTF" /persistent:no  

	rem ## Schwarzes Brett
	net use W: \\189.67.12.110"\SchwarzesBrett" /persistent:no  

rem ====================================================================

rem ## hier kommen noch die Druckerzuweisungen hin, wenn der Befehl mal funtioniert.


rem ## aufrufen der LoginÜbersicht in der der Nutzer sieht was er für Laufwerke zugewiesen bekommen hat, 
rem ## den Rechnernamen, die Domäne, den LoginNamen und
rem ## und was für Drucker installiert sind
	rem ## Übersicht zur Nutzeranmeldung
	start \\189.67.12.2\netlogon\login_zusammenfassung.vbs

rem ## Starten der Einträge in die Netzwerkeinstellungen, DNS und WINS
	start \\189.67.12.2\netlogon\wins.bat

rem ## Starten des AntiVieren Progrmmes STINGER
		copy \\189.67.12.2\netlogon\stinger.exe c:\Temp\
		start c:\stinger.exe /ADL /GO /LOG /SILENT


rem ######################################################################

rem ##das muß der letzte Befehl bleiben, sonst funktioniert die cmd nicht mehr
rem ## startet das Abschalten der CMD.exe
        copy \\pdc\netlogon\anmeldung\pw.txt c:\
        runas /netonly /user:Computer\administrator "cmd \\189.67.12.2\netlogon\anmeldung\cmd_aus.bat" < c:\pw.txt  

pause
:end
Wie ihr sehen könnt, gib es hier noch die größten Probleme mit der Druckerzuweisung, weil ich noch nicht weis wie ich das machen soll. Ich habe auch schon einige Versuche gestartet, das Problem ist, das die meisten wie z.B. rundll32 den Drucker mindestens am LTP1 haben wollen. Da die Drucker aber reine Netzwerkdrucker sind, müßen die z.B. über die IP 189.67.12.65 aufgerufen werden und installiert werden beim Client. Ich habe es auch schon über die AU versucht, in der untersten Ebene funktioniert es auch aber das bringt mir nichts, da ich noch eine Ebene höher muß. Um z.B. einen Drucker der im gesamten Gebäude verwendet wird für alle zu installieren.
Beim Stinger funktioniert das Protokoll noch nicht richtig, und es wird nicht auf dem Server gespeichert.

Jetzt zu noch einem großen Problem mit der cmd.exe
Da ich da mit AdminRechten arbeiten muß um die Reg zu ändern habe ich es auch schon mit der runas funktion versucht aber das funktioniert nicht. Er schreibt den eintrag nicht in die Reg.
Hier mal die cmd_aus.bat
@echo off
echo Windows Registry Editor Version 5.00 > %TEMP%test.reg
echo. >> %TEMP%test.reg
echo ;Classic search, full path in title bar and address bar. >> %TEMP%test.reg
echo [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System] >> %TEMP%test.reg
echo "DisableCMD"=dword:00000002 >> %TEMP%test.reg  
echo. >> %TEMP%test.reg
regedit /s %TEMP%test.reg
del %TEMP%test.reg

exit
Diese soll am Schluß des Anmeldescriptes ausgeführt werden und die cmd ausschalten.

Das Einschalten der cmd soll erfolgen wen der User sich abmeldet, dass wollte ich über die Gruppenrichtlinie der Domäne regeln, also unter Abmelden. Funktioniert aber auch nicht so wie es soll.

Hier die cmd_an.bat
@echo off
echo Windows Registry Editor Version 5.00 > %TEMP%test.reg
echo. >> %TEMP%test.reg
echo ;Classic search, full path in title bar and address bar. >> %TEMP%test.reg
echo [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System] >> %TEMP%test.reg
echo "DisableCMD"=dword:00000000 >> %TEMP%test.reg  
echo. >> %TEMP%test.reg
regedit /s %TEMP%test.reg
del %TEMP%test.reg

exit
</
Aufgerufen wird sie über diese Abmelden.bat:

@echo off

runas /env /user:administrator@domäne "cmd \\189.67.12.2\netlogon\anmeldescript\cmd_an.bat" < \\189.67.12.2\netlogon\Pw.txt  

exit
Beim starten der Netzwerkeinstellungen soll geprüft werden ob der WINS und DNS schon richtig drin steht, wenn nicht diesen ersetzen durch die Vorgabe.
Hier noch die wins.bat
@echo off

netsh interface ip set dns "LAN" static 189.67.12.2  

netsh interface ip add dns "LAN" addr=160.4.7.23  

netsh interface ip set wins "LAN" static 189.67.12.2  

exit
Das eintragen funktioniert auch soweit, nur weis ich nicht wie ich die If-Anweisung dafür schreiben soll. Das er nur dann ersetzt wenn nichts vorhanden ist, oder z.B. die DNS-Server falschherum drin stehen.


Ich hoffe ihr könnt mir bei meinem Problem weiter helfen. Vielen Dank schon mal

Content-ID: 68905

Url: https://administrator.de/contentid/68905

Ausgedruckt am: 26.11.2024 um 15:11 Uhr

Logan000
Logan000 18.09.2007 um 12:54:22 Uhr
Goto Top
Wenn ich die richtig verstanden habe hast du eine Domäne mit AD.
Dann lautet mein Rat:
Teil das Skript auf.
z.B:
- Netz laufwerke verbinden
- Netzdrucker einrichten
- Virenscanner starten
und starte diese skripte per GPO.
Kommandozeile lässt sich ebenfalls per GPO ausblenden.

DNS und WINS würde ich per DHCP setzen da kannst du Dir die überprüfung sparen.
Für die Druckerzuweisung verwende Con2Prt.
bunny-buster
bunny-buster 18.09.2007 um 13:11:45 Uhr
Goto Top
danke für die schnelle antwort

Ja ich habe eine Domäne mit AD, sorry hatte ich vergessen zu schreiben.

Netzlaufwerke und Virenscanner starten ist kein Problem, funktioniert auch, obwohl es in einem script ist, nur das Protokoll noch nicht.

Die Kommandozeile will ich nicht nur ausblenden sondern direckt abschalten, hat einfach den Hintergrund das einige User meinen sie müßten ein wenig rumspielen im Netz und da man die ja immer nochaufrufen kann über z.B. c:\WINNT muß die komplett dicht sein.


Edit:

Für das Netzwerkdrucker zuweisen habe ich noch kein script gefunden, was funktioniert, würde da also noch eines benötigen.

Die IP-Adressen bekommen die Clients von mir, also läuft das DHCP nicht.
TuXHunt3R
TuXHunt3R 18.09.2007 um 13:28:07 Uhr
Goto Top
Betreffend Druckerverbindungen:

Schau dir mal das Tool con2prt.exe aus dem Windows 2000 Resource Kit an. Damit kannst du Drucker löschen, Drucker verbinden und Drucker als Standarddrucker setzen, vorausgesetzt, es handelt sich um Serverqueues.

Die Syntax findest du mit con2prt /? heraus. Damit das Tool allen zur Verfügung steht könntest du es in den Netlogon-Share des Domänencontrollers (\\DC\netlogon) reinkopieren, so musst du es nicht auf jeder Kiste zur Verfügung stellen
Logan000
Logan000 18.09.2007 um 13:34:19 Uhr
Goto Top
Die Kommandozeile will ich nicht nur ausblenden sondern direckt abschalten, hat
einfach den Hintergrund das einige User meinen sie müßten ein wenig
rumspielen im Netz und da man die ja immer nochaufrufen kann über z.B. c:\WINNT
muß die komplett dicht sein.
Aus diesem Grund blenden wir bei uns C:\ per GPO aus sowie Ausfüren im Startmenü aus.

Für das Netzwerkdrucker zuweisen habe ich noch kein script gefunden, was
funktioniert, würde da also noch eines benötigen.

rem Netzdrucker löschen
con2prt /f

rem Netzdrucker einbinden
con2prt /c \\Server\Freigabename

Die IP-Adressen bekommen die Clients von
mir, also läuft das DHCP nicht.
Nun ich würde die Arbeit lieber von einer Maschine machen lassen. Dafür haben wir sie schliesslich.
bunny-buster
bunny-buster 18.09.2007 um 13:35:02 Uhr
Goto Top
Ich werde es gleich mal mit dem Druckertool ausprobieren, mal sehen wie sich das so macht.
bunny-buster
bunny-buster 18.09.2007 um 13:39:21 Uhr
Goto Top
Logan ich für meinen Teil würde die Arbeit auch von einer Maschine machen lassen aber leider gehört unser Unternehmen mal ein wenig saniert. Da wir noch mit Modempärchen arbeiten und diese auch IP-Adressen benötigen habe ich erstmal die Lösung ohne DHCP, muß erstmal reichen. face-sad

Das andere werde ich mal versuchen und sehen wie es läuft.
Logan000
Logan000 18.09.2007 um 14:02:20 Uhr
Goto Top
Kein Problem. Ich wollte auch nicht den Besserwisser spielen.

Aber sag mal was ist ein Modempärchen?
bunny-buster
bunny-buster 18.09.2007 um 14:07:31 Uhr
Goto Top
Ein Modempärchen brauchen wir, leider um die Verbindung vom Hauptverteilerkonoten in ein anderes Gebäde zu haben. Oder einfach 2 Router die über die Telefonleitung mit einander komunizieren.

Ich hoffe das wir bald mal komplett verkabelt werden, dann ist das auch endlich übern Tisch.


Ich bin über jede Hilfe dankbar, hat mich jetzt schon seit geraumer Zeit gefuchst, mal sehen ob ich es jetzt mit den Tipps hin bekomm, wenn nicht muß ich nochmal fragen.
bunny-buster
bunny-buster 19.09.2007 um 10:24:16 Uhr
Goto Top
So ich habe das mit der Druckerzuweisung mal versucht, aber leider passiert rein garnichts.

Kann da jemand was mit anfangen? Hier noch der benutzte Code.

@echo off
rem ------------ Benutzer- / Gruppenabfrage, Zuweisung Drucker ---------------
rem benötigte Tools: con2prt.exe und ifmember.exe aus dem ResKit
rem da das con2prt immer im freien Download war, kann man es auch unter
rem http://www.gruppenrichtlinien.de/tools/con2prt.exe herunterladen


rem [ COMMON, fuer alle Benutzer gueltig ]

rem Mapping der Laufwerke, die allen zur Verfuegung stehen
rem net use m: \\server\freigabe1 /persistent:no
rem net use n: \\server\freigabe2 /persistent:no

rem [ Auswahl, des Sprungziels nach Gruppenzugehoerigkeit ]

rem Auswahl der Gruppe ueber ifmember.exe, wenn Uebereinstimmung,
rem dann Sprungziel Auswahl

\\server\netlogon\ifmember Abteilung
if errorlevel 1 goto GR_Abteilung

rem weitere Abfragen möglich
rem Abgeschlossen wird das Ganze durch ein GOTO END, damit bei keiner Übereinstimmung
rem der Gruppenzugehörigkeit, keine weitere Aktiion durchgeführt wird.
goto END

rem [ Sprungziel Abteilung ]

:GR_Abteilung
rem
Drucker im Buero/Verwaltung, es wird noch kein Standarddrucker zugewiesen
rem
innerhalb dieser Gruppe kann widerum nach Benutzernamen oder Computernamen
rem
unterschieden werden

rem
diese Drucker stehen allen Mitgleidern zur Verfügung
rem
con2prt Optionen: /c = connect; /cd= connect default; /f = lösche vorhandene
%logonserver%\netlogon\con2prt /c "\\server\Lexmark"
%logonserver%\netlogon\con2prt /c "\\server\HPLaserjet1300"

rem Netzdrucker löschen
con2prt /f

rem durch den Parameter /i wird nicht in Klein-/Großschreibung unterschieden
if /i %username%==Test.Person goto Perstest
if /i %username%==Test.Test goto Test

:Perstest
%logonserver%\netlogon\con2prt /cd "\\server\Lexmark"
%logonserver%\netlogon\con2prt /c "\\server\HPLaserjet1300"
goto END

:Test
%logonserver%\netlogon\con2prt /c "\\server\Lexmark"
%logonserver%\netlogon\con2prt /cd "\\server\HPLaserjet1300"
goto END

:END
Logan000
Logan000 19.09.2007 um 11:13:04 Uhr
Goto Top
Kreis das Problem ein.
Funktioniert z.B.
%logonserver%\netlogon\con2prt /c "\\server\HPLaserjet1300"  
in der Kommandozeile eines Clients?

Wenn nicht: Ist der Drucker Freigegeben? Ist der Freigabename richtig?
bunny-buster
bunny-buster 19.09.2007 um 11:30:06 Uhr
Goto Top
Hier der Text aus der Konsolle:

Connected to printer: \\server\Lexmark.
Failed to connect to Windows NT printer: \\server\HPLaserjet1300.
Please check to see that the printer exists.
Removed connection to printer: \\SERVER\Lexmark
Connected to printer: \\server\Lexmark.
Set the printer: \\server\Lexmark as your default printer.
Failed to connect to Windows NT printer: \\server\189.67.12.73.
Please check to see that the printer exists.
Drücken Sie eine beliebige Taste . . .

Ich habe es jetzt doch endlich hin bekommen, dass er schon mal wieder anmeldet und auch ein kleiner Rückfall mit dem Code. Wenn man nicht an alle Stellen denkt face-sad , hatte ein paar Gänsefüsschen vergessen.

Jetzt hier zum Drucker connecten. Mit dem con2prt bin ich auf jedenfall schon mal weiter als mit allen anderen Versuchen.
Wie man sieht wird der Lexmark verbunden, läuft auch super, nur der HP macht mir noch ein wenig Sorgen.
Ich habe schon Versucht über Freigabenamen und die IP ihn anzusprechen, wird aber nicht gefunden (siehe oben), ich weis nicht, ist eigentlich ein normaler Drucker mit einem PrintServer dran, hätte also auch funktionieren sollen.
bunny-buster
bunny-buster 22.09.2007 um 10:44:01 Uhr
Goto Top
Habe die Batch soweit hin bekommen.

Jetzt aber noch was, ich möchte die Stinger.log automatisch umbenennen in username.log, hat da noch jemand ne Idee dazu???
TuXHunt3R
TuXHunt3R 22.09.2007 um 18:59:11 Uhr
Goto Top
Hallo bunny-buster

Betreffend dem Umbennen schau dir mal den Befehl "rename" an
bunny-buster
bunny-buster 24.09.2007 um 13:29:02 Uhr
Goto Top
Habe ich schon, ich möchte aber am besten eine Variable her nehmen. So das die Stinger.bat gleich auf den jeweiligen Rechnernamen umbenannt wird.

Ich habe bis jetzt dies, geht aber nicht:

rem ## Starten des AntiVieren Progrmmes STINGER
@copy %logonserver%\netlogon\stinger.exe c:\Temp\
start /wait c:\Temp\stinger.exe /ADL /GO /SILENT /LOG
rename c:\Temp\Stinger.log %Computername%.log
@copy c:\Temp\%computername%.log \\Server\StingerProtokolle\

leider bringt er mir dann als fehler, dass er die Datei nicht gefunden hat.
TuXHunt3R
TuXHunt3R 24.09.2007 um 16:01:39 Uhr
Goto Top
Aaaaalso:

Folgende Verbesserungen:

- Erstens: Das @ vor den copy-Befehlen weg
- Zweitens: Folgende Zeilen anpassen:
copy %logonserver%\netlogon\stinger.exe c:\Temp

Copy c:\Temp\%computername%.log \\Server\StingerProtokolle

Beim Ziel darf kein "\" zuhinterst stehen.

Gruss TuXHunT3R


Edit:
Der Rename-Befehl sollte laufen, habs bei mir getestet
bunny-buster
bunny-buster 24.09.2007 um 18:42:03 Uhr
Goto Top
Er bringt mir bei der stinger.log schon den Fehler, dass die nicht da ist.

Eigentlich sollte der nächste Befehl ja warten bis die stinger.exe fertig ist, oder muß ich da noch extra ne Abfrage machen??
TuXHunt3R
TuXHunt3R 24.09.2007 um 21:40:31 Uhr
Goto Top
Ich kenne stinger nicht, aber ich schliesse aus deinem Batch, dass das Programm mit dem Parameter /log ein Logfile in den aktuellen Ordner schreibt.

Falls der Inhalt des Logfile der gleiche ist wie die Ausgabe auf der Konsole ohne die Parameter /LOG und /SILENT, kannst du ja die Ausgabe direkt in eine Datei umleiten, z.B. so:
start /wait C:\temp\stinger.exe /adl /go >>\\server\StingerProtokolle\%computername%.log

Das wäre eine Idee, aber wie gesagt, ich kenne Stinger nicht.


Aber zum anderen Problem:
Hast du die folgende Befehlszeile schon mal einzeln ausgeführt, d.h. Copy-Paste ins CMD und so laufen lassen? Danach könntest du zumindest mal überprüfen, ob das Logfile gemacht wurde.

Ein weiteres Problem könnte sein, dass der PC das Logfile noch nicht richtig erstellt hat, er aber schon zum nächsten Befehl springen will, sprich er will das Logfile umbennen, es ist aber noch gar nicht erstellt. Dem könntest du entgegenwirken, indem du folgende Zeile vor dem "rename" einpflanzt:
sleep 5
Damit wartet er 5 Sekunden, bis er weitermacht, sprich, er hat dann quasi 5 Sekunden länger Zeit, um das Logfile zu schreiben. Das hat mir schon des Öfteren geholfen.

[EDIT]

Sollte zwar eigentlich nicht nötig sein, da du stinger.exe ja mittels "start /wait" startest

[/EDIT]

PS: Die "sleep.exe" befindet sich im Windows Resource Kit, alternativ könntest du auch folgendes einbauen:
ping -n 5 localhost >nul


Gruss TuXHunT3R
bunny-buster
bunny-buster 26.09.2007 um 08:22:15 Uhr
Goto Top
Kann es sein das man beim zuweisen von HP-Druckern was beachten muss??

Ich bekomm immer die selbe Fehlermeldung, habe auch schon versucht ander HP zu nehemen, geht aber auch nicht. Mit den Lexmark-Druckern läuft es super. Er greift aber auch auf die falschen IP-Adressen zu, dass ist mir ein wenig unverständlich, zu mindest bei den HP Druckern.

Hier mal die Fehlermeldung:
Connected to printer: \\server\Lexmark
Connected to printer: \\189.67.13.15\1KPGEZIDR.
Der Befehl wurde erfolgreich ausgeführt.

Der Befehl wurde erfolgreich ausgeführt.

Der Befehl wurde erfolgreich ausgeführt.

Connected to printer: \\189.67.13.15\Lexmark.
Failed to connect to Windows NT printer: \\189.67.12.10\LJet1300. (HP)
Please check to see that the printer exists.
Failed to connect to Windows NT printer: \\189.67.12.10\HPLaserJet. (HP)
Please check to see that the printer exists.
Failed to connect to Windows NT printer: \\189.67.12.10\LJ. (HP)
Please check to see that the printer exists.
1 Datei(en) kopiert.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Drücken Sie eine beliebige Taste . . .

Das mit der Stinger.log macht er nur teilweise, also das umbenennen macht er. Auf den Server wird sie auch geschoben, aber dann ist sie leer.
Ich denke mir das er das Verschieben macht bevor der Stinger fertig ist mit scannen. Habe es auch schon mit dem sleep und dem ping versucht, geht leider auch nicht.

Hier nochmal der Code dazu:

rem ## die Druckerzuweisungen
%logonserver%\netlogon\con2prt /c \\189.67.13.15"\Lexmark"
%logonserver%\netlogon\con2prt /c \\189.67.12.10"\LJet1300"
%logonserver%\netlogon\con2prt /c \\189.67.12.23"\HPLaserJet"
%logonserver%\netlogon\con2prt /c \\189.67.12.112"\LJ"

rem ## Starten des AntiVieren Progrmmes STINGER
@copy %logonserver%\netlogon\stinger.exe c:\Temp\
start /wait c:\Temp\stinger.exe /ADL /GO /SILENT /LOG
sleep 5
rename c:\Temp\Stinger.log %Computername%.log
@copy c:\Temp\%computername%.log \\server\StingerProtokolle\

Das @ kann stehen bleiben sagt ja nur das bei der Ausgabe in der cmd nur steht: 1 Datei kopiert und nicht der ganze Pfad

Ich habe gerade festgestellt das es mit Admin-Rechten funktioniert mit den HP Druckern.
Logan000
Logan000 26.09.2007 um 09:22:50 Uhr
Goto Top
Ich habe gerade festgestellt das es mit Admin-Rechten funktioniert mit den HP Druckern.

Das klingt nach einem Problem mit den Freigabe Berechtigungen des Druckers. Überprüf die mal.
bunny-buster
bunny-buster 26.09.2007 um 09:38:22 Uhr
Goto Top
Berechtigungungen passen steht sogar JEDER mit drucken da, sollte also nicht daran liegen

edit:

der Stinger geht auch, ich sollte halt nicht ne Stinger.log umbenennen, wenn es doch ne Stinger.txt ist face-sad
andy77
andy77 29.09.2009 um 13:36:34 Uhr
Goto Top
Hi board,
habt ihr das Problem mit dem

Failed to connect to Windows NT printer: \\189.67.12.10\HPLaserJet. (HP)
Please check to see that the printer exists.

in den griff bekommen?
Habe das selbe Problem bei uns.

mfg
Metzger-MCP
Metzger-MCP 09.06.2010 um 14:46:52 Uhr
Goto Top
Hallo Leutz,
man kann auch die Drucker anders per script einbinden.

"" rundll32 printui.dll,PrintUIEntry /in /n "\\PRINTSERVER\DRUCKERFREIGABE ""

Als Variation mit AD-Gruppen zur Zuweisung.

das mit IFMEMBER ( Zusatztool )

\\DOMCONTROLLER\netlogon\ifmember ADDRUCKERGRUPPE
if %errorlevel%==1 (
rundll32 printui.dll,PrintUIEntry /in /n "\\PRINTSERVER\DRUCKERFREIGABE
)

MFG Uwe