SharkByte561/windows-troubleshoot

Diagnostique e resolva problemas do Windows 10/11 e Windows Server com o conjunto de ferramentas TroubleShootingScript (TSS) da Microsoft - mapeie um sintoma para o cenário TSS correto e o comando .\TSS.ps1 exato, execute uma triagem de integridade somente leitura da máquina local (logs de eventos, travamentos, telas azuis, discos, serviços, atualizações, rede, domínio) e analise um pacote TSS / MS_DATA já coletado em descobertas em linguagem simples.

O que é windows-troubleshoot?

Este skill capacita um agente de IA a atuar como um especialista em diagnóstico do Windows, usando o kit de ferramentas oficial da Microsoft: TroubleShootingScript (TSS). Ele preenche a lacuna crítica entre a coleta de dados do TSS (que é excelente) e a interpretação dos resultados (que é quase inexistente). O skill oferece três funcionalidades principais: (1) triagem rápida e somente leitura da máquina local para identificar problemas comuns (disco cheio, serviços parados, etc.), (2) mapeamento de sintomas (como lentidão, tela azul, problemas de logon ou rede) para o cenário e comando TSS exato, utilizando um catálogo pré-construído que funciona mesmo sem o TSS instalado, e (3) análise aprofundada de pacotes de suporte MS_DATA (.zip ou pasta), gerando sumários com eventos de erro, metadados do sistema e alertas do próprio TSS. É compatível com Claude Code, Cursor e outros agentes de terminal, sendo ideal quando o usuário descreve um problema no Windows, menciona TSS, MS_DATA ou Xray, ou fornece um arquivo de suporte para análise.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SharkByte561/windows-troubleshoot/tree/HEAD/plugins/windows-troubleshoot/skills/windows-troubleshoot

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Solução de problemas do Windows com TSS

O TSS é o kit de ferramentas PowerShell assinado pela própria Microsoft Support. Ele possui 157 cenários, cerca de 400 componentes de rastreamento, 215 conjuntos de CollectLog, 9 relatórios SDP, 24 acionadores de parada automática e 34 verificações de problemas conhecidos do Xray. Ele coleta dados muito bem, mas não explica quase nada disto. Este skill fornece as peças que faltam:

  • escolher o que coletar;
  • verificar de forma leve antes de coletar qualquer coisa;
  • interpretar o que foi retornado.

A pasta do skill contém um catálogo pré-construído do TSS (references/tss-index.json), portanto as consultas funcionam mesmo em máquinas sem TSS.

Executando os scripts: os caminhos são relativos à pasta deste skill. Use o Windows PowerShell 5.1 embutido, que toda máquina Windows possui: powershell -NoProfile -ExecutionPolicy RemoteSigned -File <script>. O pwsh 7 funciona da mesma forma se estiver instalado.

  • -ExecutionPolicy RemoteSigned se aplica apenas a esse processo. É necessário porque os clientes Windows usam Restricted como padrão, o que bloqueia todo arquivo .ps1. Nunca use Bypass (consulte references/safety.md).
  • Se um script ainda estiver bloqueado porque o skill foi baixado como um zip ("não assinado digitalmente"), execute Unblock-File nos scripts\*.ps1 deste skill, nunca no TSS.
  • Se a Política de Grupo definir a política de execução, a chave não terá efeito. Essa é uma decisão dos administradores, portanto informe o usuário.

Onde o TSS reside: os scripts encontram uma cópia local do TSS com scripts/Resolve-TssRoot.ps1. Ele verifica $env:TSS_ROOT primeiro, depois a pasta salva por Update-Tss.ps1 ou Resolve-TssRoot.ps1 -Save <folder>, e depois C:\TSS.

  • A triagem, a análise de pacotes e a consulta de cenários não precisam de uma cópia local.
  • Para obtê-la, execute scripts/Update-Tss.ps1 (nível 2). Ele instala uma cópia verificada em C:\TSS (ou -TssRoot <folder>) e salva sua localização.

