Introdução ao TSS (conjunto de ferramentas Solução de Problemas)

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 TSS inclui ferramentas baseadas no PowerShell e uma estrutura para coleta e diagnóstico de dados. O conjunto de ferramentas visa simplificar a coleta de dados e ajudar a resolve 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 nos comutadores selecionados, 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) de 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 elevada por contas com privilégios de administrador no sistema local. Não há suporte para executar o conjunto de ferramentas do TSS no ISE (ambiente de script integrado) Windows PowerShell. O contrato de licença do 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 como RemoteSigned no nível do processo executando o cmdlet Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned -Force de um prompt de comando do PowerShell elevado.

    Observação

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

Como iniciar o conjunto de ferramentas do TSS

Você pode começar 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, -StartNoWait, e -CollectLog.

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

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

Use-o em combinação com o .\TSS.ps1 -Stop cmdlet para parar 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óstico 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 parar 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 em colchetes de ângulo (<>) para espaços reservados precisa ser substituída por um nome de cenário real, componente de rastreamento, comando ou valor.
[optional] O palavra-chave ou valor em colchetes ([ ]) é opcional. Por exemplo, [module:int] significa que o módulo e o intervalo são opcionais. O valor padrão será usado se [<xx>:<yy>] for omitido.
| Esse 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] Esse 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> ="o número de segundos" é obrigatório.

Rastreamento de eventos para rastreamento do ETW (Windows)

Rastreamento de ETW Cmdlet do PowerShell Descrição
Habilitar 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.
Habilitar rastreamentos de componentes. .\TSS.ps1 <-ComponentName> <-ComponentName> ... O com suporte <-componentName> é listado usando o TSS.ps1 -ListSupportedTrace cmdlet.
Inicie rastreamentos com 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 do 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 coleção de logs com ferramentas adicionais para capturas especializadas.

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

Habilite a opção de descriptografia de tráfego selecionandoOpções deFerramentas> e selecionando Descriptografar Tráfego HTTPS na guia HTTPS.
-GPresult <Start|Stop|Both> Colete sysInternals Handle.exe saída na fase start, stopou both.
-Handle <Start|Stop|Both> Colete sysInternals Handle.exe saída na fase start, stopou both.
-LiveKD <Start|Stop|Both> Inicie o LiveKD -ml do SysInternals (despejo de kernel ao vivo).
<Start>: o despejo é feito no início da repro.
<Stop>: o despejo é feito em parada.
<Both>: o despejo é feito no início e na parada.
-Netsh
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Iniciar 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 para Netsh em megabytes (MB) (por exemplo, -NetshMaxSizeMB 4096). O valor padrão é 2048.
3. Impedir que pacotes sejam capturados com Netsh (somente rastreamentos DE ETW no ScenarioName serão capturados).
-NetshScenario
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Inicie o rastreamento de Netsh cenário. O com 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 para Netsh em MB (por exemplo, -NetshMaxSizeMB 4096). O valor padrão é 2048.
3. Impedir que pacotes sejam capturados com Netsh (somente rastreamentos de 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 Monitor de Desempenho logs. 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 no 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 longo intervalo.

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, stopou both.
-ProcDump <PID[]|ProcessName.exe[]|ServiceName[]>
1. -ProcDumpOption<Start|Stop|Both>-ProcDumpInterval <N>:<Interval in sec>
2. -ProcDumpInterval <N>:<Interval in sec>
3. -ProcDumpAppCrash
Capturar despejos de usuário de um único item ou lista separada por vírgulas de itens usando o SysInternals ProcDump.exe. Por padrão, o despejo é feito no início da repro e para. Insira ProcessName(s) com a .exe extensão.

1. Start: o despejo é feito no início da repro.
Stop: o despejo é feito em 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 cadeia de caracteres para ProcmonAltitude (o valor padrão é 385200). Use fltmc instances para mostrar a altitude do driver de 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 interno).
3. Especifique um arquivo de configuração para Procmon (por exemplo, ProcmonConfiguration.pmc) localizado na pasta \config .
-PSR Iniciar o Gravador de Etapas de Problemas.
-Radar <PID[]|ProcessName[]|ServiceName[]> Colete as informações de diagnóstico de vazamento (rdrleakdiag.exe).

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

