Kā skatīt, meklēt un notīrīt komandu vēsturi PowerShell un CMD

Pēdējā atjaunošana: 14/08/2025
Autors: Isaac
  • PowerShell Apvieno sesijas vēsturi un PSReadLine, lai nodrošinātu noturību un uzlabotu meklēšanu vairākās sesijās.
  • Pārvaldiet PowerShell, izmantojot Get/Invoke/Add/Clear-History, īsinājumtaustiņus (F7, F8, F9, Ctrl+R/S) un PSReadLine opcijas.
  • CMD piedāvā F7 un doskey, lai skatītu, eksportētu un pielāgotu vēstures lielumu, lai gan tas ir tikai katrai sesijai.
  • Auditēšana ar notikumiem 4688/4689 ļauj reģistrēt procesus un komandrindas sistēmas līmenī.

Komandu vēsture operētājsistēmā Windows

Pārbaudīt konsolē ierakstīto ir tīrs zelts. kad mēs dokumentējam, atkārtojam uzdevumus vai labojam kļūdas. Iekš Windows CMD un PowerShell pastāv līdzās, un katrs no tiem apstrādā vēsturi komandas citādā veidā, ar īsinājumtaustiņiem, meklēšanas, eksportēšanas un dzēšanas opcijām, kuras ir vērts apgūt.

Šajā praktiskajā un ļoti pilnīgajā rokasgrāmatā Jūs uzzināsiet, kā skatīt, meklēt, eksportēt, importēt un dzēst vēsturi pakalpojumos PowerShell un CMD, kā darbojas PSReadLine pastāvīgā vēsture, ko piedāvā Clear-History slēdži, kādi īsinājumtaustiņi paātrina darbu un kā auditēt procesus ar notikumu 4688 un 4689, ja nepieciešams kriminālistikas žurnāls.

PowerShell pret CMD: kā darbojas to vēsture

PowerShell un CMD nespēlē vienā līgā Runājot par vēsturi, CMD saglabā komandas tikai aktīvās sesijas laikā, savukārt PowerShell apvieno iebūvēto sesijas vēsturi ar pastāvīgu vēsturi, ko uztur PSReadLine modulis.

PowerShell iebūvētā sesijas vēsture Tas ir nepastāvīgs un tiek notīrīts, aizverot konsoli; tam tiek vaicāts ar Get-History un pārvaldīts ar cmdlet, piemēram, Invoke-History, Add-History vai Clear-History. Pēc noklusējuma mainīgais $MaximumHistoryCount ierobežo ierakstu skaitu un parasti ir iestatīts uz 4096.

PSReadLine saglabā vēstures failu katram lietotājam un resursdatoramun uztur vēsturi starp sesijām. Šis fails, kas ir pieejams kopš PowerShell 5.0 versijas, ļauj pārvietoties ar augšupvērsto un lejupvērsto bultiņu palīdzību un veikt pakāpenisku meklēšanu, izmantojot īsinājumtaustiņus.

Skatīšanas un meklēšanas vēsture pakalpojumā PowerShell

Get-History ir vārteja uz sesijas vēsturi. Parāda ID, komandrindas nosaukumu un izpildes secību; tā aizstājvārds ir “h”. Tomēr tas atspoguļo tikai notikumus pašreizējā sesijā, nevis pastāvīgo PSReadLine failu.

Get-History

L tastatūras īsceļi konsolē ietaupiet laikuAugšupvērsta bultiņa iepriekšējām komandām, lejupvērsta bultiņa nākamajām, F7, lai skatītu sarakstu logā, ESC, lai aizvērtu, F8, lai meklētu pēc prefiksa (ierakstiet un nospiediet F8), un F9, lai izpildītu pēc ID.

  Pilnīgs risinājums: D3dx9_43.dll kļūda joprojām pastāv operētājsistēmā Windows 10 8.1 un 7.

Reversā meklēšana, ļoti noderīgaCtrl+R meklē vēsturē atpakaļ, ierakstot daļu komandas, un Ctrl+S meklē uz priekšu. PSReadLine arī ļauj meklēt ar '#string' un pārslēgties starp atbilstībām, nospiežot Tab taustiņu.

Vēstures secība var šķist dīvainaPowerShell pievieno komandas, kad tās ir pabeigtas, nevis tad, kad tās ierakstāt, un ligzdotās uzvednēs dažas netiek reģistrētas, kamēr neatgriežaties iepriekšējā līmenī, kas var radīt apjukumu ilgstošu darbību laikā.

