Czy system Windows (lub PowerShell) rejestruje wszystko, co robię w wierszu polecenia?

2

Czy jest możliwe, aby system Windows rejestrował każde wpisane polecenie i dane wyjściowe widoczne w konsoli? Czasami stwierdzam, że chcę zobaczyć, co zrobiłem 2 godziny temu, aby mieć pewność, że poprawnie wpisałem określony parametr.

Lanissum
źródło
Czy to tylko ja, czy ten komentarz jest prawie zawsze na szczycie SU?
Jon
Wydaje się być dość popularny, chociaż nie wyobrażam sobie, że jest tak popularny.
Lanissum,

Odpowiedzi:

5

Tak. Możesz użyć Start-Transcripti Stop-Transcript.

Dałeś mi pomysł, aby umieścić to w moim profilu PowerShell, aby uruchamiał się automatycznie. Oto co wymyśliłem:

$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."
} 
chrzanić
źródło
Dziękuję, do diabła, to by wystarczyło dla moich celów i jest łatwe do osiągnięcia.
Lanissum,
0

Uwaga: Przygotowałem tę odpowiedź, a potem zdałem sobie sprawę, że prawdopodobnie pytasz konkretnie o polecenia wykonywane w programie PowerShell. Zamiast usuwać mój wysiłek, zamierzam pisać, na wypadek, gdyby pomogło to komuś, kto chce zrobić to samo w DOS-ie. Trochę czytając, wygląda na to, że @dangph prawdopodobnie dał poprawną odpowiedź dla PowerShell.


Aby zalogować polecenia do pliku:

doskey /history >> commands.log aby dołączyć historię poleceń do dziennika.

Ta strona wyjaśnia szczegółowo, ale w skrócie możesz potokować swoje polecenia do wybranego pliku przed zamknięciem emulatora DOS. Nie musisz tego robić, dopóki nie skończysz (nie jestem pewien, czy bufor wchodzi w grę z dużą ilością poleceń)

Aby zapisać dane wyjściowe polecenia w pliku:

Prawdopodobnie chciałbyś czegoś takiego ...

dir >> a.txt | type a.txt. Jak wspomniano w tej odpowiedzi, piszesz dane wyjściowe polecenia do pliku, a następnie drukujesz zawartość pliku, ale myślę, że pasuje do rachunku i byłby automatyczny, gdybyś używał go z każdym poleceniem. Jeśli trochę poprawisz, myślę, że prawdopodobnie mógłbyś zmodyfikować, aby również napisać polecenie, a także dane wyjściowe .

Być może ktoś może ulepszyć lub zasugerować bardziej przyjazne dla użytkownika rozwiązanie do wykonania obu czynności (dołączenie polecenia i wyników) jednocześnie, gdy wykonywane są instrukcje.

Dallas
źródło
0

Co jest nie tak z (History -count 1000). CommandLine jako natywne rozwiązanie PowerShell.

Aby zalogować wszystko w wierszu polecenia (ze względów bezpieczeństwa) użyłbym

HKEY: HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit\
RegEntry: ProcessCreationIncludeCmdLine_Enabled 
Value: 1 (DWORD)
Djarid
źródło