Ignore a lista separada por vírgulas de nomes de módulo SDP que estão pendurados em seu ambiente durante a execução do relatório SDP.
-SysMon Coletar logs do SysInternals System Monitor (SysMon) (sysmonConfig.xml na pasta de configuração 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>'
Iniciar a Depuração de Viagem No Tempo (TTD) (TTT/iDNA) com o modo padrão -Full . Insira os ProcessName(s) com a .exe extensão, um único item (PID/nome) ou uma lista de itens separados por vírgulas.

Observação:
Sistema operacional de nível inferior antes de Windows 10, a versão 1703 requer o pacoteTSS_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 (=default)
Ring = modo 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 do anel.
4. Use essa opção para adicionar opções adicionais para TTD (TTT/iDNA).
-Video Inicie a captura de vídeo (requer que o .NET 3.5 seja instalado).
-WFPdiag Colete rastreamentos com o netsh Wfp capture comando.
-WireShark Iniciar 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. Filtrar 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, default=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 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:524288.
-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. Ignorar 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, , NetworkCPUe Minifilter).
-Xperf <Profile>
1. -XperfMaxFileMB <Size>
2. -XperfTag <Pool Tag>
3. -XperfPIDs <PID>
4. -XperfOptions <Option string>
Iniciar Xperf. <Profile>é um dos GeneralSBSLboot||DiskRegistry||SBSLPoolNPP||SMB2|Pool|NetworkMemoryLeak||CPU|.

1. Especifique o tamanho máximo do log no 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 cadeias de caracteres de opção para Xperf.
-xray Inicie o raio x para diagnosticar um sistema para 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 dentro das opções TSS

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

Parâmetro Descrição
-AcceptEula Não pergunte no início; execute para aceitar a Isenção de Responsabilidade (útil para a -RemoteRun execução).
-AddDescription <description> Adicione uma breve descrição do problema de repro. 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 Use com -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* como '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 depois de interromper o rastreamento.
Mini: o mini log básico é coletado depois de interromper o rastreamento.
-Crash Disparar uma falha do sistema com NotMyFault na parada de repro ou depois de todos os eventos serem sinalizados se usados com -WaitEvent.

Cuidado:
Essa opção forçará um despejo de memória (o sistema será reiniciado) para que os arquivos abertos não sejam 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 um único citado '{GUID}' e/ou 'Provider-Name').
-DebugMode Execute com o modo de depuração para um desenvolvedor.
-VerboseMode Mostrar uma saída mais verbosa 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 comandos. O valor padrão para circular ETLMaxSizeMB é 1024 e o valor padrão para newfile ETLMaxSizeMB é 512.

-StartAutologger só dá -ETLOptions circular:<ETLMaxSize>:<ETLNumberToKeep>:<ETLFileMax>suporte a , mas ETLNumberToKeep não será executado com o esperado.

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 newfile é newfile:512:10.

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

Exemplo 3:
-StartAutologger -ETLOptions circular:4096:10:3
Autologger não obedece :<ETLNumberToKeep> e aceita apenas 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> Converter logs de eventos somente nos últimos dias N. O valor padrão é de 30 dias. Ele também se aplica ao relatório 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: é baixa em 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. Skip noPSR, noSDP, noVideo, noXray, , noZipe noBasicLog.
-Mode <Basic|Medium|Advanced|Full|Verbose|VerboseEx|Hang|Restart
|Swarm|Kube|GetFarmdata|Permission|traceMS>
Execute scripts no Basic, Medium, Advanced, Fullou Verbose(Ex) modo 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 do PsExec, no Console Serial do Azure ou com a remoção do PowerShell. Esse parâmetro inibirá o PSR, a gravação de vídeo, a inicialização do TssClock e a abertura 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 logon.
-WaitEvent Monitore o evento ou o gatilho de parada especificado; se for sinalizado, os rastreamentos serão interrompidos automaticamente.

