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.


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

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.


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)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.