Fluxo de trabalho

Nem toda solicitação precisa de todas as etapas. Um usuário que entrega um zip vai direto para a etapa 5. Um usuário que apenas pergunta "qual cenário para X" precisa apenas da etapa 3.

1. Identificar o sintoma

Obtenha estas informações antes de qualquer outra coisa:

  • o que falha e o texto ou código de erro exato
  • desde quando e o que mudou por volta dessa época (atualização, driver, política, rede)
  • se afeta um usuário/máquina ou muitos
  • se pode ser reproduzido sob demanda ou ocorre de forma intermitente
  • de que lado olhar para problemas de cliente/servidor

Pergunte apenas o que você não pode inferir. Essas respostas decidem o cenário e onde ele é executado.

2. Triagem rápida somente leitura (na máquina afetada)

powershell -NoProfile -ExecutionPolicy RemoteSigned -File scripts/Invoke-QuickTriage.ps1 [-Hours 72] [-NoNetworkTests]
  • Leva cerca de 20 segundos e não precisa de administrador. Ele escreve triage.md e triage.json em %TEMP%\win-triage\<timestamp>\.
  • Ele não altera nada. Os testes de rede enviam um ping para o gateway, uma consulta DNS e um HTTP GET para msftconnecttest.com; pule-os com -NoNetworkTests.
  • Com privilégios elevados, ele também lê o log de Segurança (bloqueios, falhas de logon) e testa o canal seguro do domínio.

Defina -Hours para cobrir "desde quando" mais uma margem. Para algo que começou "na semana passada", use -Hours 240.

Leia o triage.md. A tabela de Sinalizadores é um conjunto de pistas, não um veredito. Relacione os sinalizadores ao sintoma do usuário e ignore o resto. Muitos problemas terminam aqui: um disco cheio, uma reinicialização pendente, um serviço principal parado, um endereço APIPA, um canal seguro quebrado, falhas de verificação de bugs repetidas. Nesses casos, explique a correção e ofereça-se para parar antes de qualquer rastreamento pesado.

3. Escolher o cenário TSS

powershell -NoProfile -ExecutionPolicy RemoteSigned -File scripts/Find-TssScenario.ps1 "usuários estão sendo bloqueados constantemente"
powershell -NoProfile -ExecutionPolicy RemoteSigned -File scripts/Find-TssScenario.ps1 -Name ADS_AccountLockout      # entrada completa
  • Retorna cenários classificados, CollectLogs, relatórios SDP e componentes, cada um com o comando exato, uma linha "usar quando", as ferramentas complementares e as frases de efeitos colaterais.
  • Leia a descrição completa da sua escolha (-Name). Ela diz onde executar o cenário e o que ele altera.
  • Prefira a opção mais leve que responda à pergunta: -CollectLog (logs estáticos) é melhor que -Scenario (rastreamento ao vivo), e as variantes "Ex" adicionam uma captura de rede e PSR, o que as torna mais pesadas.
  • Nem todo problema é um problema do TSS. Um aviso de "apenas correspondências fracas" significa que nenhum cenário se encaixa.
    • Travamentos e telas azuis são resolvidos a partir do dump: WinDbg !analyze -v no minidump que a triagem lista.
    • Problemas de disco cheio, hardware (WHEA) e reinicialização pendente são resolvidos a partir da própria triagem.
    • O relatório -SDP Perf das páginas Learn está obsoleto nesta versão do TSS.
  • Para problemas que não podem ser reproduzidos sob demanda, adicione um acionador de parada automática de references/waitevent-recipes.md, por exemplo -WaitEvent Evt:4740:Security.
  • references/scenario-index.md é a lista navegável, agrupada por área.

4. Entregar (ou executar) a coleta

