Após recentemente fazer o upgrade do Windows 8 para o Windows 10, me deparei com uma série de problemas. Esta página lista os problemas que eu encontrei e como resolvê-los.

Desativar WPAD

WPAD é um risco. Logo, precisamos verificar se o WPAD está desativado, indo em Painel de Controle -> Opções da Internet -> Conexões -> Configurações da LAN. Na janela, verificar se a opção "Detectar automaticamente as configurações" está desativada.

Desativar "telemetria"

Microsoft Compatibility Telemetry

Ir em Menu Iniciar -> Configurações -> Privacidade. Desabilite tudo o que não for necessário.

Ir em Painel de Controle -> Ferramentas Administrativas -> Serviços.

Para dessativar cada serviço, clique com o botão direito nele e vá em "Propriedades". Na aba "Geral", mude, se necessário, o "Tipo de inicialização" para "Desativado" e depois clique no botão "Parar o serviço". Desative os serviços:

  • Serviço Coletor de Padrões de Hub de Diagnóstico da Microsoft (R)
  • Experiências e Telemetria de Usuário Conectado

Dica: um serviço também pode ser desativado e parado em um prompt elevado com os comandos sc config <serviço> start= disabled e sc stop <serviço>:

sc config DiagTrack start= disabled
sc stop DiagTrack

O mesmo pode ser feito em um PowerShell elevado com:

stop-service diagtrack
set-service diagtrack -startuptype disabled

Dica: se você souber o nome do serviço (código) mas não souber o nome de exibição dele (útil ao encontrar uma página em inglês que lista o nome do serviço mas o de exibição está em inglês), é possível usar o comando sc qc <serviço>. O nome de exibição aparecerá no campo NOME_PARA_EXIBIÇÃO:

C:\WINDOWS\system32>sc qc diagtrack
[SC] QueryServiceConfig ÊXITO

NOME_DO_SERVIÇO: diagtrack
    TIPO                       : 10  WIN32_OWN_PROCESS
    TIPO_DE_INÍCIO             : 2   AUTO_START
    CONTROLE_DE_ERRO           : 1   NORMAL
    NOME_DO_CAMINHO_BINÁRIO    : C:\WINDOWS\System32\svchost.exe -k utcsvc
    GRUPO_DE_ORDEM_DE_CARREG.  :
    MARCA                      : 0
    NOME_PARA_EXIBIÇÃO         : Experiências e Telemetria de Usuário Conectado
    DEPENDÊNCIAS               : RpcSs
       NOME_DO_INÍCIO_DO_SERVIÇO  : LocalSystem

Vá em Menu Iniciar e digite regedit. Vá na chave:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DataCollection

Modifique ou adicione, caso ela ainda não exista, um novo "Valor DWORD (32 bits)" chamado AllowTelemetry com o valor 0 (zero).

Referências:
http://www.thewindowsclub.com/windows-10-telemetry
http://windowsitpro.com/windows-10/how-turn-telemetry-windows-7-8-and-windows-10

Limitar aplicativos em segundo plano

Ir em Menu Iniciar -> Configurações -> Privacidade. Na barra lateral à esquerda, ir em "Aplicativos em segundo plano". Desativar tudo o que não for utilizar.

Limitar downloads do Windows Update

Ir em Painel de Controle -> Feramentas Administrativas -> Política de Segurança Local (Ou Menu Iniciar -> Editar política de grupo ou gpedit.msc).

