Windows 10'da PowerShell Komut Geçmişi Nasıl Gidilir?
Windows 10'daki PowerShell, geçerli oturumda yürüttüğünüz her komutun geçmişini size verebilir ancak birçok kullanıcı için bu yeterli değildir. Oturumlar arasında yürütülen komutların geçmişine ihtiyaçları vardır. PowerShell komut geçmişini almanız gerekiyorsa ve geçerli oturumun geçmişi tek başına işe yaramazsa, size yardımcı olabilecek bir komut dosyası ve bir günlük dosyası vardır.
Komut Geçmişi Mevcut Oturum
PowerShell 5 çalıştırıyorsanız aşağıdaki komutu çalıştırarak mevcut oturumun komut geçmişini alabilirsiniz;
Get-HistoryVarsayılan olarak PowerShell 50'ye kadar komut kaydedebilir ancak daha fazlasını kaydetmek için bunu değiştirebilirsiniz. PowerShell'i açın ve başlık çubuğuna sağ tıklayın. Bağlam menüsünden Özellikler'e gidin. Özellikler penceresinde Seçenekler sekmesine gidin. Varsayılanın 50 olarak ayarlandığı bir Komut Geçmişi bölümü göreceksiniz. Bunu daha yüksek bir değerle değiştirin.
PowerShell Geçmiş Günlüğü
Geçmiş logunu görüntülemek için öncelikle PSReadLine modülünü aşağıdaki komutla kurmanız gerekmektedir;
Install-Module PSReadLine
Daha sonra aşağıdaki komutu çalıştırın; bir dosya konumu döndürecektir. Bu konumdaki dosya size PowerShell'de çalıştırdığınız her komutun tam geçmişini verecektir.
(Get-PSReadlineOption).HistorySavePathOturumlar Arası PowerShell Komut Geçmişi
Bu biraz uzun bir süreç ama buna değer. Bu çözüm Intel'den geliyor. Öncelikle aşağıdaki konumu açın ve bu konumda Microsoft.PowerShell_profile.ps1 adında bir dosya olup olmadığını kontrol edin.
C:\Users\<username>\Documents\WindowsPowerShellEğer orada dosya yoksa PowerShell’i açın ve aşağıdaki komutu çalıştırın. Profil dosyanızı Not Defteri'nde açacaktır ancak bu dosya mevcut değildir ve PowerShell size bu kadarını anlatacak ve onu oluşturmak isteyip istemediğinizi soracaktır. Dosyayı oluşturmasına izin verin.
notepad $ProfileAçılan not defteri dosyasını kapatın. PowerShell'de, PowerShell 5'i çalıştırdığınızdan emin olmak için bu komutu çalıştırın.
$PSVersionTable.PSVersionDaha sonra aşağıdaki komutla yürütme politikanızı RemoteSigned olarak ayarlayın.
set-executionpolicy remotesignedDaha sonra PsUrl ve PSReadline modüllerini yüklemeniz gerekir. Bunları aşağıdaki komutla yükleyebilirsiniz, ancak bir hata alırsanız, bağlantılı sayfalarda belirtilen işlemi kullanarak bunları manuel olarak yükleyin veya depoyu güvenilir bir depo olarak eklemeyi ve ardından komutu yeniden çalıştırmayı deneyin.
install-module PsUrlinstall-module PSReadlineArtık bu modüller kurulduğuna göre bu dosyayı açın;
C:\Users\<username>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1Bu dosyanın içine aşağıdakini yapıştırın ve kaydedin.
$HistoryFilePath = Join-Path ([Environment]::GetFolderPath('UserProfile')) .ps_history
Register-EngineEvent PowerShell.Exiting -Action { Get-History | Export-Clixml $HistoryFilePath } | out-null
if (Test-path $HistoryFilePath) { Import-Clixml $HistoryFilePath | Add-History }
# if you don't already have this configured...
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForwardPowerShell'de komut geçmişini görüntülemek için Get-History komutunu çalıştırmanız gerekir ancak geçmişinizin kaydedildiğinden emin olmak için çok önemli bir adım vardır. Kapat düğmesine tıklayarak PowerShell'i kapatamazsınız. Bunun yerine her zaman çıkış komutuyla kapatmalısınız.
Önceki komutlar arasında geçiş yapmak için Yukarı ve Aşağı ok tuşlarını kullanabilirsiniz.


