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


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


2


origem


É só eu ou esse comentário é quase sempre no topo da SU? - Frank
Parece ser bastante popular, embora eu não possa imaginar que seja tão popular. - Lanissum


Respostas:


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. Isto é o que eu tenho:

$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."
} 

5



Obrigado dangph, isso seria suficiente para meus propósitos e é simples de realizar. - Lanissum


Nota: Eu preparei esta resposta e, em seguida, 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 resposta correta para o PowerShell.


Conectar comandos para um arquivo:

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

este 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)

Conectar saída de comando para um arquivo:

Você provavelmente iria querer alguma coisa gostar...

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 também escrever o comando, bem como a saída.

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


0





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

Para registrar tudo na linha de comando (para fins de segurança) eu usaria

HKEY: HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit\
RegEntry: ProcessCreationIncludeCmdLine_Enabled 
Value: 1 (DWORD)

0