:::::::::::::::::::::::::::::::::::::::::::: :: forceWSUS.cmd :: Wolfgang Fhrer :: 12.12.2007 :::::::::::::::::::::::::::::::::::::::::::: @echo off color 71 :: hier bitte variablen definieren! set SERVER=servername set PORT=portnummer call :maketime & title WSUS Integration - Start %zeit% echo WSUS Integration echo ---------------- echo. :: Zuerst wird der WSUS Client installiert call :maketime & echo %zeit% Installiere WSUS Client ... start /wait WindowsUpdateAgent30-x86.exe /wuforce /quiet ping 127.0.0.1 -n 30 >nul call :maketime & echo %zeit% Installiere Pakethelfer ... start /wait WindowsXP-KB898461-x86-ENU.exe /quiet /passive ping 127.0.0.1 -n 30 >nul call :maketime & echo %zeit% Schreibe Registry fr Client ... SET KEY=HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate :: User k”nnen Info-Balloons sehen REG ADD "%KEY%" /v "ElevateNonAdmins" /t REG_DWORD /d 1 /f >nul :: greift nur wenn in WSUS eingeschaltet REG ADD "%KEY%" /v "TargetGroup" /t REG_SZ /d "XP" /f >nul :: greift nur wenn in WSUS eingeschaltet REG ADD "%KEY%" /v "TargetGroupEnabled" /t REG_DWORD /d 1 /f >nul :: WSUS Server mit Port REG ADD "%KEY%" /v "WUServer" /t REG_SZ /d "http://%SERVER%:%PORT%" /f >nul :: WSUS Server mit Port REG ADD "%KEY%" /v "WUStatusServer" /t REG_SZ /d "http://%SERVER%:%PORT%" /f >nul SET KEY=HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU :: 4 = automatisch herunterladen und installieren REG ADD "%KEY%" /v "AUOptions" /t REG_DWORD /d 4 /f >nul REG ADD "%KEY%" /v "AUPowerManagement" /t REG_DWORD /d 0 /f >nul REG ADD "%KEY%" /v "AutoInstallMinorUpdate" /t REG_DWORD /d 1 /f >nul :: 12 = jede Stunde REG ADD "%KEY%" /v "DetectionFrequency" /t REG_DWORD /d 12 /f >nul :: 1 = eingeschaltet REG ADD "%KEY%" /v "DetectionFrequencyEnabled" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "DetectionStartTime" /t REG_SZ /d "-" /f >nul REG ADD "%KEY%" /v "IncludeRecommendedUpdates" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "LastWaitTimeout" /t REG_SZ /d "-" /f >nul :: 0 = Autoreboot 1 = vor Reboot fragen REG ADD "%KEY%" /v "NoAutoRebootWithLoggedOnUsers" /t REG_DWORD /d 0 /f >nul :: 0 = Automatisch updaten einschalten REG ADD "%KEY%" /v "NoAutoUpdate" /t REG_DWORD /d 0 /f >nul REG ADD "%KEY%" /v "RebootRelaunchTimeout" /t REG_DWORD /d 2 /f >nul REG ADD "%KEY%" /v "RebootRelaunchTimeoutEnabled" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "RebootWarningTimeout" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "RebootWarningTimeoutEnabled" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "RescheduleWaitTime" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "RescheduleWaitTimeEnabled" /t REG_DWORD /d 1 /f >nul :: 0 = jeden Tag REG ADD "%KEY%" /v "ScheduledInstallDay" /t REG_DWORD /d 0 /f >nul :: n„chste Installzeit auf 0 Uhr REG ADD "%KEY%" /v "ScheduledInstallTime" /t REG_DWORD /d 0 /f >nul :: 1 = WSUS benutzen REG ADD "%KEY%" /v "UseWUServer" /t REG_DWORD /d 1 /f >nul call :maketime & echo %zeit% Melde Client an WSUS an ... start /wait wuauclt.exe /resetauthorization /detectnow ping 127.0.0.1 -n 180 >nul call :maketime & echo %zeit% Report an WSUS schicken ... start /wait wuauclt.exe /r ping 127.0.0.1 -n 60 >nul :: Soweit die Installation des WSUS Client :: Jetzt beschleunigen wir die Sache set x=0 :loop set /a x="x+1" echo Loop %x%/5 call :maketime & echo %zeit% Setze Registry fr sofortigen Download von Patchen ... SET KEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update REG ADD "%KEY%" /v "ResetAU" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "ConfigVer" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "NextDetectionTime" /t REG_SZ /d "2006-01-01 00:00:00" /f >nul :: Dieser Wert ist wichtig damit Installation sofort startet REG ADD "%KEY%" /v "ScheduledInstallDate" /t REG_SZ /d "2006-01-01 00:00:00" /f >nul call :maketime & echo %zeit% Starte WSUS Service durch ... start /wait net stop wuauserv start /wait net start wuauserv call :maketime & echo %zeit% 5 Minuten Pause fr Downloads ... :: Je nach Netz anpassen. :: 500 MB (ca. 80 Patche) bei 100Mbit sind ca. 1 Minute ping 127.0.0.1 -n 300 >nul echo ........ Nun sollten die Patche heruntergeladen sein. echo ........ -^> C:\Windows\SoftwareDistribution\Download\ call :maketime & echo %zeit% Setze Registry fr sofortige Installation ... SET KEY=HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU :: 1. Block kann wegfallen wenn oben gesetzt :: 4 = automatisch herunterladen und installieren REG ADD "%KEY%" /v "AUOptions" /t REG_DWORD /d 4 /f >nul REG ADD "%KEY%" /v "RebootWarningTimeout" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "RebootWarningTimeoutEnabled" /t REG_DWORD /d 1 /f >nul :: 0 = Autoreboot 1 = vor Reboot fragen REG ADD "%KEY%" /v "NoAutoRebootWithLoggedOnUsers" /t REG_DWORD /d 0 /f >nul SET KEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update REG ADD "%KEY%" /v "ResetAU" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "ConfigVer" /t REG_DWORD /d 1 /f >nul REG ADD "%KEY%" /v "NextDetectionTime" /t REG_SZ /d "2006-01-01 00:00:00" /f >nul :: Dieser Wert ist wichtig damit Installation sofort startet REG ADD "%KEY%" /v "ScheduledInstallDate" /t REG_SZ /d "2006-01-01 00:00:00" /f >nul SET KEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Detect REG ADD "%KEY%" /v "LastSuccessTime" /t REG_SZ /d "2006-01-01 00:00:00" /f >nul REG ADD "%KEY%" /v "LastError" /t REG_DWORD /d 0 /f >nul SET KEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Download REG ADD "%KEY%" /v "LastSuccessTime" /t REG_SZ /d "2006-01-01 00:00:00" /f >nul REG ADD "%KEY%" /v "LastError" /t REG_DWORD /d 0 /f >nul SET KEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install REG ADD "%KEY%" /v "LastSuccessTime" /t REG_SZ /d "2006-01-01 00:00:00" /f >nul REG ADD "%KEY%" /v "LastError" /t REG_DWORD /d 0 /f >nul call :maketime & echo %zeit% Starte WSUS Service durch ... start /wait net stop wuauserv start /wait net start wuauserv echo. echo --------------------------------------------- echo Nun sollten die Patche installiert werden ... echo --------------------------------------------- start /wait taskkill /im ShowUpdates.exe ping 127.0.0.1 >nul start ShowUpdates.exe echo. :: falls die zeiten zu kurz waren nach 15 min erneute schleife :: reboot nach patchinstallation beendet schleife ping 127.0.0.1 -n 900 >nul if %x% LSS 5 goto loop :: abbruch ncoh 5 versuchen echo Es wurden keine Patche installiert! echo. pause ::ohne reboot k”nnte man so beenden: ::echo Nach einem Tastendruck wird erneut ein Report an WSUS geschickt ... ::pause ::call :maketime & echo %zeit% Report erneut an WSUS schicken ... ::start /wait wuauclt.exe /r exit :maketime :: ordentlichen zeitstempel generieren :: geht bei deutschem und englischem windows if "%date:~6,1%"=="/" ( set y=%date:~12,2% set m=%date:~4,2% set d=%date:~7,2% set hh=%time:~0,2% set mm=%time:~3,2% set ss=%time:~6,2% ) else ( if "%date:~2,1%"=="." ( set y=%date:~8,2% set m=%date:~3,2% set d=%date:~0,2% set hh=%time:~0,2% set mm=%time:~3,2% set ss=%time:~6,2% ) else ( set y=%date:~11,2% set m=%date:~6,2% set d=%date:~3,2% set hh=%time:~0,2% set mm=%time:~3,2% set ss=%time:~6,2% ) ) set zeit=%hh%:%mm%:%ss% goto:eof