ageers
Goto Top

Shutdown Herunterfahren Script wird abgebrochen

Hallo,

ich habe ein Script/batch erstellt, das beim beeenden die Rechner aufräumt.
Temp Verzeichnisse für alle User aufräumen (alter asl 30 tage), Uninstall Ordner der Windows Update löscht, Temporäre Windows Updates aus dem Verzeichnis Softwaredistribution löscht.
Und am Ende Defragmentiert was unter W2k und wxp funktioniert.

Allerdings bricht windows nach ca. 25 Sekunden ab.

Wie oder wo kann ich einstellen das er die Scripte bis zum ende durchführen soll.
Defrag dauert nun mal etwas länger da die ganzen windows Updates ziemlich
fragmentieren...

Danke für eure Hilfe!

mfg
Ansgar Geers

Content-Key: 63534

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

Printed on: April 25, 2024 at 19:04 o'clock

Member: aGeers
aGeers Jul 24, 2007 at 08:09:58 (UTC)
Goto Top
So es funktioniert jetzt:

@echo Statistik
Set Scriptname=<Firmenname einsetzen> Shutdown Script
Set SCRIPTVer=2.6.4
set ScriptDate=24.07.2007
Set Domaene=<eigene Domaene einsetzten>
echo Scriptstart %Date% %Time%> c:\defrag.txt
@echo c:\defrag.txt wird beim jedem Scriptstart neu erstellt, ist nur zur Kontrolle

@echo Benoetigte Programme:
@echo dof.exe (Delete Old Files) => http://www.ucsoft.de/ (freeware auch fuer Firmen)
@echo contig.exe aus Sysinternals Suite => http://www.microsoft.com/technet/sysinternals/utilities/sysinternalssui ...
@echo shutdown.exe => Aus c:\Windows\system32 entnehmen (WinXP)

@echo Notwendige Einstellungen in den Gruppenrichtlinien:
@echo Administrative Vorlagen => System => Skripts => MAximale Wartezeit für GruppenrichtlinienSkripts auf aktivieren (Ändern auf 6000 Sekunden)
@echo für stark fragmentierte Rechner....
@echo Optinonal Skripts zum Herunterfahren sichtbar ausführen (zeigt dem User an das etwas passiert und er den Rechner nicht ausschaltet)

@echo Benoetigte Reg Datei:
@echo sysinternaleula.reg (selbst erstellen)
@echo.
@echo Windows Registry Editor Version 5.00

@echo [HKEY_CURRENT_USER\Software\Sysinternals\C]
@echo "EulaAccepted"=dword:00000001

@echo In diesen Ordner muessen alle Datei kopiert werden!
@echo Waehlt man diesen vom Servernamen unabhaengig kann ein DC ausfallen.
@echo Automatisch wird das Script vom anderen ausgefuehrt.
@echo.

set SCRIPTDIR=\\%Domaene%\SYSVOL\%Domaene%\scripts\Shutdown\
cls

@echo Das Herunterfahren wird, trotz gegenteiliger meldung abgebrochen
@echo Muss eingefuegt werden da das script sonst nach 25-30 Sekunden
@echo von Windows abgebrochen wird.
@echo Aus windows xp c:\windows\system32 entnommen, funktioniert einwandfrei auch unter W2k
@echo Danke für den Tipp Olaf!

@echo Hinweis: Für Notebook User sollte dieses Script nur an bestimmten Tagen freigeschaltet werden
@echo da es sonst passieren kann, wenn Er/Sie zum Termin fahren will und das herunterfahren 20 Minuten dauert
@echo Einfügen als GPO unter COmputerkonfiguration => WINdows Einstellungen => Scripts => Herunterfahren
@echo Scriptdateien am besten unter \\Domaene\Sysvol\Domaene\scripts\ in einem Unterordner kopieren.
@echo.
@echo.
@echo Dieses script wurde an mehreren Rechnern, sowohl mit W2k SP4 als auch mit WXP SP2 getestet.

%SCRIPTDIR%shutdown.exe -a
@echo *
@echo
* %Scriptname% *
@echo
* by Ansgar Geers *
@echo
* Version %SCRIPTVer% *
@echo
* %Scriptdate% *
@echo
* Temp Dateien loeschen *
@echo
*

@echo Optionen fuer Dof.exe (Delete old Files) Download unter http://www.ucsoft.de/ (freeware auch fuer Firmen)
@echo Option 30 => Dateien loeschen älter als 30 Tage
@echo Option /S => Durchsuchen aller Subdirectorys
@echo Option /q => Silent Keine Meldungen
@echo Option /d => Loeschen leerer Subdirectorys
@echo Option /I => erstellt eine Logdatei
@echo Option /V => Nur gucken aber nicht anfassen(loeschen)
@echo Option /? => zeigt die Hilfe an

