Compartilhar via


Introdução ao conjunto de ferramentas TSS (TroubleShootingScript)

Este artigo apresenta o conjunto de ferramentas TSS (TroubleShootingScript) e fornece respostas para perguntas frequentes.

Aplica-se a: Versões com suporte do Windows Server e do Cliente Windows

O conjunto de ferramentas do TSS inclui ferramentas baseadas no PowerShell e uma estrutura para coleta de dados e diagnóstico. O conjunto de ferramentas visa simplificar a coleta de dados e ajudar a resolver casos de forma eficiente e segura.

O conjunto de ferramentas inclui vários scripts do PowerShell e arquivos executáveis, todos assinados pela Microsoft. Com base nas opções selecionadas, o TSS usa um ou mais scripts e arquivos executáveis para coletar os logs desejados.

Você pode baixar o conjunto de ferramentas como um arquivo zip (TSS.zip) em https://aka.ms/getTSS.

Pré-requisitos

Aqui estão alguns pré-requisitos para que o conjunto de ferramentas seja executado corretamente:

  • O conjunto de ferramentas do TSS deve ser executado em uma janela do PowerShell com privilégios elevados por contas com privilégios de administrador no sistema local. Não há suporte para a execução do conjunto de ferramentas TSS no ISE (Ambiente de Script Integrado) do Windows PowerShell. O contrato de licença de usuário final (EULA) deve ser aceito. Depois que o EULA for aceito, o conjunto de ferramentas do TSS não solicitará o EULA novamente.

  • A política de execução de script do PowerShell deve ser definida no RemoteSigned nível do processo executando o cmdlet Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned -Force em um prompt de comando do PowerShell com privilégios elevados.

    Observação

    As alterações no nível do processo afetam apenas a sessão atual do PowerShell.

Como iniciar o conjunto de ferramentas TSS

Você pode iniciar o TSS.ps1 com opções diferentes, dependendo do cenário. O -Start verbo é o verbo padrão e opcional e pode ser substituído por um verbo complementar conforme necessário. Os verbos complementares -Start são -StartAutoLogger, -StartDiag, -StartNoWaite -CollectLog.

Verbo Descrição
-Start O verbo -Start inicia rastreamentos de componentes do ETW (Rastreamento de Eventos para Windows) ou ferramentas de suporte, como o WPR (Gravador de Desempenho do Windows).

O verbo [-Start] é opcional, mas pode ser substituído por opções complementares -start .
-StartAutoLogger Para coletar esses logs no momento da inicialização, use -StartAutoLogger para substituir -Start.

Use-o em combinação com o .\TSS.ps1 -Stop cmdlet para interromper os rastreamentos depois que o problema for reproduzido.
-StartDiag Embora essa opção não tenha muito uso no presente, ela deve ser usada no futuro em vários cenários. A partir de hoje, ele pode ser combinado com outros argumentos, como NET_DFSn obter diagnósticos do namespace DFSN.
-StartNoWait Esse parâmetro permite que os rastreamentos permaneçam ativos mesmo quando você sai.

Use-o em combinação com o .\TSS.ps1 -Stop cmdlet para interromper os rastreamentos depois que o problema for reproduzido.
-CollectLog Esse parâmetro é comumente usado junto com o argumento DND_SetupReport.

Exemplo:
.\TSS.ps1 -Collectlog DND_SetupReport

Os logs relacionados aos rastreamentos também são coletados automaticamente quando você interrompe a coleta de dados.

Sintaxe para usar o conjunto de ferramentas TSS

Parâmetro Descrição
<placeholder> A cadeia de caracteres entre colchetes angulares (<>) para espaços reservados precisa ser substituída por um nome de cenário real, componente de rastreamento, comando ou valor.
[optional] A palavra-chave ou o valor entre colchetes ([ ]) é opcional. Por exemplo, [module:int] significa que o módulo e o intervalo são opcionais. O valor padrão é usado se [<xx>:<yy>] for omitido.
| Este parâmetro significa 'OR'. Você pode escolher uma das opções disponíveis.
: O caractere separador entre dois valores.

Exemplos de cmdlet

Cmdlet do PowerShell Descrição
.\TSS.ps1 -PerfMon [General:10] Este parâmetro significa PerfMon CounterSetName= General e Interval= 10 segundos. Quando [General:10] é omitido, o padrão entra em ação, portanto -PerfMon , tem o mesmo efeito que -PerfMon General -PerfIntervalSec 10.
.\TSS.ps1 [-StopWaitTimeInSec <N>] Esse parâmetro significa que o argumento -StopWaitTimeInSec é opcional, mas se for especificado, um valor para <N> ="the number of seconds" é obrigatório.

Rastreamento de Eventos para Windows (ETW)

