O Windows (ou o PowerShell) registra tudo que eu faço em uma linha de comando?

2

É possível fazer com que o Windows registre todos os comandos que eu digito & a saída que vejo no console? Às vezes acho que quero ver o que fiz há 2 horas apenas para ter certeza de que digitei um certo parâmetro corretamente.

    
por Lanissum 06.02.2014 / 01:08

3 respostas

5

Sim. Você pode usar Start-Transcript e Stop-Transcript .

Você me deu a ideia de colocar isso no meu perfil do PowerShell para que ele seja iniciado automaticamente. Foi isso que eu criei:

$transcriptDir = Join-Path ([Environment]::GetFolderPath("MyDocuments")) PowerShellTranscripts
if (-not (Test-Path $transcriptDir))
{
    New-Item -Type Directory $transcriptDir
}
$dateStamp = Get-Date -Format ((Get-culture).DateTimeFormat.SortableDateTimePattern -replace ':','.')
try 
{
    Start-Transcript "$transcriptDir\Transcript.$dateStamp.txt"
}
catch [System.Management.Automation.PSNotSupportedException]
{
    # ISE doesn't allow transcripts.
    Write-Host "No transcript. Not supported in this host."
} 
    
por 06.02.2014 / 02:13
0

Observação: preparei essa resposta e percebi que você provavelmente está perguntando especificamente sobre os comandos executados no PowerShell. Em vez de apagar meu esforço, vou postar no caso de ajudar alguém a fazer a mesma coisa no DOS. Fazendo um pouco de leitura, parece que o @dangph provavelmente deu a resposta correta para o PowerShell.

Para registrar comandos em um arquivo:

doskey /history >> commands.log para anexar seu histórico de comandos a um log.

Esta página explica em detalhes, mas em poucas palavras você pode canalizar seus comandos para um arquivo de escolha antes de fechar seu emulador de DOS. Você não teria que fazer isso até depois de terminar (não tenho certeza se o buffer entra em ação com grande volume de comandos)

Para registrar a saída do comando em um arquivo:

Você provavelmente desejaria algo como ...

dir >> a.txt | type a.txt . Como mencionado nessa resposta, você está escrevendo a saída de comando em um arquivo e, em seguida, imprimindo o conteúdo do arquivo, mas acho que ele se ajusta à conta e seria automático se você o usasse com todos os comandos. Se você ajustar um pouco, eu acho que você provavelmente poderia modificar para escrever o comando , bem como a saída .

Talvez alguém possa melhorar ou sugerir uma solução mais amigável para fazer as duas coisas (anexar comando e resultados) de uma só vez, conforme as instruções são executadas.

    
por 06.02.2014 / 04:28
0

O que está errado com (History -count 1000) .CommandLine como uma solução nativa do powershell.

Para registrar tudo na linha de comando (por motivos de segurança) eu usaria

HKEY: HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit\
RegEntry: ProcessCreationIncludeCmdLine_Enabled 
Value: 1 (DWORD)
    
por 21.09.2016 / 10:09