Como obter o histórico de comandos do PowerShell no Windows 10

O PowerShell no Windows 10 pode fornecer um histórico de todos os comandos executados na sessão atual, no entanto, para muitos usuários, isso não é suficiente. Eles precisam de um histórico de comandos executados nas sessões. Se você precisar obter o histórico de comandos do PowerShell e o histórico da sessão atual sozinho não funcionar, há um script e um arquivo de log que podem ajudá-lo.

Sessão atual do histórico de comandos

Se estiver executando o PowerShell 5, você poderá obter o histórico de comandos da sessão atual executando o seguinte comando;

Get-History

Por padrão, o PowerShell pode salvar até 50 comandos, mas você pode alterá-lo para economizar mais. Abra o PowerShell e clique com o botão direito do mouse na barra de título. No menu de contexto, vá para Propriedades. Na janela Propriedades, vá para a guia Opções. Você verá uma seção de histórico de comandos onde o padrão é definido como 50. Altere-o para um valor mais alto.

  Monitore o tempo gasto em aplicativos e sites [Windows]

Log de histórico do PowerShell

Para visualizar o log do histórico, você precisa primeiro instalar o módulo PSReadLine com o seguinte comando;

Install-Module PSReadLine

Em seguida, execute o seguinte comando e ele retornará um local de arquivo. O arquivo neste local fornecerá um histórico completo de todos os comandos executados no PowerShell.

(Get-PSReadlineOption).HistorySavePath

Histórico de comandos do PowerShell entre sessões

Este é um processo um pouco longo, mas vale a pena. Esta solução vem de Intel. Primeiro, abra o seguinte local e verifique se há um arquivo chamado Microsoft.PowerShell_profile.ps1 neste local.

C:Users<username>DocumentsWindowsPowerShell

Se não houver nenhum arquivo, abra o PowerShell e execute o seguinte comando. Ele abrirá seu arquivo de perfil no bloco de notas, mas esse arquivo não existe e o PowerShell informará isso e perguntará se você deseja criá-lo. Permita que ele crie o arquivo.

notepad $Profile

Feche o arquivo do bloco de notas que é aberto. No PowerShell, execute este comando para garantir que você esteja executando o PowerShell 5.

$PSVersionTable.PSVersion

Em seguida, defina sua política de execução como RemoteSigned com o comando a seguir.

set-executionpolicy remotesigned

Em seguida, você precisa instalar o PsUrl e PSReadline módulos. Você pode instalá-los com o seguinte comando, porém, se receber um erro, basta instalá-los manualmente pelo processo descrito nas páginas vinculadas ou tente adicionar o repositório como um repositório confiável e, em seguida, execute o comando novamente.

install-module PsUrl
install-module PSReadline

Agora que esses módulos foram instalados, abra este arquivo;

C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

Cole o seguinte dentro deste arquivo e salve-o.

$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 no PowerShell, você precisa executar o comando Get-History, mas há uma etapa muito importante para garantir que seu histórico seja salvo. Você NÃO PODE fechar o PowerShell clicando no botão Fechar. Em vez disso, você deve sempre fechá-lo com o comando exit.

  5 aplicativos para gravar screencasts GIF no Windows 10

Você pode usar as teclas de seta para cima e para baixo para percorrer os comandos anteriores.