Os rastreamentos do TSS são nível 3 em references/safety.md: eles alteram a política de auditoria, chaves de registro de depuração e caches, e podem produzir gigabytes de dados confidenciais.

  1. Apresente o comando, onde executá-lo, os efeitos colaterais, o tamanho esperado e os pré-requisitos de references/running-tss.md: console elevado, verificação de assinatura, política de execução no escopo do processo e um TSS atualizado (ele se recusa a ser executado após 90 dias).
    • Find-TssScenario.ps1 imprime a expiração em cada consulta. Se a cópia estiver expirada ou próxima disso, ofereça scripts/Update-Tss.ps1, que é nível 2: ele baixa, verifica o hash e as assinaturas e instala ao lado da cópia antiga. -CheckOnly apenas compara versões.
    • Se a atualização não for possível agora (máquina offline ou uma coleta que deve corresponder a uma anterior), adicionar -noExpire ao comando TSS é a substituição interna da Microsoft. Diga o que isso custa: definições congeladas naquela compilação, e o suporte pode solicitar uma nova execução na versão atual.
  2. Execute-o você mesmo apenas após um sim explícito e somente em uma máquina que o usuário administre.
  3. Normalmente, o usuário o executa, porque uma reprodução exige que ele esteja na frente da máquina de qualquer forma.

Nunca use -Crash, notmyfault ou alterações na política de execução de toda a máquina, a menos que o usuário solicite explicitamente.

5. Analisar o pacote coletado

powershell -NoProfile -ExecutionPolicy RemoteSigned -File scripts/Read-TssPackage.ps1 <C:\MS_DATA\TSS_...zip | pasta> [-OutDir <dir>] [-ExtractDir <short dir>]

Um zip é descompactado em %TEMP%\tssx\<id> a menos que você passe -ExtractDir. Passe-o quando o usuário quiser manter tudo em uma única pasta de caso e mantenha esse caminho curto.

  • O Windows PowerShell 5.1 não pode lidar com caminhos com mais de 260 caracteres, e os nomes de arquivo do TSS são longos. O script recusa um -ExtractDir com mais de 80 caracteres ou um -OutDir com mais de 200. Use algo como C:\cases\<case> e copie os resumos para onde eles precisam ir.

O script lê o pacote sem alterá-lo. Ele produz package-summary.md e package-summary.json com:

  • metadados (computador, cenário, hora, compilação do SO)
  • problemas do xray encontrados
  • eventos principais e principais erros por log de eventos
  • os códigos de erro mais frequentes nos logs de texto
  • as últimas linhas de falha nos logs de configuração/servicing
  • avisos de coleta do próprio TSS e arquivos de rastreamento quase vazios. Um .etl de 6 bytes significa que a captura nunca foi executada, portanto, diga isso antes de raciocinar a partir dele.
  • um inventário, incluindo a lista de arquivos confidenciais. Isso também cobre logs de eventos cujo texto contém endereços de e-mail ou nomes de perfil de usuário, o que os eventos do Outlook e do Office geralmente fazem.

Em seguida, vá além do resumo:

  • Abra os arquivos específicos para os quais ele aponta. references/package-anatomy.md diz o que ler primeiro para cada família de cenários e qual ferramenta decodifica .etl, .blg, .pml e .dmp.
  • Trate as descobertas do xray e os padrões de eventos como hipóteses e teste cada um contra a configuração real da máquina. Se a máquina afetada estiver acessível (geralmente é aquela em que você está), verifique a configuração somente leitura. Por exemplo: conflito de regra NRPT → Get-DnsClientNrptPolicy e se a máquina está ingressada no domínio. Clientes VPN/overlay como Tailscale ou Zscaler criam regras NRPT locais legitimamente, e uma verificação que não se encaixa na máquina é um falso positivo que vale a pena mencionar.
  • Pergunte quando o problema foi reproduzido e pondere os eventos nessa janela de tempo.
  • Separe o sinal do ruído de fundo; a página de anatomia lista o ruído usual. Em seguida, nomeie o ruído no relatório (etapa 6), para que o leitor não o persiga.
  • Se o TSS registrou avisos de coleta, diga quais dados estão faltando.

