Bene RikyToro!
Mi dai l'occasione di spiegare come Microsoft risolve il problema.
Se apriamo il file BATCH con un normale editor di testo ne vedremo il contenuto.
Ora andrò a spiegare cosa fa il programmino...
All'inizio, semplicemente, cancella lo schermo, si sposta nella directory
root e imposta il colore verde per lo sfondo!
Codice:
cls
cd \
color 3f
I commenti sono individuati dalla parola REM: tutto ciò che segue non è eseguito, ma ci dà idea di cosa fà il programma!
Codice:
Rem Clear out proxy cache
proxycfg -d
Successivamente controlla se ci sono restrizioni per l'account che sta eseguendo il batch, nel qual caso genera un errore.
Codice:
REG QUERY "HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings" /v Security_HKLM_only | find /i "Security_HKLM_Only" | find "1"
GOTO CONTROL%ERRORLEVEL%
Nella sezione
Codice:
:CONTROL0
REM MODIFY GLOBAL MACHINE SETTINGS
Con i vari
REG ADD aggiunge (
ADD) al
REGistro il dominio microsoft.com.
Codice:
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\microsoft.com\update" /V http /t REG_DWORD /D 2 /F
[...]
Poi permette ai siti di Microsoft di aprire le finestre popup:
Codice:
:Allow popups from the following Windows Update sites in Internet Explorer
reg add "HKLM\Software\Microsoft\Internet Explorer\New Windows\Allow" /v *.microsoft.com /t REG_BINARY /f
[...]
Qui inizia la modifica delle impostazioni dell'account e l'inserimento degli URI di Microsoft Update nei siti sicuri:
Codice:
:CONTROL1
REM MODIFY LOCAL USER SETTINGS
:Add Windows Update sites to the Trusted Zone of Internet Explorer (if Security_HKLM_only is not set, use HKCU)
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\microsoft.com\update" /V http /t REG_DWORD /D 2 /F
[...]
Poi permette ai siti di Microsoft Windows Update di aprire le finestre popup:
Codice:
:Allow popups from the following Windows Update sites in Internet Explorer
reg add "HKCU\Software\Microsoft\Internet Explorer\New Windows\Allow" /v *.microsoft.com /t REG_BINARY /f
[...]
Con i comandi
Net stop WuAuServ viene interrotto il servizio di aggiornamento automatico e con
Net stop BITS quello di
trasferimento intelligente in background che permette di riprendere il download se viene interrotto.
Codice:
:CONTINUE
:Stop the Windows Update and BITS service while applying fixes
Net stop WuAuServ
Net stop BITS
Vengono nuovamente registrate tutte le librerie coinvolte nell'aggiornamento automaico:
Codice:
:Register required DLLs
regsvr32 /s wuapi.dll
[...]
regsvr32 /s msxml3.dll
e le librerie base di Windows:
Codice:
:Added next two DLLs in v1.03
regsvr32 /s wups2.dll
[...]
regsvr32 cryptdlg.dll /s
Successivamente viene cancellato tutto il contenuto della cache di eventuali download pregressi:
Codice:
::Clear all the pending downloads from BITS & let BITS recreate qmgr0.dat and qmgr1.dat
cd %ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader
del *.* /Q
Rinomina la cartella Catroot2, siccome verrà automaticamente ricreata dal sistema come descritto impostando i permessi in maniera ricorsiva, controllando che venga cancellato tutto, poi ferma il servizio di crittazione (con
net stop cryptsvc)Codice:
: Rename the Catroot2 directory, since it is automatically recreated by Windows
:
net stop cryptsvc
IF EXIST %systemroot%\system32\catroot2 attrib -r -s -h %systemroot%\system32\catroot2
[..]
Si sposta poi nella cartella di Windows (con
cd %WINDIR%) e cancella eventuali cartelle temporanee
Sdold create se il batch è stato già eseguito poichè, a questo punto, la cartella SoftwareDistribution viene, apputno, rinominata i Sdold.
Codice:
cd %WINDIR%
::See if temp dir exists from previous execution of script, and delete if it does (XP & 2000)
IF EXIST Sdold rmdir /Q /S Sdold
:Clear old data but save Windows Update temp dir
attrib -r -h -s SoftwareDistribution
ren SoftwareDistribution Sdold
Ferma e riavvia il servizio di Aggiornamenti automatici così viene creata la cartella temporanea di cui sopra
Codice:
:Stop and start the Automatic Update service, so it will recreate the temp folder
Net start WuAuServ
Net stop WuAuServ
E ripristina la cronologia delle installazioni dal backup
Codice:
:Now restore Update History file from backup
attrib -r -h -s SoftwareDistribution
mkdir %WINDIR%\SoftwareDistribution\DataStore
copy %WINDIR%\Sdold\DataStore\DataStore.edb %WINDIR%\SoftwareDistribution\DataStore\
ripristina, poi, anche i file di log
Codice:
:Now restore EventsLog file from backup
COPY /y %WINDIR%\Sdold\ReportingEvents.log %WINDIR%\SoftwareDistribution\
Riavvia il servizio di Aggiornamenti Automatici e tutti i servizi dipendenti e li imposta per l'avvio in automatico con il comando
sc config nomeservizio start= autoCodice:
:Restart automatic updates service. Start all other dependent services and set to automatic startup. Set the following services to autostart
:Background Intelligent Transfer Service (BITS), Automatic Updates (WuAuServ), Event Log (EventLog), Cryptographic Services (CryptSvc), :Remote Procedure Call (RpcSs)
:
Net start WuAuServ
sc config WuAuServ start= auto
[...]
::Turn on Remote Procedure Call Service
Net start RpcSs
sc config RpcSs start= auto
Esce dall'esecuzione:
Codice:
:EXIT
Spero di essere stato utile.
Magari qualcuno inizia a capire, indaga, apprende...
Inoltre questo toglie tutti i dubbi a chi si chedeva che fine facessero gli aggiornamenti scaricati
