Desativar compactação automática do Armazenamento de Componentes do Windows 8.1 (WinSxS / DriverStore)?

3

O Windows 8.1 possui uma nova Tarefa Agendada (Servicing \ StartComponentCleanup) que exclui ou compacta automaticamente os arquivos substituídos e não utilizados do armazenamento Lado a Lado, DriverStore e pasta de drivers.

Eu queria saber se alguém sabe se é possível manter a limpeza do componente, mas ignorar a compactação, tudo sem desabilitar a compactação NTFS ou a tarefa agendada?

Observe que, se alguns dos drivers / arquivos começarem a ser carregados / usados, o Windows não parecerá descompactá-los depois de terem sido compactados. Para descompactá-los, você precisa executar manualmente "compact / U" como o serviço TrustedInstaller.

por Quad5Ny 04.01.2014 / 21:24

3 respostas

2

Após alguma experimentação em uma VM, parece que a execução do DISM com a opção "ResetBase" não compactará nenhum arquivo enquanto ainda estiver limpando os componentes substituídos. Há uma pegadinha no entanto, executando ResetBase irá remover a capacidade de desinstalar atualizações.

Full solution:

  • Edit the Component Cleanup Task
    1. Open taskschd.msc and browse to \Microsoft\Windows\Servicing\
    2. Double click StartComponentCleanup
    3. Delete the Custom Handler in the Actions tab
    4. Add a new action with "C:\Windows\System32\Dism.exe" as the Program and "/Online /Cleanup-Image /StartComponentCleanup /ResetBase" as the Arguments


  • Decompress \Windows\WinSxS\, \Windows\System32\drivers\ and \Windows\System32\DriverStore\
    1. Open a Elevated (Administrator) Command Prompt
    2. Browse to the base folder you want decompressed (ex: Windows\WinSxS)
    3. Type "Compact /U /S /A /I /Q" and wait for it to finish
    4. Type "PSExec -hsi cmd"
    5. Browse to the base folder you want decompressed
    6. Type "Compact /U /S /A /I /Q" and wait for it to finish
    7. Type "Exit"
    8. Type "net start TrustedInstaller"
    9. Type "runassystem_x64.exe "runfromtoken_x64.exe trustedinstaller.exe 1 cmd""
    10. Browse to the base folder you want decompressed
    11. Type "Compact /U /S /A /I /Q" and wait for it to finish
    12. Type "Exit"
    13. Type "net stop TrustedInstaller"

Note: Your running compact 3 times because of different ACL's on files (Once as a Administrator, Once as Local System and once as the TrustedInstaller service.

    
por 10.01.2014 / 00:37
4

Como você está medindo a economia de compressão? Algo está errado em seus números, porque uma imagem RTM 8.1 salvará cerca de 114 MB da compactação NTFS dos drivers nativos sozinho (em x64). Basta usar o explorer para obter o tamanho de c: \ windows \ system32 \ driverstore, e você verá que há cerca de 114 MB de diferença entre o "Size" e o "Size on disk". / startcomponentcleanup não refaz o trabalho já feito, portanto, executá-lo no futuro só terá que compactar novos drivers, arquivos de backup ou arquivos substituídos.

Com uma imagem RTM 8.1, há muito pouco na categoria de backups que precisa ser compactada, e não deve haver nada na categoria substituída. A categoria substituída é a única compactação que é ignorada quando / startcomponentcleanup / resetbase é usado em vez de normal / startcomponentcleanup. Então, eu não tenho certeza de qual vantagem você está vendo, usando-o tanto quanto o desempenho da compressão. A compactação de bits substituídos (quando você os possui) leva algum tempo, mas mantém sua capacidade de desinstalar um KB, enquanto economiza > 90% do espaço.

Para ver os números precisos dos efeitos de / startcomponentcleanup ou / startcomponentcleanup / resetbase em winsxs, execute dism / online / cleanup-image / analyzeecomponentstore antes e depois de executar / startcomponentcleanup ...   Observe especificamente os números "Backups e recursos desativados". Você notará que há uma diferença significativa depois de executar o comando. Além disso, se você executar novamente / startcomponentcleanup, verá que ele conclui rapidamente a segunda vez, porque não há nada para fazer.

Editar - alguns números reais para comparação

Por exemplo, em um computador X64 que acabei de atualizar com atualizações de terça-feira (inclusive atualizações opcionais) de janeiro, veja como a compactação irrompe, observando apenas as alterações causadas pelo patch de janeiro.

Observação: as economias abaixo vêm da compactação que não é a compactação do NTFS e, portanto, os arquivos compactados não são exibidos como compactados no gerenciador de arquivos. A compactação NTFS é usada apenas por / startcomponentcleanup para compactação do driver da caixa de entrada (que não está incluída abaixo e equivale a cerca de 114 MB de economia para o driverstore)

Números reais usando / startcomponentcleanup

+354.25 MB added for January updates
- 34.14 MB saved by superseded package removal
- 67.84 MB saved for Backups (99.86 MB compressed to 32.02 MB) 
-203.36 MB saved for Superseded Components (220.25 MB compressed to 16.89 MB) 
 ---------
  48.91 MB growth due to January updates after /startcomponentcleanup

Números reais usando / startcomponentcleanup / resetbase

Se você usar "/ startcomponentcleanup / resetbase" em vez de apenas "/ startcomponentcleanup", você economizará mais 16,89 MB, mas agora não poderá desinstalar as atualizações restantes e poderá notar que todas as mesmas compressões são executadas como acima, exceto "Componentes substituídos".

  48.91 MB growth due to January updates after /startcomponentcleanup
- 16.89 MB savings due to /resetbase
 ---------
 32.02 MB growth due to January updates after /resetbase

Exemplo de uso de / analisecomponentstore

Aqui estão os resultados de running / analyzecomponentstore após aplicar as atualizações de janeiro e depois de executar / startcomponentcleanup. Preste atenção no número "Backups and Disabled Features", porque isso indica o armazenamento não temporário necessário para o armazenamento de componentes (winsxs).

Depois de aplicar as atualizações de janeiro

Windows Explorer Reported Size of Component Store : 5.75 GB

Actual Size of Component Store : 5.51 GB

    Shared with Windows : 4.49 GB
    **Backups and Disabled Features : 884.98 MB**
    Cache and Temporary Data : 161.29 MB

Date of Last Cleanup : 2014-01-14 10:04:32

Number of Reclaimable Packages : 3
Component Store Cleanup Recommended : Yes

Depois de executar / startcomponentcleanup

Windows Explorer Reported Size of Component Store : 5.33 GB

Actual Size of Component Store : 5.21 GB

    Shared with Windows : 4.49 GB
    **Backups and Disabled Features : 595.02 MB**
    Cache and Temporary Data : 139.23 MB

Date of Last Cleanup : 2014-01-14 10:38:59

Number of Reclaimable Packages : 0
Component Store Cleanup Recommended : No
    
por 12.01.2014 / 19:05
3

Não há um mecanismo exposto para desabilitar a parte de compactação da tarefa de manutenção de manutenção.

Qual compactação de manutenção deseja desativar e por quê? A tarefa de manutenção compacta backups e outros arquivos duplicados e atualizações substituídas. Como você observou, ele também compacta os drivers da caixa de entrada usando a compactação NTFS. É apenas a compactação NTFS dos drivers da caixa de entrada que você gostaria de desabilitar e por quê?

    
por 08.01.2014 / 23:04