# Handle - Sysinternals | Microsoft Learn

Aqui está um resumo conciso do artigo sobre o Handle v5.0 (por Mark Russinovich):

### O que é

O Handle é um utilitário que exibe identificadores (handles) abertos por processos no sistema Windows. Permite descobrir quais programas têm arquivos ou diretórios abertos e ver tipos de objeto e nomes associados aos identificadores. Há também uma versão GUI equivalente chamada Process Explorer.

### Instalação e execução

* Baixe: <https://download.sysinternals.com/files/Handle.zip>
* Execute digitando: `handle`
* É necessário privilégio administrativo para usar o Handle.

{% stepper %}
{% step %}

### Executar uma busca simples

Digite `handle` sem parâmetros para listar todos os identificadores relacionados a arquivos abertos no sistema e os nomes dos arquivos.
{% endstep %}

{% step %}

### Buscar por nome

Passe um fragmento de nome para filtrar objetos (correspondência sem distinção de maiúsculas/minúsculas), por exemplo: `handle windows\system` Isso mostra processos/handles que contenham esse fragmento no caminho.
{% endstep %}

{% step %}

### Restringir por processo

Use `-p <processo|pid>` para limitar a verificação a processos cujo nome comece com o valor fornecido: Exemplo: `handle -p exp` (inclui Explorer)
{% endstep %}

{% step %}

### Fechar um handle

Use `-c <handle>` junto com o PID do processo para fechar um identificador (handle é em hexadecimal). Use `-y` para não pedir confirmação.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
Fechar identificadores pode causar instabilidade no aplicativo ou no sistema. Use a opção de fechamento com cautela.
{% endhint %}

### Principais parâmetros (resumo)

* -a : Mostrar todos os tipos de identificadores (não só arquivos).
* -l : Mostrar apenas identificadores de seção apoiados em arquivo de página.
* -c : Fechar o identificador especificado (hex) — requer PID.
* -g : Imprimir o acesso concedido.
* -y : Não confirmar fechamento de identificador.
* -s : Imprimir contagem de cada tipo de identificador aberto.
* -u : Mostrar o nome de usuário proprietário ao pesquisar identificadores.
* -v : Saída CSV com delimitador de vírgula.
* -vt : Saída CSV com delimitador de tabulação.
* -p | : Restringe verificação a processos cujo nome comece com o valor.
* name : Fragmento de nome para pesquisar objetos com esse nome (case-insensitive).

Exemplo de sintaxe:\
`handle [[-a [-l]] [-v|-vt] [-u] | [-c <handle> [-y]] | [-s]] [-p <process>|<pid>] [name]`

### Saída

* Modo normal (sem pesquisa): a saída é dividida por processo; cada seção mostra nome do processo, PID, valores de handle (hex), tipo de objeto e nome do objeto (se houver).
* Modo de pesquisa (com fragmento de nome): os nomes dos processos e PIDs aparecem à esquerda e os nomes dos objetos correspondentes à direita.

### Mais informações

Para aprofundar, o artigo recomenda consultar o "Windows Internals, 4ª Edição" ou usar a ferramenta WinObj para navegar no namespace do Object Manager.

Download: <https://download.sysinternals.com/files/Handle.zip>

Última atualização do artigo: 10/08/2023.
