如何查看 WindowsServer2016中所有 PowerShell 会话的命令历史记录?

在哪里可以查看 WindowsServer2016中所有会话的完整历史记录?

The following PowerShell command only includes the commands from the current session:

Get-History
81974 次浏览

在 PowerShell 中输入以下命令:

(Get-PSReadlineOption).HistorySavePath

这将为您提供保存所有历史记录的路径。然后在文本编辑器中打开该路径。

Try cat (Get-PSReadlineOption).HistorySavePath to list the history in PowerShell.

Powershell 图库中的 Psreadline 模块2.1 beta1(仅支持 Powershell 7)使用保存的历史记录 https://github.com/PowerShell/PSReadLine/issues/1468在命令行上进行智能感知。它已经开始在 Vscode 出现。https://www.reddit.com/r/PowerShell/comments/g33503/completion_on_history_in_vscode/

同样在 Psreadline,你可以使用 f8(在命令行输入一些内容后)或 control-R 向后搜索保存的历史记录。Get-psreadlinekeyHandler 列出键绑定。

get-psreadlinekeyhandler -bound -unbound | ? function -match history

For getting full history from PowerShell and save the output to file I use this command:

Get-Content (Get-PSReadlineOption).HistorySavePath > D:\PowerShellHistory.txt

因为你是在窗口上,你也可以用它打开下面的“记事本”。

notepad (Get-PSReadlineOption).HistorySavePath

这里提到了 Windows Server/Enterprise 版本,但是作为一个 Pro (标准零售版)用户,我也可以使用 HistorySavePath。我需要查看旧的会话中最近安装了哪些 python 包,并希望在这里为历史中查找 具体点内容的人添加一个答案。

# if you like file names and line numbers included in your output
Select-String "<search pattern>" (Get-PSReadlineOption).HistorySavePath


# if you Just want the text without any of the other information
Get-Content (Get-PSReadlineOption).HistorySavePath | Select-String "<search pattern>"

对我来说,我逃跑了

Select-String 'pip install' (Get-PSReadlineOption).HistorySavePath

它给了我一个从我以前的会话运行 pip 安装命令的列表

...
[Path/To/File]:10401:pip install dash
[Path/To/File]:10824:pip install -r .\requirements.txt
[Path/To/File]:11296:pip install flask-mysqldb
[Path/To/File]:11480:pip install Flask-Markdown
[Path/To/File]:11486:pip install pygments
[Path/To/File]:11487:pip install py-gfm
[Path/To/File]:11540:pip install bs4

你可以试试这个 PowerShell Command History

Windows PowerShell

进入一个你可以使用的会话 hhistory

而是把所有的命令都写进你用的电脑里

cat (Get-PSReadlineOption).HistorySavePath