Rastreamento ETW Cmdlet do PowerShell Descrição
Habilite um rastreamento de cenário. .\TSS.ps1 -Scenario <ScenarioName> Os nomes de cenário com suporte são listados usando o TSS.ps1 -ListSupportedScenarioTrace cmdlet.
Habilite rastreamentos de componentes. .\TSS.ps1 <-ComponentName> <-ComponentName> ... O suporte <-componentName> é listado usando o TSS.ps1 -ListSupportedTrace cmdlet.
Inicie rastreamentos com o modo sem espera. .\TSS.ps1 -StartNoWait -Scenario <ScenarioName>

.\TSS.ps1 -Stop
O prompt retorna imediatamente, para que você possa sair ou usar um cmdlet como Shutdown.

O cmdlet .\TSS.ps1 -Stop interrompe o rastreamento.

Observação

Para listar todos os GUIDs de provedor de componentes e/ou cenários, use o -ListETWProviders cmdlet. Por exemplo:

.\TSS.ps1 -ListETWProviders <component-/scenario-name>

Ferramentas e comandos de suporte

Inicie ferramentas ou comandos de suporte (por exemplo, ProcMon, ProcDump, netsh, Monitor de Desempenho (PerfMon), WPR ou Radar) para aprimorar a coleta de logs com ferramentas adicionais para capturas especializadas.

Cmdlet do PowerShell Descrição
-Fiddler Coletar o rastreamento do Fiddler. Requer que o Fiddler seja instalado.

Habilite a opção de descriptografia de tráfego selecionando Opções de Ferramentas>e selecionando Descriptografar Tráfego HTTPS na guia HTTPS.
-GPresult <Start|Stop|Both> Coletar GPresult saída na fase start, stop, ou both.
-Handle <Start|Stop|Both> Colete a saída do SysInternals Handle.exe na fase start, stopou both.
-LiveKD <Start|Stop|Both> Inicie o SysInternals LiveKD -ml (despejo de kernel ao vivo).
<Start>: o despejo é feito no início da reprodução.
<Stop>: o despejo é feito na parada.
<Both>: o despejo é feito no início e na parada.
-Netsh
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Inicie a captura de pacotes de rede.

1. Especifique opções adicionais para Netsh. Por exemplo, 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'.
2. O tamanho máximo do log em Netsh megabytes (MB) (por exemplo, -NetshMaxSizeMB 4096). O valor padrão é 2048.
3. Evite que os pacotes sejam capturados com Netsh (somente rastreamentos ETW no ScenarioName serão capturados).
-NetshScenario
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Inicie o rastreamento do Netsh cenário. O suporte <ScenarioName> é listado usando o -ListSupportedNetshScenario cmdlet.