Há uma grande variedade de opções para disparar uma parada automática. Execute .\TSS.ps1 -Find Monitoring para ver o uso.
-Update
1. -UpdMode<Online|Lite>
Atualize o pacote TSS. Ele pode ser usado junto 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. Mostrar mensagens de ajuda para monitoramento e recursos remotos.
4. Ajude com todos os parâmetros de configuração.
5. Você pode inserir qualquer palavra-chave e ela mostrará as informações de ajuda sobre esse palavra-chave.
-Status Mostre o status do rastreamento em execução, se houver.

Scripts e ferramentas auxiliares incluídos

Ferramenta e script auxiliar 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 falha 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, confira Testar 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 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 aberta do PowerShell elevada e inicie uma nova janela do PowerShell elevada.

  3. Permitir que scripts do PowerShell sejam executados em seu sistema com o próprio ExecutionPolicy.

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

Método 1

  1. Execute o seguinte cmdlet:

    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 maior 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 por MachinePolicy, execute os seguintes cmdlets em uma janela do PowerShell elevada:

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

Método 3 (alternativa)

Se os scripts forem bloqueados por UserPolicy, execute os seguintes cmdlets em uma janela do PowerShell elevada:

  1. Set-ItemProperty -Path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell -Name ExecutionPolicy -Value RemoteSigned
    
  2. 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 de domínio uma isenção temporária de GPO (Objeto Política de Grupo).

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

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

Perguntas frequentes (perguntas frequentes)

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

    A1: Não, mas uma configuração de registro é necessária para habilitar o registro em 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 coleção de dados para observar o problema dos logs.

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

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

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

    A3: o conjunto de ferramentas do 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 do NIC (Cartão de Interface de Rede). 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 do TSS. A coleta de dados inicia o registro em log, o que pode afetar o problema indiretamente e alterar a situação.

  • Q4: Por que o conjunto de ferramentas do TSS não está respondendo há muito tempo?

    A4: 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 o representante de suporte se você tiver esse problema.

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

    A5: todo o rastreamento TSS está configurado para ser executado com buffers de anel, para que você possa executar o conjunto de ferramentas por muito 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ê vir alto uso de disco depois de 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.

  • Q6: 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")

    A6: Em situações raras, você pode receber esse 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 exibir OS TERMOS DA LICENÇA DE SOFTWARE DA MICROSOFT.

Scripts e utilitários de diagnóstico da Microsoft

