PowerShell บน Windows 10 สามารถให้ประวัติคุณได้จากทุกคำสั่งที่คุณดำเนินการในเซสชันปัจจุบันอย่างไรก็ตามสำหรับผู้ใช้หลายรายแล้วยังไม่เพียงพอ พวกเขาต้องการประวัติคำสั่งที่ดำเนินการข้ามเซสชัน หากคุณต้องการรับประวัติคำสั่ง PowerShell และประวัติสำหรับเซสชันปัจจุบันเพียงอย่างเดียวไม่ได้ทำเคล็ดลับมีสคริปต์และไฟล์บันทึกที่สามารถช่วยคุณได้
คำสั่งประวัติเซสชันปัจจุบัน
หากคุณใช้ PowerShell 5 คุณสามารถรับประวัติคำสั่งสำหรับเซสชันปัจจุบันได้โดยเรียกใช้คำสั่งต่อไปนี้
Get-History
ตามค่าเริ่มต้น PowerShell สามารถบันทึกคำสั่งได้มากถึง 50 คำสั่งแต่คุณสามารถเปลี่ยนมันเพื่อประหยัดมากขึ้น เปิด PowerShell และคลิกขวาที่แถบชื่อ จากเมนูบริบทให้ไปที่คุณสมบัติ ในหน้าต่างคุณสมบัติไปที่แท็บตัวเลือก คุณจะเห็นส่วนประวัติคำสั่งที่ค่าเริ่มต้นถูกตั้งไว้ที่ 50 เปลี่ยนเป็นค่าที่สูงขึ้น

บันทึกประวัติ PowerShell
ในการดูบันทึกประวัติคุณจะต้องติดตั้งโมดูล PSReadLine ก่อนด้วยคำสั่งต่อไปนี้
Install-Module PSReadLine
ถัดไปเรียกใช้คำสั่งต่อไปนี้และมันจะส่งคืนตำแหน่งไฟล์ ไฟล์ที่ตำแหน่งนี้จะให้ประวัติที่สมบูรณ์ของทุกคำสั่งที่คุณเรียกใช้ใน PowerShell
(Get-PSReadlineOption).HistorySavePath

ประวัติคำสั่ง PowerShell ข้ามเซสชัน
นี่เป็นกระบวนการที่ค่อนข้างยาว แต่ก็คุ้มค่า โซลูชันนี้มาจาก Intel ก่อนเปิดที่ตั้งต่อไปนี้และตรวจสอบว่ามีไฟล์ชื่อ Microsoft.PowerShell_profile.ps1 ที่ตำแหน่งนี้
C:Users<username>DocumentsWindowsPowerShell
หากไม่มีไฟล์ให้เปิด PowerShell แล้วเรียกใช้คำสั่งดังต่อไปนี้ มันจะเปิดไฟล์โปรไฟล์ของคุณใน Notepad แต่ไม่มีไฟล์นั้นอยู่และ PowerShell จะบอกคุณมากและถามว่าคุณต้องการสร้างมันหรือไม่ อนุญาตให้สร้างไฟล์
notepad $Profile
ปิดไฟล์แผ่นจดบันทึกที่เปิดขึ้นมา ใน PowerShell ให้เรียกใช้คำสั่งนี้เพื่อให้แน่ใจว่าคุณกำลังใช้งาน PowerShell 5
$PSVersionTable.PSVersion
ถัดไปตั้งค่านโยบายการดำเนินการของคุณเป็น RemoteSigned ด้วยคำสั่งต่อไปนี้
set-executionpolicy remotesigned
ถัดไปคุณจะต้องติดตั้ง PsUrl และโมดูล PSReadline คุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้แม้ว่าคุณจะได้รับข้อผิดพลาดเพียงแค่ติดตั้งด้วยตนเองโดยกระบวนการที่ระบุไว้ในหน้าที่เชื่อมโยงหรือลองเพิ่มที่เก็บเป็นที่เก็บที่เชื่อถือได้แล้วเรียกใช้คำสั่งอีกครั้ง
install-module PsUrl
install-module PSReadline
เมื่อโมดูลเหล่านั้นได้รับการติดตั้งแล้วให้เปิดไฟล์นี้
C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
วางต่อไปนี้ภายในไฟล์นี้และบันทึก
$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 HistorySearchForward
เพื่อดูประวัติคำสั่งใน PowerShellคุณต้องเรียกใช้คำสั่ง Get-History แต่มีขั้นตอนสำคัญมากขั้นตอนหนึ่งเพื่อให้แน่ใจว่าประวัติของคุณถูกบันทึกไว้ คุณไม่สามารถปิด PowerShell ได้โดยคลิกที่ปุ่มปิด แต่คุณจะต้องปิดมันด้วยคำสั่ง exit เสมอ

คุณสามารถใช้ปุ่มลูกศรขึ้นและลงเพื่อสลับไปมาตามคำสั่งก่อนหน้า
ความคิดเห็น