Tin tức và phân tích của tất cả các thiết bị di động

Cách lấy lịch sử các lệnh PowerShell trên hệ thống của bạn Windows 10

PowerShell trên hệ thống Windows 10 có thể cung cấp lịch sử của mọi lệnh được thực thi trong phiên hiện tại, tuy nhiên đối với nhiều người dùng, điều này là không đủ. Họ cần một lịch sử của các lệnh được thực hiện trong phiên. Nếu bạn muốn có lịch sử các lệnh PowerShell và chỉ riêng lịch sử của phiên hiện tại là không đủ, thì có một tập lệnh và tệp nhật ký có thể giúp bạn.

Lịch sử lệnh – phiên hiện tại

Nếu bạn đang sử dụng PowerShell 5bạn có thể truy xuất lịch sử lệnh cho phiên hiện tại bằng cách chạy lệnh sau;

Get-History

Theo mặc định, PowerShell có thể lưu tối đa 50 lệnh nhưng bạn có thể thay đổi điều này để lưu nhiều hơn. Mở PowerShell và nhấp chuột phải vào thanh tiêu đề. Từ menu ngữ cảnh, đi đến Thuộc tính. Trong cửa sổ Thuộc tính, chuyển đến tab Tùy chọn. Bạn sẽ thấy phần Lịch sử lệnh trong đó giá trị mặc định là 50. Thay đổi nó thành giá trị cao hơn.

Nhật ký lịch sử PowerShell

Để xem nhật ký lịch sử, trước tiên hãy cài đặt mô-đun PSReadLine bằng lệnh sau;

Install-Module PSReadLine

Sau đó chạy lệnh sau và nó sẽ trả về vị trí của tệp. Tệp ở vị trí này chứa toàn bộ lịch sử của mọi lệnh chạy trong PowerShell.

(Get-PSReadlineOption).HistorySavePath

Lịch sử các lệnh PowerShell giữa các phiên

Đó là một quá trình hơi dài, nhưng đáng giá. Giải pháp này đến từ Intel. Trước tiên, hãy mở vị trí sau và xác minh rằng có tệp có tên Microsoft.PowerShell_profile.ps1 ở vị trí đó.

C:Users<username>DocumentsWindowsPowerShell

Nếu tệp không có ở đó, hãy mở PowerShell và chạy lệnh sau. Nó sẽ mở tệp hồ sơ của bạn trong Notepad nhưng tệp đó không tồn tại và PowerShell sẽ cho bạn biết điều đó và hỏi bạn có muốn tạo một tệp không. Hãy để anh ấy tạo tập tin.

notepad $Profile

Đóng tệp notepad đang mở. Trong PowerShell, hãy chạy lệnh này để đảm bảo rằng bạn đang sử dụng PowerShell 5.

$PSVersionTable.PSVersion

Sau đó đặt chính sách thực thi thành RemoteSigned bằng lệnh sau.

set-executionpolicy remotesigned

Sau đó, bạn cần cài đặt các mô-đun PsUrl và PSReadline. Bạn có thể cài đặt chúng bằng lệnh sau, nếu gặp lỗi, chỉ cần cài đặt chúng theo cách thủ công theo quy trình được mô tả trong các trang được liên kết hoặc thử thêm kho lưu trữ làm kho lưu trữ đáng tin cậy rồi chạy lại lệnh.

install-module PsUrl
install-module PSReadline

Sau khi cài đặt các mô-đun này, hãy mở tệp này;

C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

Dán đoạn sau vào tệp này và lưu nó.

$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

Để xem lịch sử lệnh của bạn trong PowerShell, bạn cần chạy lệnh Get-History, tuy nhiên, có một bước rất quan trọng để đảm bảo rằng lịch sử đã được lưu. Bạn KHÔNG THỂ đóng PowerShell bằng cách nhấp vào nút đóng. Thay vào đó, bạn luôn phải đóng nó bằng lệnh thoát.

Bạn có thể sử dụng các phím mũi tên lên và xuống để di chuyển giữa các lệnh trước đó.

Mục lục