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 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.
Odpowiedzi:
Tak. Możesz użyć Start-Transcript
i 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."
}
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.
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)