6. Relatar

Use este formato. Mantenha-o curto e específico para o sintoma:

## Diagnóstico: <uma linha>
**Confiança:** alta / média / baixa, e por quê.
## Evidências
- <arquivo ou verificação> → <o que mostra, com carimbo de data/hora/contagem/código>
## Não relacionado (ruído de fundo)
- <provedor/ID ou código, contagem> → <por que não está relacionado a este sintoma, ex. DCOM 10010, BitLocker 24641, Store 0x80073D02>
## Correção
1. <passo> (nível 1/2/3 conforme safety.md, precisa de admin?)
## Se isso não resolver
- próxima coleta: <comando .\TSS.ps1 exato>, executar em <máquina>, reproduzir, enviar <zip>
## Antes de compartilhar os dados
- <arquivos confidenciais do resumo do pacote e o que descartar>

Descreva os dados pessoais que você encontrar (endereços de e-mail, SIDs, números de série, IPs, nomes de usuário), fornecendo contagens e em qual arquivo estão, mas não os copie para sua resposta. A resposta geralmente acaba no mesmo ticket que você está tentando manter limpo.

Diga claramente o que você não verificou ou o que os dados não podem mostrar (por exemplo, um ETL de componente que apenas a Microsoft pode decodificar).

Armadilhas

  • Use um cenário por vez. Componentes e CollectLogs podem ser combinados, mas cenários não.
  • Verifique onde o cenário é executado. Cenários de bloqueio e KDC pertencem ao controlador de domínio. SMB, RDS e DNS têm cenários separados para cliente e servidor. Executar no lado errado resulta em um rastreamento limpo e uma conclusão errada.
  • O xray precisa principalmente da máquina ativa. Nenhuma das 34 verificações nesta versão do TSS é executada offline, portanto xray.ps1 -Offline em um pacote não encontra nada. Leia os arquivos xray_* que foram produzidos durante a coleta (references/xray-checks.md lista as verificações com seus artigos da KB).
  • Atualize o índice quando o TSS mudar. Update-Tss.ps1 o reconstrói para você. Se o usuário obtiver um TSS mais recente de outra forma, execute scripts/Build-TssIndex.ps1 -TssRoot <folder> para que nomes e opções correspondam. A consulta avisa quando o índice e a cópia no disco divergem.
  • Ruído de fundo é normal. Logs saudáveis do Windows registram constantemente erros DCOM 10010/10016, Perflib, BitLocker 24641 e Store 0x80073D02. Não construa um diagnóstico neles a menos que estejam alinhados com o sintoma no tempo.

Arquivos

  • scripts/Invoke-QuickTriage.ps1: instantâneo de saúde ao vivo somente leitura.
  • scripts/Find-TssScenario.ps1: sintoma → comando TSS; -Name fornece a entrada completa; -AsJson para análise.
  • scripts/Read-TssPackage.ps1: análise offline de um zip ou pasta MS_DATA.
  • scripts/Update-Tss.ps1: -CheckOnly compara a cópia local com a versão publicada. Sem ele, o script baixa, verifica e instala um TSS mais recente para TSS_<version>, em seguida, reconstrói o índice.
  • scripts/Resolve-TssRoot.ps1: imprime a pasta local do TSS, se houver; -Save <folder> registra uma cópia mantida em outro lugar.
  • scripts/Build-TssIndex.ps1: regenera o catálogo de references/ de uma pasta TSS (lê apenas seu JSON e fonte xray).
  • references/running-tss.md: pré-requisitos, padrões de comando, layout de saída, expiração de 90 dias.
  • references/safety.md: níveis, paradas forçadas, efeitos colaterais conhecidos, compartilhamento de dados.
  • references/package-anatomy.md: o que ler por família de cenários, ferramentas de decodificação, ruído, códigos de erro.
  • references/scenario-index.md, waitevent-recipes.md, xray-checks.md, tss-index.json: catálogo gerado.

Habilidades Relacionadas