Navegue para Configuração do Computador -> Modelos Administrativos -> Rede -> BITS (Background Intelligent Transfer Service.

Altere a opção "Limite a largura de banda da rede máxima para transferências BITS em segundo plano", clicando duas vezes nela. Marque a opção "Habilitado". Mais abaixo, escolha um limite máximo para a taxa de transferência (em Kbps) para os horários definidos. Desmarque a opção "Usar toda a largura de rede não utilizada disponível" e escolha outra velocidade para os demais horários mais abaixo. O mais simples é repetir os valores.

Se o computador não tiver o Editor de Política de Grupo Local, abra o regedit e vá na chave:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\BITS

e crie os valores (todos DWORD):

Nome Valor
EnableBITSMaxBandwidth 1
MaxBandwidthValidFrom <hora de início>
MaxBandwidthValidTo <hora de final>
MaxTransferRateOffSchedule <valor em Kbps>
MaxTransferRateOnSchedule <valor em Kbps>

Referência:
http://answers.microsoft.com/en-us/windows/forum/windows_7-networking/windows-update-takes-all-my-bandwidth/e2edb296-5501-4843-ae33-eaac11e1adb1?auth=1

Impedir reinícios automáticos após updates

Ir em Painel de Controle -> Feramentas Administrativas -> Política de Segurança Local (Ou Menu Iniciar -> Editar política de grupo ou gpedit.msc).

Navegue para Configuração do Computador -> Modelos Administrativos -> Componentes do Windows -> Windows Update.

Altere a opção "Não há reinicializações automáticas para usuários conectados, referentes às instalações de atualizações automáticas agendadas", clicando duas vezes nela. Marque a opção "Habilitado" e clique em OK.

Se o computador não tiver o Editor de Política de Grupo Local, abra o regedit e vá na chave:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

Pode ser que as chaves WindowsUpdate e AU não estejam criadas. Neste caso, crie-as clicando com o botão direito do mouse e selecione Novo -> Chave.

e crie o valor (DWORD):

Nome Valor
NoAutoRebootWithLoggedOnUsers 1

Reinicie o computador.

Referência:
http://lifehacker.com/stop-windows-from-restarting-your-computer-after-update-509712123

Configuração do Windows Update

O Windows 10 baixa e instala atualizações a qualquer momento, e não permite a configuração direta de quando baixar ou agendar a instalação. Isto faz com que de vez em quando o computador pare completamente e fique um processo chamado de "Windows Modules Installer Worker" usando todos os recursos do computador (CPU e disco) o que faz com que seja impossível trabalhar. Para evitar isso, podemos fazer a configuração do Windows Update.

Ir em Painel de Controle -> Feramentas Administrativas -> Política de Segurança Local (Ou Menu Iniciar -> Editar política de grupo ou gpedit.msc).

Navegue para Configuração do Computador -> Modelos Administrativos -> Componentes do Windows -> Windows Update.

Altere a opção "Configurar Atualizações Automáticas", clicando duas vezes nela. Marque a opção "Habilitado" e selecione as opções desejadas na caixa "Opções". Eu prefiro selecionar a opção "2 - Avisar antes de baixar e instalar qualquer atualização". Também é possível selecionar

Se o computador não tiver o Editor de Política de Grupo Local, abra o regedit e vá na chave:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

Pode ser que as chaves WindowsUpdate e AU não estejam criadas. Neste caso, crie-as clicando com o botão direito do mouse e selecione Novo -> Chave.

e crie o valor (DWORD):

Nome Valor
AUOptions 1
NoAutoUpdate 0
AutomaticMaintenanceEnabled <1 se quiser instalar automaticamente na manutenção agendada>
ScheduledInstallDay 0
ScheduledInstallTime <hora de início dos updates>

Veja os detalhes das opções nas referências.

Reinicie o computador.

Referências:
http://winintro.com/?Category=Windows_10_2016&Policy=Microsoft.Policies.WindowsUpdate::AutoUpdateCfg&Language=pt-br
https://technet.microsoft.com/pt-br/library/cc708449(v=ws.10).aspx

Evitar que o Music Application rode

Gasto enorme de CPU quando ele trava. Para desinstalá-lo de uma vez, abra o PowerShell como administrador e rode:

Get-AppxPackage *zunemusic* | Remove-AppxPackage

Dá pra desinstalar outros apps padrão, caso eles dêem problema.

Referência:
http://www.howtogeek.com/224798/how-to-uninstall-windows-10s-built-in-apps-and-how-to-reinstall-them/

Atualizar os demais aplicativos

Em geral os apps da loja atualizam sozinhos, mas fica a dica para procurar atualizações manualmente ou para descobrir o nome dos apps que vieram instalados por padrão e que você quer remover pelo método acima e não sabia.

Vá em Iniciar -> Loja. Clique no botão à direita da janela, à esquerda da caixa "Pesquisar". O botão, não parece um botão, é o avatar do seu usuário, mas é clicável. Vá em "Downloads e Atualizações". Para atualizar, use o botão "Procurar atualizações". Se quiser remover algo, use partes do nome com o comando do PowerShell:

Get-AppxPackage *partedonome*

Se retornar apenas um aplicativo, use o método acima para removê-lo.

Referência:
https://support.microsoft.com/en-us/instantanswers/b5e4e2e4-cc9d-47ef-8782-7a1c81e735ef/check-for-updates-for-apps-and-games-from-windows-store

Processos desenfreados do WMI

Se o WMI Provider Host estiver usando muita CPU, primeiro tente reiniciar o computador :-D. Se não funcionar, abra um prompt de comando elevado (Abrir menu iniciar e clicar com botão direito em "Prompt de Comando" e clicar em "Executar como administrador").

Execute o seguinte comando:

sc config winmgmt type= own

Reinicie o serviço do WMI:

net stop winmgmt && net start [service name]'

Verifique com o comando sc query winmgmt se há a informação:

TIPO                       : 10  WIN32_OWN_PROCESS

o que indica que o serviço está rodando em seu próprio processo.

Descubra qual o processo errado com o Process Explorer e mande para o espaço. Se o ProcExp não descobrir, siga as instruções da referência mais abaixo para usar o PerfMon.

Para desfazer a alteração:

sc config winmgmt type= share

A saída do comando sc query winmgmt agora deverá ter o tipo WIN32_SHARE_PROCESS.

Referência:
https://blogs.technet.microsoft.com/askperf/2014/08/12/wmi-how-to-troubleshoot-high-cpu-usage-by-wmi-components/