These license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.

  1. INSTALLATION AND USE RIGHTS. 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, totalmente paga para usar e reproduzir o script ou utilitário fornecido sob essa licença (o "Software"), apenas para fins comerciais internos do Cliente, para ajudar a Microsoft a solucionar problemas com um ou mais produtos Microsoft, desde que essa licença para o Software não inclua direitos a outras tecnologias da Microsoft (como produtos ou serviços). "Usar" significa copiar, instalar, executar, acessar, exibir, executar ou interagir com o Software.

    Você pode não sublicenciar o Software ou qualquer uso dele por meio de distribuição, acesso à rede ou de outra forma. A Microsoft reserva todos os outros direitos não concedidos expressamente aqui, seja por implicação, estoppel ou de outra forma. Você não pode reverter o engenheiro, descompilar ou desmontar o Software ou tentar derivar o código-fonte do Software, exceto e na medida necessária pelos termos de licenciamento de terceiros que regem o uso de determinados componentes código aberto que possam 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 aqui em seguida: (i) de uma forma proibida por lei, regulamentação, ordem governamental ou decreto; (ii) para violar os direitos de outras pessoas; (iii) para tentar obter acesso não autorizado a 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 pessoa; (vi) em qualquer aplicativo ou situação em que o uso do Software possa levar à morte ou lesão corporal grave de qualquer pessoa, ou a danos físicos ou ambientais; ou (vii) para ajudar, incentivar ou permitir que qualquer pessoa faça qualquer um dos acima.

  2. DADOS. O cliente possui todos os direitos aos dados que pode optar por compartilhar com a Microsoft usando o Software. Você pode saber mais sobre a coleta e o uso de dados na documentação de ajuda e na instrução de privacidade em https://aka.ms/privacy. O uso do Software funciona como seu consentimento para essas práticas.

  3. FEEDBACK. Se você fornecer comentários sobre o Software para a Microsoft, concederá à Microsoft, sem cobrança, o direito de usar, compartilhar e comercializar seus comentários de qualquer maneira e para qualquer finalidade. Você não fornecerá nenhum comentário que esteja sujeito a uma licença que exigiria que a Microsoft licenciasse seu software ou documentação para terceiros devido à Microsoft, incluindo seus comentários nesse software ou documentação.

  4. EXPORT RESTRICTIONS. O cliente deve cumprir todas as leis e regulamentos de exportação nacionais e internacionais que se aplicam ao Software, que incluem restrições a destinos, usuários finais e uso final. For further information on export restrictions, visit https://aka.ms/exporting.

  5. REPRESENTAÇÕES E GARANTIAS. O cliente cumprirá todas as leis aplicáveis neste contrato, inclusive na entrega e no uso de todos os dados. O cliente ou um designee que concorda com esses termos em nome de uma entidade representa e garante que ele (i) tenha todo o poder e autoridade para entrar e executar suas obrigações sob este contrato, (ii) tem total poder e autoridade para associar 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 se submira a propriedade intelectual da outra parte para quaisquer outros termos de licença ou exige que a outra parte distribua o código-fonte para qualquer uma de suas tecnologias.

  6. ISENÇÃO DE ISENÇÃO DE RESPONSABILIDADE. O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSO OU IMPLÍCITO, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, APTIDÃO PARA UM PROPÓSITO ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUM CASO, A MICROSOFT OU SEUS LICENCIADORES SERÃO RESPONSÁVEIS POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQÜENTES (INCLUINDO, MAS NÃO SE LIMITANDO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO NOS NEGÓCIOS) NO ENTANTO, CAUSOU E EM QUALQUER TEORIA DA RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE ESTRITA OU DELITO (INCLUINDO NEGLIGÊNCIA OU DE OUTRA FORMA) DECORRENTE DE QUALQUER FORMA FORA DO USO DO SOFTWARE, MESMO SE AVISADO DA POSSIBILIDADE DE TAL DANO.

  7. LIMITAÇÃO E EXCLUSÃO DE DANOS. SE VOCÊ TIVER ALGUMA BASE PARA RECUPERAR DANOS APESAR DA ISENÇÃO DE RESPONSABILIDADE ANTERIOR, PODERÁ SE RECUPERAR DA MICROSOFT E DE SEUS FORNECEDORES APENAS DANOS DIRETOS ATÉ OS EUA. 00. VOCÊ NÃO PODE RECUPERAR NENHUM OUTRO DANO, INCLUINDO CONSEQUENTE, LUCROS PERDIDOS, DANOS ESPECIAIS, INDIRETOS OU INCIDENTAIS. Essa limitação se aplica a (i) qualquer coisa relacionada ao Software, serviços, conteúdo (incluindo código) em sites de terceiros ou aplicativos de terceiros; e (ii) declarações por violação de contrato, garantia ou condição; responsabilidade estrita, negligência ou outro delito; ou qualquer outra declaração; em cada caso, na medida permitida pela lei aplicável. It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages.

  8. BINDING ARBITRATION AND CLASS ACTION WAIVER. Esta seção se aplica se você mora em (ou, se uma empresa, seu principal local de negócios está em) o Estados Unidos. If you and Microsoft have a dispute, you and Microsoft agree to try for 60 days to resolve it informally. Se você e a Microsoft não puderem, você e a Microsoft concordarão em associar a arbitragem individual à Associação Americana de Arbitragem sob a Lei Federal de Arbitragem ("FAA"), e não processar no tribunal na frente de um juiz ou júri. Instead, a neutral arbitrator will decide. Class action lawsuits, class-wide arbitrations, private attorney-general actions, and any other proceeding where someone acts in a representative capacity are not allowed; nor is combining individual proceedings without the consent of all parties. The complete Arbitration Agreement contains more terms and is at https://aka.ms/arb-agreement-4. You and Microsoft agree to these terms.

  9. LEI E LOCAL. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court (excluding arbitration). If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court (excluding arbitration).

  10. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software.