当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 Windows 10 上获取 PowerShell 命令历史记录

作者:精品下载站 日期:2024-12-14 05:34:41 浏览:13 分类:玩电脑

如何在 Windows 10 上获取 PowerShell 命令历史记录


Windows 10 上的 PowerShell 可以为您提供当前会话中执行的每个命令的历史记录,但是对于许多用户来说这还不够。他们需要跨会话执行的命令的历史记录。如果您需要获取 PowerShell 命令历史记录,并且仅当前会话的历史记录并不能解决问题,那么脚本和日志文件可以为您提供帮助。

命令历史当前会话

如果您运行的是 PowerShell 5,则可以通过运行以下命令来获取当前会话的命令历史记录;

Get-History

默认情况下,PowerShell 最多可以保存 50 个命令,但您可以更改它以保存更多命令。打开 PowerShell 并右键单击标题栏。从上下文菜单中,转到属性。在“属性”窗口中,转到“选项”选项卡。您将看到命令历史记录部分,其中默认设置为 50。将其更改为更高的值。

[玩转系统] 如何在 Windows 10 上获取 PowerShell 命令历史记录

PowerShell 历史日志

为了查看历史日志,您需要首先使用以下命令安装 PSReadLine 模块;

Install-Module PSReadLine

接下来,运行以下命令,它将返回文件位置。此位置的文件将为您提供在 PowerShell 中运行的每个命令的完整历史记录。

(Get-PSReadlineOption).HistorySavePath

[玩转系统] 如何在 Windows 10 上获取 PowerShell 命令历史记录

跨会话 PowerShell 命令历史记录

这是一个有点漫长的过程,但这是值得的。该解决方案来自英特尔。首先打开以下位置并检查该位置是否有名为 Microsoft.PowerShell_profile.ps1 的文件。

C:\Users\<username>\Documents\WindowsPowerShell

如果那里没有文件,请打开 PowerShell 并运行以下命令。它将在记事本中打开您的配置文件,但该文件不存在,PowerShell 会告诉您尽可能多的信息,并询问您是否要创建它。允许它创建文件。

notepad $Profile

关闭打开的记事本文件。在 PowerShell 中,运行此命令以确保您正在运行 PowerShell 5。

$PSVersionTable.PSVersion

接下来,使用以下命令将执行策略设置为 RemoteSigned。

set-executionpolicy remotesigned

接下来,您需要安装 PsUrl 和 PSReadline 模块。您可以使用以下命令安装它们,但如果出现错误,只需按照链接页面上概述的过程手动安装它们,或者尝试将存储库添加为可信存储库,然后再次运行该命令。

install-module PsUrl
install-module PSReadline

现在这些模块已经安装,打开这个文件;

C:\Users\<username>\Documents\WindowsPowerShell\Microsoft.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 命令关闭它。

[玩转系统] 如何在 Windows 10 上获取 PowerShell 命令历史记录

您可以使用向上和向下箭头键循环执行先前的命令。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