%SCRIPTDIR%dof.exe c:\temp\ 30 /s /d>> c:\defrag.txt
%SCRIPTDIR%dof.exe c:\tmp\ 30 /s /d>> c:\defrag.txt
%SCRIPTDIR%dof.exe %temp%\ 30 /s /d>> c:\defrag.txt
%SCRIPTDIR%dof.exe %tmp%\ 30 /s /d>> c:\defrag.txt
%SCRIPTDIR%dof.exe D:\temp\ 30 /s /d>> c:\defrag.txt
%SCRIPTDIR%dof.exe D:\tmp\ 30 /s /d>> c:\defrag.txt
%SCRIPTDIR%dof.exe %WINDIR%\temp\ 30 /s /d>> c:\defrag.txt
%SCRIPTDIR%dof.exe "%USERPROFILE%\Lokale Einstellungen\Temp\" 30 /s /d>> c:\defrag.txt
%SCRIPTDIR%dof.exe "%WINDir%\SoftwareDistribution\Download\" 30 /s /d>> c:\defrag.txt
%SCRIPTDIR%dof.exe "%WINDIR%\Downloaded Installations\" 30 /s /d>> c:\defrag.txt

@echo Sucht alle Verzeichnisse die den Begriff Uninstall im Namen haben und loescht diese und NUR diese.
@echo keine weiteren Programme bekannt die aehnliche Ordner an der gleichen Stelle erstellen

for /f "delims=\ tokens=1,*" %%i in ('dir /b /s /a:d "%WINDIR%\*Uninstall*"') do (
rd /q /s "%%i\%%j"
)

@echo Sucht alle Verzeichnisse die den Begriff NtServicepack im Namen haben und loescht diese und NUR diese.
@echo keine weiteren Programme bekannt die aehnliche Ordner an der gleichen Stelle erstellen

for /f "delims=\ tokens=1,*" %%i in ('dir /b /s /a:d "%WINDIR%\*NtServicePack*"') do (
rd /q /s "%%i\%%j"
)

@echo Sucht alle Dateien die den Begriff KB und die Endung.log im Namen haben und loescht diese und NUR diese.
@echo keine weiteren Programme bekannt die aehnliche Dateien an der gleichen Stelle erstellen

for /f "delims=\ tokens=1,*" %%i in ('dir /b /s /a:-d "%WINDIR%\*KB*.log"') do (
del /F /Q "%%i\%%j"
)

@echo Sucht alle Dateien und Verzeichnisse, des Internetcaches, in allen lokalen UserProfilen die aelter 30 Tage sind und loescht diese

for /f "delims=\ tokens=3,*" %%i in ('dir /b /s /a:d "C:\Dokumente und Einstellungen\*"') do (
"%SCRIPTDIR%dof.exe "C:\Dokumente und Einstellungen\%%i\Lokale Einstellungen\Temporary Internet Files"" 30 /s /q /d
)

@echo Sucht alle Dateien und Verzeichnisse, in allen Temp Ordnern, in allen lokalen UserProfilen die aelter 30 Tage sind und loescht diese

for /f "delims=\ tokens=3,*" %%i in ('dir /b /s /a:d "C:\Dokumente und Einstellungen\*"') do (
"%SCRIPTDIR%dof.exe "C:\Dokumente und Einstellungen\%%i\Lokale Einstellungen\Temp"" 30 /s /q /d
)

@echo stellt die Betriebsversion fest

VER > "c:\temp\OSVER.txt"
FIND "Microsoft Windows XP" /I < "c:\temp\OSVER.txt"
IF %ERRORLEVEL% == 0 GOTO XP

FIND "Microsoft Windows 2000" /I < "c:\temp\OSVER.txt"
IF %ERRORLEVEL% == 0 GOTO w2k

FIND "Version 5.2" /I < "c:\temp\OSVER.txt"
IF not %ERRORLEVEL% == 0 GOTO exit
IF %ERRORLEVEL% == 0 GOTO exit

:w2k
cls
@echo Startet die Datei Contig.exe aus der bekannten (jetzt MS) Sysinternals Suite (freeware auch fuer Firmen)
@echo Defragmentierung Filebasiert nicht wie Defrag Festplattenbasiert
@echo Bedeutet er nimmt sich die Dateien einzeln vor versucht sie in ein
@echo ein Dateifragment zu schieben
@echo Download unter: http://www.microsoft.com/technet/sysinternals/utilities/sysinternalssui ...

@echo *
@echo
* %Scriptname% *
@echo
* by Ansgar Geers *
@echo
* Version %SCRIPTVer% *
@echo
* %Scriptdate% *
@echo
* Windows 2000 Defrag *
@echo
*
@echo.

regedit /s %SCRIPTDIR%sysinternaleula.reg
%SCRIPTDIR%contig.exe -v -s c:\*.*>> c:\defrag.txt
%SCRIPTDIR%contig.exe -v -s d:\*.*>> c:\defrag.txt
Goto Exit

:XP
cls
@echo Das bekannte defrag von windows xp

@echo *
@echo
* %Scriptname% *
@echo
* by Ansgar Geers *
@echo
* Version %SCRIPTVer% *
@echo
* %Scriptdate% *
@echo
* Windows XP Defrag *
@echo
*
%WINDIR%\system32\defrag.exe c: -f -v>> c:\defrag.txt
%WINDIR%\system32\defrag.exe d: -f -v>> c:\defrag.txt

:exit
@echo Das herunterfahren wird nach 10 sekunden fortgesetzt
echo Scriptende %Date% %Time%>> c:\defrag.txt
%SCRIPTDIR%shutdown.exe -s -t 10
exit