Pastāvīga vēsture ar PSReadLine

PSReadLine uztur pastāvīgu ierakstu teksta failā katram lietotājam un resursdatoram, nodrošinot, ka iepriekšējās komandas var atgūt pēc PowerShell aizvēršanas un atkārtotas atvēršanas.

%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

Tās darbību var vaicāt un modificēt, izmantojot Get-PSReadLineOption un Set-PSReadLineOption.Tas ļauj konfigurēt tādus aspektus kā dublikātus, reģistrjutību, ceļu un saglabāšanas stilu, kā arī citas preferences.

Get-PSReadLineOption | Select HistoryNoDuplicates, MaximumHistoryCount, HistorySearchCursorMovesToEnd, HistorySearchCaseSensitive, HistorySavePath, HistorySaveStyle

Galvenās iespējas, kas jāapsver:

  • HistoryNoDuplicates: izvairās no dublētiem ierakstiem, dublikātu samazināšana
  • MaximumHistoryCount: kontrolē maksimālo saglabāto komandu skaitu
  • HistorySearchCursorMovesToEnd: Pielāgo kursora pozīciju meklēšanā
  • HistorySearchCaseSensitive: veic reģistrjutīgu meklēšanu
  • HistorySavePath: definē ceļu uz vēstures failu
  • HistorySaveStyle: Nosaka, kad tiek saglabāta vēsture, opcijas ietver SaveIncrementally, SaveAtExit un SaveNothing.

To var pielāgot, izmantojot Set-PSReadLineOptionPiemēram, lai saglabātu tikai izejot un samazinātu ierakstīšanas apjomu diskā:

Set-PSReadLineOption -HistorySaveStyle SaveAtExit

Kontrolējiet arī vēstures lielumu ar $MaximumHistoryCountLai ierobežotu to līdz 100 komandām, pielāgojiet mainīgo un restartējiet PowerShell; lai to padarītu pastāvīgu, pievienojiet to savam PowerShell profilam.

$MaximumHistoryCount = 100

Notīrīt, filtrēt un pārvaldīt vēsturi pakalpojumā PowerShell

Clear-History notīra aktīvās sesijas vēsturi., neietekmējot pastāvīgo PSReadLine failu. Izmanto, lai sāktu no jauna vai dzēstu konkrētus ierakstus pēc ID, modeļa, daudzuma vai vecuma.

Galvenā sintakse ar parametru kopām:

Clear-History  <int[]>]  <int>]    
Clear-History  <int>] >]    

Izmantotie parametri-Id, lai dzēstu pēc identifikatora, -CommandLine, lai dzēstu precīziem modeļiem vai aizstājējzīmēm, -Count, lai dzēstu ierakstu skaitu, un -Newest, lai mainītu secību un dzēstu jaunākos ierakstus. Tas atbalsta arī apstiprināšanas un simulācijas režīmu ar -WhatIf.

  Atšķirības starp Windows OEM un mazumtirdzniecības versiju: ​​pilnīgs izvēles ceļvedis

Piemērs: dzēst visu vēsturi aktīvajā sesijā:

Get-History
Clear-History
Get-History

Piemērs: dzēst pēdējos 5 ierakstus ar -Count un -Newest:

Clear-History -Count 5 -Newest
Get-History

Piemērs: Noņemt ierakstus, kas atbilst modeļiem ar -CommandLine:

Clear-History -CommandLine '*Help*', '*Syntax'
Get-History

Piemērs: dzēšana pēc konkrētiem ID:

Clear-History -Id 3, 5
Get-History

Piemērs: -Id un -Count apvienošana Lai secīgi dzēstu no konkrēta ID:

Clear-History -Id 7 -Count 5
Get-History

Atcerieties: -Count ar -Id noņem no iekļautā Id, ar -CommandLine tas noņem atbilstības secībā, un pēc noklusējuma tas noņem vecākos ierakstus, ja vien neizmantojat -Newest.

Palaist un ielādēt komandas no vēstures programmā PowerShell

Invoke-History izpilda vēstures ierakstu bez nepieciešamības to pārrakstīt. Tā aizstājvārds ir 'r'. Bez parametriem tas atkārto pēdējo komandu; ar ID tas izpilda tieši šo komandu:

Invoke-History          # Repetir la última entrada
Invoke-History -Id 12   # Ejecutar la entrada 12

Varat arī eksportēt un importēt vēsturi. Lai dokumentētu vai kopīgotu procedūras. Eksportējiet uz CSV vai Clixml un importējiet atkārtoti, pievienojot to ar Add-History:

Get-History | Export-Csv -Path .\historial.csv -NoTypeInformation
Get-History | Export-Clixml -Path .\historial.xml

$h = Import-Clixml .\historial.xml
$h | Add-History
PowerShell
Saistītais raksts:
Kā apgūt uzticamības vēsturi programmā PowerShell: pārvaldība, audits un analīze

Skatīt un pārvaldīt vēsturi CMD

CMD aktīvās sesijas laikā saglabā tikai vienu vēsturiVarat pārvietoties ar augšupvērsto un lejupvērsto bultiņu palīdzību, izmantot PgUp un PgDn navigācijai un nospiest F7, lai atvērtu logu ar visām saglabātajām komandām; ESC aizver šo logu.

Citi noderīgi īsinājumtaustiņi komandās (CMD)F9, lai vaicātu komandas numuru parādītajā sarakstā, un F8, lai meklētu atbilstības, kas sākas ar to, ko līdz šim esat ierakstījis rindā.

Doskey paplašina savas iespējas: ļauj skatīt pilnu vēsturi, izmantojot komandu 'doskey /history', vai saglabāt to pāradresētā failā, piemēram, 'doskey /history > C:\cmd_history.txt'. Varat arī pielāgot atmiņas lielumu, izmantojot /listsize=100.

Lai notīrītu vēsturi atmiņā, izmantojiet īsinājumtaustiņu kombināciju Alt+F7. Neaizmirstiet, ka, aizverot CMD, jūsu vēsture tiek zaudēta, ja vien iepriekš to neesat eksportējis.

Lai IMD gadījumā būtu spēcīgāka noturīga vēsture, varat izmantot tādus rīkus kā Clink, kas ievērojami uzlabo vēstures pārvaldību un meklēšanu, vai Windows termināls, kas integrē vairākas konsoles un atbalstu PowerShell un WSL2.

  Risinājumi, kad Ctrl + Alt + Del nedarbojas operētājsistēmā Windows

Komandu un procesu audits, izmantojot notikumu skatītāju

Visaptverošai un centralizētai kontroleiProcesa izveidi var reģistrēt, izmantojot uzlaboto auditēšanu. Notikums 4688 reģistrē katru sākto procesu ar lietotāja, konteksta un komandrindas informāciju; notikums 4689 norāda tā pārtraukšanu.

Aktivizēt “Audita procesa izveidi” lokālās drošības politikas sadaļā “Papildu audits” iestatiet “Veiksmīgi” un/vai “Neveiksmīgi” pēc savas izvēles.

Pēc tam pielāgojiet politiku failā gpedit.msc sadaļā Datora konfigurācija > Windows iestatījumi > Drošības iestatījumi > Papildu audita politikas konfigurācija > Sistēmas audita politikas > Detalizēta izsekošana un iespējojiet to.

Lai skatītu šos notikumus, atveriet notikumu skatītāju sistēmā Windows, dodieties uz Windows Baļķi > Drošība un filtrējiet pēc ID 4688. Lai veiktu padziļinātāku analīzi, pārskatīšanu var atvieglot tādi rīki kā Logbinder Supercharger.

Noderīgas cmdlet un vēstures piezīmes programmā PowerShell

Galvenās vēstures cmdletGet-History (aizstājvārds 'h') skatīšanai, Invoke-History (aizstājvārds 'r') izpildei, Add-History komandu pievienošanai un Clear-History (aizstājvārds 'clhy') dzēšanai. PowerShell un PSReadLine vēsture pastāv līdzās, bet Clear-History ietekmē tikai aktīvās sesijas vēsturi.

Noslēguma piezīmes par vēstures notīrīšanu: nepieņem caurvades ievadi, neatgriež izvadi, atbalsta aizstājējzīmes -CommandLine un atbalsta CommonParameters, piemēram, -Verbose un -ErrorAction papildu kontrolei.

Čaulas komandas: lietošanai Windows 11 failu pārlūka adreses joslā
Saistītais raksts:
Apvalka un CMD komandas adreses joslai operētājsistēmā Windows 11

Vēstures apgūšana PowerShell un CMD valodās atvieglo ātru komandu izgūšanu, procedūru atkļūdošanu, dokumentēšanu un auditēšanu. PSReadLine nodrošina noturību un meklēšanas jaudu, savukārt Clear-History kontrolē, kuras komandas paliek sesijā, un notikumi 4688 un 4689 paaugstina reģistrēšanu drošības un atbilstības līmenī.