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
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
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
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
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
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
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
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
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
Ich hoffe ihr könnt mir bei meinem Problem weiter helfen. Vielen Dank schon mal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 68905
Url: https://administrator.de/contentid/68905
Ausgedruckt am: 26.11.2024 um 15:11 Uhr
22 Kommentare
Neuester Kommentar
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.
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.
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
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
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.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.
Für das Netzwerkdrucker zuweisen habe ich noch kein script gefunden, was
funktioniert, würde da also noch eines benötigen.
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.mir, also läuft das DHCP nicht.
Aaaaalso:
Folgende Verbesserungen:
- Erstens: Das @ vor den copy-Befehlen weg
- Zweitens: Folgende Zeilen anpassen:
Beim Ziel darf kein "\" zuhinterst stehen.
Gruss TuXHunT3R
Edit:
Der Rename-Befehl sollte laufen, habs bei mir getestet
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
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:
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:
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:
Gruss TuXHunT3R
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
[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
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
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