Limitare la verbosità di Windows CBS.log, impostare il livello di registro, interrompere la follia delle informazioni ettomegabyte


18

Su Windows 7 (Home Premium 64 Bit), vengono scritte centinaia di megabyte di registrazione su cui nessuno si preoccuperà mai di leggere C:\Windows\Logs\CBS\CBS.log. Dai un'occhiata, contiamo le linee qui:

$ dir C:\Windows\Logs\CBS\CBS.log
03.10.2015  16:21       726.097.704 CBS.log
$ findstr /b 2015- C:\Windows\Logs\CBS\CBS.log | find /c ", Info"
2990118
$ findstr /b 2015- C:\Windows\Logs\CBS\CBS.log | find /c /v ", Info"
102

In parole povere, il file di log CBS (CBS è l'abbreviazione di Component Based Services , alias Trusted Installer , vedi Informazioni sulla manutenzione basata sui componenti , aprile 2008, Microsoft Technet ) al momento occupa 700 MB, 200 dei quali scritti negli ultimi 30 minuti , con la prima voce derivante da 9 giorni fa.

Complessivamente si tratta di quasi 3 milioni di voci, e quasi per intero in informazioni su loglevel . Intendiamoci, questo è un formato di file di registro leggibile dall'uomo, apparentemente non per l'elaborazione della macchina. Non ti conosco, ma l'idea che dovrei preoccuparmi di tenere conto di 3 milioni di righe di informazioni per impostazione predefinita mi sembra al limite dell'assurdo.

Voglio che questo si interrompa perché l' attività del disco e della CPU non ha altro scopo se non quello di rallentare inutilmente il sistema .

Quindi: come impostare il livello di registro su Avviso o Errore ? Dove è documentato?

Inoltre: Immagina che invece di guadare centinaia di mega di informazioni (per poco più di una settimana) manterresti solo le ~ 100 linee di errore ? Non avrebbe senso e fornirebbe indizi sulla risoluzione dei problemi? Avresti comunque la possibilità di attivare Info nel caso in cui si presenti un problema di installazione non ovvio.

Aggiornare:

Leggendo i commenti, sembra che non abbia formulato la mia domanda con sufficiente chiarezza. Io non chiedo come filtrare il file di log humungous usando utility a riga di comando - perché so già come fare. Inoltre non sto chiedendo come gestire i file di registro nel modo di rotazione dei registri, perché Windows lo farà da solo quando il file raggiunge una soglia sconosciuta (anche se troverai persone che chiedono perché il file raggiunge 20 concerti ). Quello che sto chiedendo è semplicemente come impedire che questa pazza registrazione ettomegabyte si verifichi in primo luogo, probabilmente impostando il livello di registro su qualcosa di più alto di Info. Non riesco proprio a trovare la documentazione su come impostare il livello di registro, probabilmente perché non esiste pubblicamente. Ma deve esserci un modo perché qualsiasi software decente fornisce un modo per impostare il livello di registro.

Aggiornamento 2:

Vedi la risposta fornita. L'impostazione del registro sembra avere effetto e chiudere completamente il registro. Il che va bene e un default molto migliore di quello attuale. Per modificare il registro, è necessario correggere le autorizzazioni - consultare l'appendice.

Appendice: autorizzazioni per la Component Based Servicingchiave di registro

Quando si tenta di impostare EnableLoga 0, probabilmente noterete che non si ha accesso in scrittura HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicinge roba di sotto di essa. Devi andare in "Modifica» Autorizzazioni " regedite quindi assumere la proprietà prima di poter apportare modifiche:

Assumi la proprietà e concediti il ​​permesso di scrivere


3
+5 "ettomegabyte info madness"
Moab,

2
Il registro CBS può essere filtrato dal prompt dei comandi, ecco un esempio di quello che uso dopo aver eseguito Controllo file di sistema, quando viene eseguito genera le informazioni SFC pertinenti in un file di testo sul mio desktop. "findstr / c:" [SR] "% windir% \ Logs \ CBS \ CBS.log>% userprofile% \ Desktop \ sfcdetails.tx"
Moab,

@Tetsujin grazie, mi chiedevo se ci fossero altri comandi findstr per altri registri, ma Google non ha trovato nulla.
Moab,

2
Stimato @Tetsujin, si noti che il livello di registro è solo Info , non Debug , il che implicherebbe un aumento della verbosità. Vedi l'articolo Technet Come abilitare la registrazione CBS dettagliata , Nov 2010, di joscon per scoprire che puoi rendere la registrazione ancora più dettagliata. Joscon afferma in un commento che »... il modo in cui è impostato di default è il meno dettagliato che il registro ottiene.« È inaccettabile. È il genere di cose che rallenta inutilmente il tuo sistema. Non quello che vogliono gli utenti. Forse una modifica binaria farà.
Lumi,

Su Windows Server 2008 questo alla fine farà sì che TrustedInstaller.exe inizi a bloccarsi ogni 15 minuti. O almeno, credo che questa sia la causa; Lo sto seguendo da un po 'di tempo ormai. Il mio attuale tentativo di soluzione è quello di creare un CBS.log vuoto e rimuovere tutte le autorizzazioni, negando l'accesso. Non ho ancora confermato se funziona, dal momento che ci vuole un po 'di tempo prima che inizi a verificarsi.
theultramage,

Risposte:


11

Come risposta parziale ecco l'impostazione per interrompere del tutto la registrazione: nel registro, accedere a

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing]

e impostare EnableLog 0. Fonte: https://technet.microsoft.com/en-us/library/cc732334%28v=ws.10%29.aspx#CBS


1
Grazie, sembra funzionare. Dopo aver apportato la modifica, ho interrotto il servizio TrustedInstaller e quindi ho installato un aggiornamento (KB3078667). Non è stato registrato un singolo personaggio, sì! Per effettuare la modifica, è necessario assumere la proprietà della Component Based Servicingchiave; per impostazione predefinita, solo TrustedInstaller può scrivere ad esso e ai suoi sottostanti. Guarda lo screenshot allegato alla mia domanda.
Lumi,

TrustedInstaller è disponibile in Pannello di controllo> Strumenti di amministrazione> Servizi sotto il nome del programma di installazione dei moduli di Windows (win7).
Ogmios,

2

Il registro CBS viene inoltre riempito da cleanmgr con circa 150-200 Mb di dati anche durante la pulizia di quasi "nulla", riempiendo così il disco invece di pulirlo.

Ho scoperto che il registro CBS può essere cancellato dopo l'arresto del servizio TrustedInstaller, il riavvio del programma di installazione del modulo di Windows in seguito avvierà nuovamente il servizio. Tenere presente che il registro viene utilizzato da Microsoft in alcuni programmi di debug.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.