O PowerShell no Windows 10 oferece a capacidade de rastrear todos os comandos executados durante uma sessão ativa. No entanto, muitos usuários necessitam de um registro histórico que transcenda sessões individuais. Se a sua necessidade for consultar um histórico de comandos do PowerShell que vá além da sessão atual, existem soluções via script e arquivos de log que podem ser muito úteis.
Histórico de Comandos da Sessão Atual
Se estiver utilizando o PowerShell 5, você pode facilmente acessar o histórico de comandos da sua sessão em execução com o seguinte comando:
Get-History
Por padrão, o PowerShell retém um registro dos últimos 50 comandos, mas esse limite é ajustável. Para aumentar a capacidade de armazenamento do histórico, abra o PowerShell e clique com o botão direito na barra de título da janela. Selecione “Propriedades” no menu de contexto e, em seguida, navegue até a aba “Opções”. Lá, você encontrará a seção “Histórico de Comandos” e poderá modificar o valor padrão para um número maior.
Registro do Histórico do PowerShell
Para acessar um registro de histórico mais abrangente, é necessário instalar primeiro o módulo PSReadLine usando o seguinte comando:
Install-Module PSReadLine
Em seguida, execute este comando para obter o caminho do arquivo de log. Este arquivo contém um histórico completo de todos os comandos executados no PowerShell:
(Get-PSReadlineOption).HistorySavePath
Histórico de Comandos do PowerShell entre Sessões
Este método requer um pouco mais de configuração, mas é altamente eficaz. A solução foi originalmente proposta pela Intel. Comece verificando a existência do arquivo “Microsoft.PowerShell_profile.ps1” na seguinte localização:
C:Users<username>DocumentsWindowsPowerShell
Se o arquivo não existir, abra o PowerShell e execute este comando, que abrirá o arquivo de perfil no Bloco de Notas. Caso o arquivo não exista, o PowerShell avisará e perguntará se deseja criá-lo. Confirme a criação.
notepad $Profile
Feche o arquivo do Bloco de Notas. No PowerShell, execute este comando para confirmar que você está usando o PowerShell 5:
$PSVersionTable.PSVersion
Em seguida, configure a política de execução para “RemoteSigned” com o seguinte comando:
set-executionpolicy remotesigned
Agora, instale os módulos PsUrl e PSReadline. Você pode usar estes comandos para instalá-los. Caso ocorra um erro, instale-os manualmente seguindo as instruções nas páginas vinculadas ou adicione o repositório como confiável e tente o comando novamente.
install-module PsUrl
install-module PSReadline
Com os módulos instalados, abra o arquivo:
C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
Copie e cole o seguinte conteúdo dentro deste arquivo e salve:
$HistoryFilePath = Join-Path ([Environment]::GetFolderPath('UserProfile')) .ps_history Register-EngineEvent PowerShell.Exiting -Action { Get-History | Export-Clixml $HistoryFilePath } | out-null if (Test-path $HistoryFilePath) { Import-Clixml $HistoryFilePath | Add-History } # if you don't already have this configured... Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
Para visualizar o histórico de comandos, você utilizará o comando Get-History, mas uma etapa é crucial para garantir que seu histórico seja salvo corretamente: você NÃO pode fechar o PowerShell clicando no botão de fechar. Em vez disso, sempre use o comando ‘exit’ para encerrar a sessão.
Utilize as teclas de seta para cima e para baixo para navegar pelos comandos anteriores.