1. Especifique opções adicionais para Netsh. Por exemplo, 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'.
2. O tamanho máximo do log em Netsh MB (por exemplo, -NetshMaxSizeMB 4096). O valor padrão é 2048.
3. Impedir que os pacotes sejam capturados com Netsh (somente rastreamentos ETW no nome do cenário serão capturados).
-PerfMon <CounterSetName> [-PerfIntervalSec N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfIntervalSec <Interval in sec>
2. -PerfMonMaxMB <N>
3. -PerfMonCNF <[[hh:]mm:]ss>
Inicie os logs do Monitor de Desempenho. O <CounterSetName> pode ser listado usando o -ListSupportedPerfCounter cmdlet.

1. Defina o intervalo para o PerfMon log (o valor padrão é 10 segundos).
2. Especifique um valor int para o tamanho máximo Perfmon do log em MB (o valor padrão é 2048).
3. Crie um novo arquivo quando o tempo especificado tiver decorrido ou quando o tamanho máximo de <PerfMonMaxMB> for excedido.
-PerfMonLong <CounterSetName> [-PerfLongIntervalMin N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfLongIntervalMin <Interval in min>
Monitor de desempenho com um intervalo longo.

1. Defina o intervalo para o PerfMonLong log (o valor padrão é 10 minutos).
-PktMon Coletar dados de monitoramento de pacotes (no Windows Server 2019, Windows 10, versão 1809 e versões posteriores). PktMon:Drop coleta apenas pacotes descartados.
-PoolMon <Start|Stop|Both> Coletar PoolMon em start, stop, ou both.
-ProcDump <PID[]|ProcessName.exe[]|ServiceName[]>
1. -ProcDumpOption<Start|Stop|Both>-ProcDumpInterval <N>:<Interval in sec>
2. -ProcDumpInterval <N>:<Interval in sec>
3. -ProcDumpAppCrash
Capture despejos de usuário de um único item ou lista de itens separados por vírgulas usando o SysInternals ProcDump.exe. Por padrão, o despejo é feito no início da reprodução e parada. Insira ProcessName(s) com a .exe extensão.

1. Start: a descarga é efectuada no início da reprodução.
Stop: o despejo é feito na parada.
Both (padrão): o despejo é feito no início e na parada.
2. Use essa opção quando o despejo precisar ser capturado repetidamente.
N: o número de despejos
Int: o intervalo em segundos
O valor padrão é 3:10.
3. Essa opção habilita ProcDump -ma -e, que grava um despejo completo quando o processo encontra uma exceção sem tratamento.
-ProcMon
1. -ProcmonAltitude <N>
2. -ProcmonPath <folder path to Procmon.exe>
3. -ProcmonFilter <filter-file.pmc>
Inicie o SysInternals Procmon.exe.

1. Especifique um valor de string para ProcmonAltitude (o valor padrão é 385200). Use fltmc instances para mostrar a altitude do driver do filtro. Use um número menor do que o driver específico suspeito. O valor 45100 mostrará praticamente tudo.
2. Especifique um caminho para Procmon.exe (por padrão, o TSS usa o Procmon integrado).
3. Especifique um arquivo de configuração para Procmon (por exemplo, ProcmonConfiguration.pmc) localizado na pasta \config .
-PSR Inicie o Gravador de Passos de Problemas.
-Radar <PID[]|ProcessName[]|ServiceName[]> Colete as informações de diagnóstico de vazamento (rdrleakdiag.exe).

Por exemplo, -Radar AppIDSvc.
-RASdiag Colete rastreamento. O Netsh rastreamento do conjunto de diagnóstico Ras está habilitado.
-SDP <SpecialityName[]>
1. -SkipSDPList "<xxx>","<yyy>"
2. <SpecialityName>
Colete o SDP (Pacote de Diagnóstico de Suporte) para a especialidade especificada. Para obter a lista completa de SpecialityNames e SkipSDPList, use o .\tss -help cmdlet.

Ignore a lista separada por vírgulas de nomes de módulos SDP que ficam pendurados em seu ambiente durante a execução do relatório SDP.
-SysMon Colete logs do SysInternals System Monitor (SysMon) (sysmonConfig.xml na pasta config por padrão).
-TTD <PID[]|ProcessName.exe[]|ServiceName[]>
1. -TTDPath <Folder path to tttracer.exe>
2. -TTDMode<Full|Ring|onLaunch>
3. -TTDMaxFile <size in MB>
4. -TTDOptions '<String of TTD options>'
Inicie a depuração de viagem no tempo (TTD) (TTT/iDNA) com o modo padrão -Full . Insira o ProcessName(s) (s) com a extensão, um único item (PID/nome) ou uma lista de itens separados por vírgulas .exe .

Observação:
O sistema operacional de nível inferior antes do Windows 10, versão 1703, requer o pacote TSS_TTD.zip .

1. Especifique o caminho da pasta que contém tttracer.exe (PartnerTTD). Normalmente, essa opção só é necessária se você quiser forçar um caminho específico.
2. Full = -dumpfull (= padrão)
Ring = modo de buffer de anel
onLaunch = -onLaunch (requer TSS_TTD)
3. O tamanho máximo do arquivo de log. A operação depende de -TTDMode. Full para quando o tamanho máximo é atingido e Ring mantém o tamanho máximo no buffer de anel.
4. Use esta opção para adicionar quaisquer opções adicionais para TTD (TTT/iDNA).
-Video Inicie a captura de vídeo (requer a instalação do .NET 3.5).
-WFPdiag Colete rastreamentos com o netsh Wfp capture comando.
-WireShark Inicie o WireShark. Os parâmetros a seguir são configuráveis por meio do arquivo tss_config.cfg .

1. WS_IF: usado para -i. Especifique o número da interface (por exemplo, _WS_IF=1).
2. WS_Filter: usado para -f. Filtro para a interface (por exemplo, _WS_Filter="port 443").
3. WS_Snaplen: usado para -s. Limite a quantidade de dados para cada quadro. Esse parâmetro tem melhor desempenho e é útil para situações de alta carga (por exemplo, _WS_Snaplen=128).
4. WS_TraceBufferSizeInMB: usado para -b FileSize (multiplicado por 1024). Alterne para o próximo arquivo após o número de megabytes. (por exemplo, _WS_TraceBufferSizeInMB=512, padrão=512 MB)
5. WS_PurgeNrFilesToKeep: usado para -b files. Substitua após o número dos arquivos. (por exemplo, _WS_PurgeNrFilesToKeep=20)
6. WS_Options: quaisquer outras opções para -i (por exemplo, _WS_Options="-P").

Exemplo:
Para coletar o WireShark nas interfaces 15 e 11, insira quando o TSS solicitar um número de interface: 15 -i 11.

Por padrão, o Wireshark inicia dumpcap.exe -i <all NICs> -B 1024 -n -t -w _WireShark-packetcapture.pcap -b files:10 -b filesize:524288o .
-WPR <WPRprofile>
1. -SkipPdbGen
2. -WPROptions '<Option string>'
Inicie um rastreamento de perfil WPR. <WPRprofile>é um dos GeneralVSOD_Leak|CPUVSOD_CPU|||DeviceSQL||XamlWait||Graphic|Storage|RegistryNetworkMemory||BootGeneral|.

1. Ignore a geração de arquivos de símbolo (arquivos PDB).
2. Especifique as opções para WPR.exe. Por exemplo, -WPROptions '-onoffproblemdescription "test description"'.

Exemplo 1:
.\TSS.ps1 -StartAutoLogger -WPR BootGeneral -WPROptions '-addboot CPU' capturará rastreamentos de inicialização WPR com os General perfis e CPU .

Exemplo 2:
.\TSS.ps1 -WPR General -WPROptions '-Start CPU -start Network -start Minifilter' combinará perfis (General, CPU, Networke Minifilter).
-Xperf <Profile>
1. -XperfMaxFileMB <Size>
2. -XperfTag <Pool Tag>
3. -XperfPIDs <PID>
4. -XperfOptions <Option string>
Inicie o Xperf. <Profile>é um dos GeneralSBSLboot||DiskRegistry||SBSLPoolNPP||SMB2|Pool|NetworkMemoryLeak||CPU|.

1. Especifique o tamanho máximo do log em MB (o valor padrão é 2048 MB). O valor padrão para cenários SBSL* é 16384 (o mesmo para ADS_/NET_SBSL).
2. Especifique PoolTag para ser registrado. Esse parâmetro é usado com o Pool perfil ou PoolNPP (por exemplo, -Xperf Pool -XperfTag TcpE+AleE+AfdE+AfdX).
3. Especifique ProcessID. Esse parâmetro é usado com o Leak perfil (por exemplo, -Xperf Leak -XperfPIDs <PID>).
4. Especifique outras strings de opção para Xperf.
-xray Inicie o raio-x para diagnosticar um sistema em busca de problemas conhecidos.

O exemplo a seguir ilustra como ativar várias ferramentas de suporte (comandos) durante o mesmo rastreamento.

.\TSS.ps1 -WPR <WPRprofile> -Procmon -Netsh|-NetshScenario <NetshScenario> -PerfMon <CounterSetName> -ProcDump <PID> -PktMon -SysMon -SDP <specialty> -xray -PSR -Video -TTD <PID[]|ProcessName[]|ServiceName[]>  

Parâmetros nas opções do TSS

Define parâmetros específicos nas opções do TSS para controlar, aprimorar ou simplificar a coleta de dados.

Parâmetro Descrição
-AcceptEula Não pergunte no início; run para aceitar o Disclaimer (útil para a -RemoteRun execução).
-AddDescription <description> Adicione uma breve descrição do problema de reprodução. O nome do arquivo zip resultante incluirá essa descrição.
-Assist Modo de acessibilidade.
-BasicLog Colete o log básico completo (o mini log básico é sempre coletado por padrão).
-CollectComponentLog Usar com o -Scenario. Por padrão, as funções de coleta de componentes não são chamadas no -Scenario rastreamento. Essa opção permite que as funções de coleta de componentes sejam chamadas.
-CollectDump Colete o despejo do sistema (memory.dmp) depois de interromper todos os rastreamentos. -CollectDump pode ser usado com -Start e -Stop.
-CollectEventLog <Eventlog[]> Colete logs de eventos especificados. O caractere curinga asterisco (*) pode ser usado para o nome do log de eventos.

Exemplo:
-CollectEventLog Security,*Cred*
Colete segurança e todos os logs de eventos que correspondam *Cred* a .'Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational'
-CommonTask <<POD>|Full|Mini> Execute tarefas comuns antes de iniciar e depois de interromper o rastreamento.

<POD>: atualmente, apenas "NET" está disponível. Colete informações adicionais antes de iniciar e depois de interromper o rastreamento.
Full: o log básico completo é coletado após a interrupção do rastreamento.
Mini: o mini log básico é coletado após a interrupção do rastreamento.
-Crash Acione uma falha do sistema com NotMyFault na parada da reprodução ou depois que todos os eventos forem sinalizados, se usado com -WaitEvent.

Cuidado:
Essa opção forçará um despejo de memória (o sistema será reiniciado), portanto, os arquivos abertos não serão salvos.
-CustomETL Adicione provedores de rastreamento ETL personalizados. Por exemplo, .\TSS.ps1 -WIN_CustomETL -CustomETL '{<GUID>}','Microsoft-Windows-PrimaryNetworkIcon' (uma lista separada por vírgulas de aspas '{GUID}' simples e/ou 'Provider-Name').
-DebugMode Execute com o modo de depuração para um desenvolvedor.
-VerboseMode Mostre uma saída mais detalhada ou informativa durante o processamento de funções TSS.
-Discard Usado para descartar um conjunto de dados na fase -Stop. *Stop- ou *Collect- as funções não serão executadas. xray e psSDP será ignorado.
-EnableCOMDebug Módulo para ativar o modo de depuração COM.
-ETLOptions<circular|newfile>:<ETLMaxSizeMB>:<ETLNumberToKeep>:<ETLFileMax> Defina as opções passadas para logman os comandos. O valor padrão para circular ETLMaxSizeMB é 1024 e o valor padrão para newfile ETLMaxSizeMB é 512.

-StartAutologger-ETLOptions circular:<ETLMaxSize>:<ETLNumberToKeep>:<ETLFileMax>suporta apenas , mas ETLNumberToKeep não será executado esperadamente.

Exemplo.1:
-ETLOptions newfile:2048:5

Execute newfile logs com um tamanho de 2048 MB. Mantenha apenas os últimos cinco *.etl arquivos. A configuração padrão para o modo circular é circular:1024, e para o modo de novo arquivo é newfile:512:10.

Exemplo 2:
-StartAutologger -ETLOptions circular:4096
Autologger não obedece :<ETLNumberToKeep> e só aceita o modo circular.

Exemplo 3:
-StartAutologger -ETLOptions circular:4096:10:3
Autologger não obedecerá :<ETLNumberToKeep> e só aceita o modo circular e "3" como o número de autologger gerações.
-ETWlevel <Info|Warning|Error> Defina o Nível de Rastreamento de Eventos. O valor padrão é 0xFF.
-EvtDaysBack <N> Converta logs de eventos apenas para os últimos N dias. O valor padrão é 30 dias. Também se aplica ao relatório do SDP.

Observação:
Os logs de eventos de segurança serão ignorados.
-ExternalScript <path to external PS file> Execute o script do PowerShell especificado antes de iniciar o rastreamento.
-LogFolderPath <Drive:\path to log folder> Use um caminho de pasta de log diferente para os dados de saída resultantes em vez do local padrão (C:\MS_DATA). É útil quando a unidade C: está com pouco espaço livre em disco.
-MaxEvents <N> Como argumento para '-WaitEvent Evt:..', o parâmetro investigará o último número N de eventos com a mesma ID de evento (o valor padrão é 1).
-Mini Colete apenas dados mínimos. Ignorar noPSR, noSDP, noVideo, noXray, noZipe noBasicLog.
-Mode <Basic|Medium|Advanced|Full|Verbose|VerboseEx|Hang|Restart
|Swarm|Kube|GetFarmdata|Permission|traceMS>
Execute scripts no Basicmodo , Medium, Advanced, Fullou Verbose(Ex) para coleta de dados. Restart reiniciará o serviço associado.
-RemoteRun Use quando o TSS estiver sendo executado em um host remoto, por exemplo, por meio de PsExec, no Console Serial do Azure ou com comunicação remota do PowerShell. Este parâmetro inibirá PSR, gravação de vídeo, inicialização do TssClock e abertura do Explorer com os resultados finais. Nesse caso, considere -AcceptEulatambém .
-StartNoWait Não espere e o prompt retornará imediatamente. Esse parâmetro é útil para o cenário em que um usuário precisa fazer logoff.
-WaitEvent Monitore o evento especificado ou o stop-trigger; Se for sinalizado, os rastreamentos serão interrompidos automaticamente.

Há uma grande variedade de opções para acionar uma parada automática. Corra .\TSS.ps1 -Find Monitoring para ver o uso.
-Update
1. -UpdMode<Online|Lite>
Atualize o pacote TSS. Pode ser usado em conjunto com -UpdMode Online|Lite.

Online é o padrão e Lite é a Upd versão lite.
-Help
1. Common
2. ALL
3. Monitoring
4. Config
5. Keyword
Forneça mensagens de ajuda em vários cenários.

1. Mensagem de ajuda geral comum.
2. Todas as opções disponíveis.
3. Mostre mensagens de ajuda para monitoramento e recursos remotos.
4. Ajuda com todos os parâmetros de configuração.
5. Você pode inserir qualquer palavra-chave e ela mostrará as informações de ajuda sobre essa palavra-chave.
-Status Mostre o status do rastreamento em execução, se houver.

Scripts e ferramentas auxiliares incluídos

Script e ferramenta auxiliares Descrição
\scripts\tss_EventCreate.ps1 Crie uma entrada de log de eventos em arquivos de log de eventos com IDs de evento.
\scripts\tss_SMB_Fix-SmbBindings.ps1 Útil para corrigir associações SMB corrompidas (LanmanServer, LanmanWorkstation ou NetBT). Consulte também -Collect NET_SMBsrvBinding.
\BINx64\kdbgctrl.exe Use a opção -sd <dump type> para definir o tipo Full|Kernelde despejo de memória do kernel , por exemplo, kdbgctrl -sd Full.
\BINx64\NTttcp.exe Testes de desempenho. Para obter mais informações, consulte Testar a taxa de transferência de rede da VM usando NTTTCP.
\BINx64\latte.exe Testes de latência. Para obter mais informações, consulte Testar a latência de rede entre VMs do Azure.
\BINx64\notmyfaultc.exe Forçar um despejo de memória. Consulte NotMyFault v4.21 se a linha de comando do TSS incluir -Crash.

Solucionar problemas de erros inesperados do PowerShell

  1. Execute este cmdlet após uma falha:

    .\TSS.ps1 -Stop -noBasiclog -noXray
    
  2. Feche a janela do PowerShell com privilégios elevados aberta e inicie uma nova janela do PowerShell com privilégios elevados.

  3. Permita que os scripts do PowerShell sejam executados em seu sistema com o .ExecutionPolicy

  4. Se você encontrar um erro indicando que o script em execução está desabilitado, tente os métodos a seguir.

Método 1

  1. Execute o cmdlet a seguir:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force -Scope Process
    
  2. Verifique as configurações com o Get-ExecutionPolicy -List cmdlet de que nenhum ExecutionPolicy com precedência mais alta está bloqueando a execução desse script.

  3. Execute o .\TSS.ps1 <Desired Parameters> cmdlet novamente.

Método 2 (alternativa)

Se os scripts forem bloqueados pelo MachinePolicy, execute os seguintes cmdlets em uma janela do PowerShell com privilégios elevados:

Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value RemoteSigned
Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name EnableScripts  -Value 1 -Type DWord

Método 3 (alternativa)

Se os scripts forem bloqueados pelo UserPolicy, execute os seguintes cmdlets em uma janela do PowerShell com privilégios elevados:

Set-ItemProperty -Path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell -Name ExecutionPolicy -Value RemoteSigned
Set-ItemProperty -Path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell -Name EnableScripts  -Value 1 -Type DWord

Observação

O método 2 é apenas uma solução alternativa para a política MachinePolicy - RemoteSigned. Se você também vir UserPolicy - RemoteSigned, peça ao administrador do domínio uma isenção temporária de GPO (Objeto de Diretiva de Grupo).

Em raras situações, você pode tentar o -ExecutionPolicy Bypass cmdlet.

Se sua organização forçar o modo de idioma restrito do PowerShell do GPO (System.Management.Automation.EngineIntrinsics.SessionState.LanguageMode -ne 'FullLanguage'), solicite ao administrador do domínio uma isenção temporária de GPO.

Perguntas frequentes (FAQs)

  • P1: O script TSS altera alguma configuração do meu sistema?

    R1: Não, mas uma configuração do Registro é necessária para habilitar o log de depuração em alguns cenários. O script define a chave necessária no início da coleta de dados e reverte a chave para o valor padrão no final da coleta de dados. Ele também pode excluir alguns caches (por exemplo, o cache ARP ou o cache de resolução de nomes) no início da coleta de dados para observar o problema nos logs.

  • P2: O conjunto de ferramentas TSS coloca uma carga adicional no servidor?

    A2: Alguns logs (por exemplo, captura de rede, coleta de rastreamento ETW e assim por diante) iniciados pelo conjunto de ferramentas TSS podem colocar uma carga secundária no sistema. A carga geralmente está em níveis ignoráveis. Entre em contato com seu representante de suporte quando vir um alto uso de CPU, memória ou disco após iniciar o conjunto de ferramentas TSS.

  • P3: Por que não podemos reproduzir o problema quando o conjunto de ferramentas do TSS está em execução?

    R3: O conjunto de ferramentas TSS pode excluir todas as informações armazenadas em cache no início. Ele também inicia a captura de rede em um modo promíscuo, o que altera os comportamentos padrão da placa de interface de rede (NIC). Essas alterações podem afetar o problema e os problemas podem desaparecer. Especialmente para problemas de tempo específicos, os problemas desaparecem devido à coleta de dados do conjunto de ferramentas TSS. A coleta de dados inicia o registro, o que pode afetar o problema indiretamente e alterar a situação.

  • P4: Por que o conjunto de ferramentas TSS não responde há muito tempo?

    R4: Em alguns casos, os comandos internos do sistema operacional executados pelo conjunto de ferramentas TSS podem não responder ou levar muito tempo para serem concluídos. Entre em contato com seu representante de suporte se tiver esse problema.

  • P5: Preciso me preocupar com espaço em disco ou qualquer outra coisa quando executo o conjunto de ferramentas TSS por um longo tempo?

    R5: Todo o rastreamento TSS é configurado para ser executado com buffers de anel, para que você possa executar o conjunto de ferramentas por um longo tempo, se necessário. O conjunto de ferramentas TSS também calcula o espaço em disco no início da coleta de dados e pode sair se não houver espaço em disco suficiente. Se você observar um alto uso do disco após iniciar o conjunto de ferramentas do TSS ou tiver outras preocupações sobre o uso do disco do conjunto de ferramentas, entre em contato com o representante de suporte.

  • P6: O que devo fazer se receber o seguinte aviso de segurança ao executar o script .\TSS.ps1 ?

    Security Warning: Run only scripts that you trust. While scripts from the Internet can be useful, this script can potentially harm your computer. Do you want to run .\TSS.ps1? [D] Do not run [R] Run once [S] Suspend [?] Help (default is "D")

    R6: Em raras situações, você pode receber este aviso de segurança. Você pode desbloquear o script usando o cmdlet PS C:\> Unblock-File -Path C:\TSS\TSS.ps1. Esse script desbloqueará todos os outros módulos usando o cmdlet Get-ChildItem -Recurse -Path C:\TSS\*.ps* | Unblock-File -Confirm:$false.

Contrato de Licença de Usuário Final (EULA)

Selecione abaixo para ver os TERMOS DE LICENÇA PARA SOFTWARE MICROSOFT.

Scripts e utilitários de diagnóstico da Microsoft

Estes termos de licença constituem um contrato entre você e a Microsoft Corporation (ou uma de suas afiliadas). SE VOCÊ CUMPRIR ESTES TERMOS DE LICENÇA, TERÁ OS DIREITOS DESCRITOS ABAIXO. AO USAR O SOFTWARE, VOCÊ ACEITA ESTES TERMOS.

  1. DIREITOS DE INSTALAÇÃO E DE USO. Sujeito aos termos e restrições estabelecidos nesta licença, a Microsoft Corporation ("Microsoft") concede a você ("Cliente" ou "você") uma licença não exclusiva, não atribuível e totalmente paga para usar e reproduzir o script ou utilitário fornecido sob esta licença (o "Software"), exclusivamente para fins comerciais internos do Cliente, para ajudar a Microsoft a solucionar problemas com um ou mais produtos da Microsoft, desde que tal licença para o Software não inclua quaisquer direitos sobre outras tecnologias da Microsoft (como produtos ou serviços). "Usar" significa copiar, instalar, executar, acessar, exibir, executar ou interagir de outra forma com o Software.

    Você não pode sublicenciar o Software ou qualquer uso dele por meio de distribuição, acesso à rede ou de outra forma. A Microsoft reserva-se todos os outros direitos não expressamente concedidos neste documento, seja por implicação, preclusão ou de outra forma. Você não pode fazer engenharia reversa, descompilar ou desmontar o Software, ou de outra forma tentar derivar o código-fonte do Software, exceto e na medida exigida pelos termos de licenciamento de terceiros que regem o uso de determinados componentes de software livre que podem ser incluídos no Software, ou remover, minimizar, bloquear ou modificar quaisquer avisos da Microsoft ou de seus fornecedores no Software. Nem você nem seus representantes podem usar o Software fornecido neste documento: (i) de forma proibida por lei, regulamento, ordem ou decreto governamental; (ii) violar os direitos de terceiros; (iii) tentar obter acesso não autorizado ou interromper qualquer serviço, dispositivo, dados, conta ou rede; (iv) para distribuir spam ou malware; (v) de uma forma que possa prejudicar os sistemas de TI da Microsoft ou prejudicar o uso deles por qualquer outra pessoa; (vi) em qualquer aplicação ou situação em que o uso do Software possa levar à morte ou lesões corporais graves de qualquer pessoa, ou a danos físicos ou ambientais; ou (vii) para ajudar, encorajar ou permitir que qualquer pessoa faça qualquer um dos itens acima.

  2. DADOS. O Cliente detém todos os direitos sobre os dados que pode optar por compartilhar com a Microsoft por meio do uso do Software. Você pode saber mais sobre coleta e uso de dados na documentação de ajuda e na política de privacidade em https://aka.ms/privacy. Seu uso do Software funciona como seu consentimento para essas práticas.

  3. FEEDBACK. Se você fornecer comentários sobre o Software à Microsoft, você concede à Microsoft, sem custo, o direito de usar, compartilhar e comercializar seus comentários de qualquer forma e para qualquer finalidade. Você não fornecerá nenhum comentário sujeito a uma licença que exija que a Microsoft licencie seu software ou documentação a terceiros devido à Microsoft, incluindo seus comentários em tal software ou documentação.

  4. RESTRIÇÕES DE EXPORTAÇÃO. O Cliente deve cumprir todas as leis e regulamentos de exportação nacionais e internacionais que se aplicam ao Software, que incluem restrições sobre destinos, usuários finais e uso final. Para obter mais informações sobre as restrições de exportação, acesse https://aka.ms/exporting.

  5. REPRESENTAÇÕES E GARANTIAS. O Cliente cumprirá todas as leis aplicáveis sob este contrato, inclusive na entrega e uso de todos os dados. O Cliente ou um representante que concorde com estes termos em nome de uma entidade declara e garante que (i) tem todo o poder e autoridade para celebrar e cumprir suas obrigações sob este contrato, (ii) tem total poder e autoridade para vincular suas afiliadas ou organização aos termos deste contrato, e (iii) garantirá a permissão da outra parte antes de fornecer qualquer código-fonte de uma maneira que sujeitaria a propriedade intelectual da outra parte a quaisquer outros termos de licença ou exigir que a outra parte distribua o código-fonte para qualquer uma de suas tecnologias.

  6. EXCLUSÃO DE GARANTIAS. O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA A MICROSOFT OU SEUS LICENCIADORES SERÃO RESPONSÁVEIS POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQÜENCIAIS (INCLUINDO, MAS NÃO SE LIMITANDO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) DE QUALQUER FORMA CAUSADA E EM QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE ESTRITA OU ATO ILÍCITO (INCLUINDO NEGLIGÊNCIA OU DE OUTRA FORMA) DECORRENTE DE QUALQUER FORMA DO USO DO SOFTWARE, MESMO SE AVISADO DA POSSIBILIDADE DE TAIS DANOS.

  7. LIMITAÇÃO E EXCLUSÃO DE INDENIZAÇÕES. SE VOCÊ TIVER ALGUMA BASE PARA RECUPERAR DANOS, APESAR DA ISENÇÃO DE GARANTIA ANTERIOR, PODERÁ RECUPERAR DA MICROSOFT E DE SEUS FORNECEDORES APENAS DANOS DIRETOS ATÉ OS EUA. 00. VOCÊ NÃO PODERÁ SER RESSARCIDO POR QUAISQUER OUTROS DANOS, INCLUINDO DANOS CONSEQUENTES, LUCROS PERDIDOS, DANOS EXTRAORDINÁRIOS, DANOS INDIRETOS OU INCIDENTAIS. Esta limitação se aplica a (i) qualquer coisa relacionada ao Software, serviços, conteúdo (incluindo código) em sites da Internet de terceiros ou aplicativos de terceiros; e (ii) reclamações por violação de contrato, garantia ou condição; responsabilidade objetiva, negligência ou outro ato ilícito; ou qualquer outra reclamação; em cada caso, na medida permitida pela lei aplicável. Aplica-se também mesmo se a Microsoft teve ou deveria ter tido conhecimento da possibilidade de ocorrência de tais danos. A limitação ou exclusão acima poderá não ser aplicável a você, por o estado ou país/região em que você reside não permitir a exclusão ou limitação de danos incidentais, consequentes ou outros.

  8. ARBITRAGEM VINCULATIVA E RENÚNCIA À AÇÃO COLETIVA. Esta seção se aplica se você mora nos Estados Unidos (ou, se for uma empresa, seu principal local de negócios é). Se você e a Microsoft entrarem em litígio, você e a Microsoft concordarão em tentar resolvê-lo informalmente em 60 dias. Se você e a Microsoft não conseguirem resolvê-lo, você e a Microsoft chegarão a uma arbitragem individual vinculativa perante à American Arbitration Association (Associação Americana de Arbitragem) nos termos da "FAA" (Lei Federal de Arbitragem), para não haver julgamento no tribunal diante de um juiz ou júri. Em vez disso, um arbitrador neutro decidirá. Não são permitidos processos de ação coletiva, arbitragens coletivas, ações judiciais por um procurador-geral privado e qualquer outro procedimento em que alguém atue em uma capacidade representativa; nem é permitida a combinação de procedimentos individuais sem o consentimento de todas as partes. O Contrato de Arbitragem completo contém mais termos e se encontra em https://aka.ms/arb-agreement-4. Você e a Microsoft concordam com esses termos.

  9. LEI E FORO. Se existir uma jurisdição federal dos Estados Unidos, você e a Microsoft concordarão com a jurisdição exclusiva e com o foro do tribunal federal de King County, Washington para todos os litígios ouvidos no tribunal (excluindo arbitragem). Caso contrário, você e a Microsoft aceitam como foro competente e exclusivo o Tribunal Superior localizado em King County, Washington, EUA em todos os litígios apresentados em tribunal (excluindo a arbitragem).

  10. ACORDO INTEGRAL. O presente contrato e quaisquer outros termos que a Microsoft possa vir a fornecer relacionados aos suplementos, atualizações ou aplicativos de terceiros constituem o acordo integral referente ao software.