获取PowerShell的所有历史记录

别再只用history了!手把手教你用PSReadLine获取PowerShell全局历史记录(含自定义函数) 本文详细介绍了如何利用PSReadLine模块突破PowerShell默认历史记录的局限,实现跨会话命令追溯。通过自定义Get-GlobalHistory函数和优化配置,帮助用户高效管理持久化历史记录,提升命令行工作效率。特别适合需要频繁复用复杂命令的开发者和管理员。 阅读详情

PowerShell默认的history命令只能查看当前窗口的历史记录,很不方便

可以使用以下方法获取PowerShell的所有历史记录,简单记录一下

一、PSReadline

当前版本(5.1)默认安装了Readline,其为PowerShell提供了诸多实用功能,包括了历史记录的记录功能。

# 获取可配置的选项的值
Get-PSReadLineOption
# 获取 PSReadLine 模块的键绑定
Get-PSReadlineKeyHandler

可以看到其历史记录功能如下:

历史记录功能
======

Key       Function              Description
---       --------              -----------
Alt+F7    ClearHistory          从命令行历史记录(不是 PowerShell 历史记录)
                                中删除所有项
Ctrl+s    ForwardSearchHistory  以交互方式向前搜索历史记录
F8        HistorySearchBackward 搜索历史记录中以当前输入开头的上一项,例如
                                PreviousHistory (如果输入为空)
Shift+F8  HistorySearchForward  搜索历史记录中以当前输入开头的下一项,例如
                                NextHistory (如果输入为空)
DownArrow NextHistory           使用历史记录中的下一项替换输入
UpArrow   PreviousHistory       使用历史记录中的上一项来替换输入
Ctrl+r    ReverseSearchHistory  以交互方式向后搜索历史记录

默认的查看历史记录的命令为history,但只能查看当前命令行的命令

而当前版本的Readline也没有提供直接查看history功能

可以使用 Get-Content (Get-PSReadlineOption).HistorySavePath获得PSReadline保存的历史记录,但是这种方法太长了,找了半天发现当前版本并没有什么其他方法。

二、写函数

# Add Get-AllHistory function for powershell
function Get-AllHistory
{
	<#
       .SYNOPSIS
	   # Get-AllHistory
	   Get all history of powershell
	   # Get-AllHistory n
	   Show the last n history records
	   .DESCRIPTION
	   The function add by Kody
    #>
	param (
        $Count
    )
    if($Count){
		$his = Get-Content (Get-PSReadLineOption).HistorySavePath -tail $Count
	}
	else{
		$his = Get-Content (Get-PSReadLineOption).HistorySavePath
	}
    $n = $his.Length
    $out = @()
    for($i=1;$i -le $n;$i++)
    {
        $out = $out + "$i $($his[$i-1])"
    }
    return $out
}

打开配置文件,把这个函数加进去

notepad $PROFILE

三、使用

Get-AllHistory

Get-AllHistory 100 #最近一百条历史记录

如果还是觉得Get-AllHistory也太长了

可以设个别名,也加到$PROFILE里面

Set-Alias -Name his -Value Get-AllHistory
别再只用history了!手把手教你用PSReadLine和自定义函数Get-AllHistory,找回所有PowerShell历史命令 本文详细介绍了如何突破PowerShell默认history命令的局限,通过PSReadLine模块和自定义函数Get-AllHistory实现跨会话的历史命令追踪。文章提供了从基础配置到高级功能的完整指南,包括持久化历史记录设置、命令过滤与搜索技巧,以及安全隐私考量,帮助IT专业人员打造高效的PowerShell工作流。 阅读详情

相关推荐

别再只用history了!教你用PSReadLine和自定义函数,一键导出PowerShell所有窗口的历史命令

本文详细介绍了如何突破PowerShell默认`history`命令的局限,利用PSReadLine模块和自定义函数实现全窗口历史命令的追溯与管理。通过`Get-AllHistory`和`Get-EnhancedHistory`函数,用户可以跨会话聚合命令记录,支持按数量、内容、时间等多条件查询,并提供了自动加载、别名设置、企业级审计等实用方案,显著提升PowerShell历史记录的管理效率。

weixin_26765287的博客 307

Powershell历史执行记录

powershell历史命令查看

qq_43348375的博客 2860

⓫⁄₅ ⟦ OSCP ⬖ 研记 ⟧ Windows权限提升 ➱ 利用PowerShell获取敏感信息

本文探讨了Windows权限提升中的敏感信息挖掘技术,重点分析了PowerShell日志(转录与脚本块日志)的双重作用:既为防御者提供审计依据,也可能因泄露敏感数据(如明文密码)成为攻击者的突破口。研究发现,PSReadline模块独立保存的历史记录不受Clear-History命令影响,攻击者可借此恢复被删除的操作痕迹。通过案例演示,结合PSReadline历史与转录文件,成功提取凭证(如daveadmin/qwertqwertqwert123!!),并利用evil-winrm工具实现远程控制。

“被信息安全硌得牙疼?来这儿,包你嚼得动、咽得香!😋”核心知识掰开嚼碎,攻防大战揭秘如追剧,政策法规解读不瞌睡!每周两顿“安全小灶”,保准有趣有料还不胖!觉得有用?点赞❤️收藏⭐ 鼓励一下呗!+关注😉= 永久VIP席位,速来!!! 1428

Windows PowerShell如何查看历史命令

Windows PowerShell如何查看所有历史记录

qq_39226133的博客 3639

管理 PowerShell命令历史

PowerShell命令历史记录可以用来做很多事情,例如提供给 PSReadLine 来完成命令预测和历史搜索。此时命令行打印的路径即为历史命令的记录文件,使用文本编辑器对其进行编辑即可。

sigmarising的博客 899

PowerShell查看历史记录

PowerShell查看历史记录,如何查看关掉的PowerShell历史记录

懒得安分的博客 2312

wps2016向程序发送命令_渗透技巧---获得Powershell命令历史记录

0x00 前言Powershell命令历史记录有时会包含系统敏感信息,例如远程服务器的连接口令,运行的PS脚本等各种有价值的信息等等,这里总结一些渗透测试中常用导出历史记录的方法,结合利用思路,给出防御建议。0x01 简介本文将要介绍以下内容:两种Powershell命令历史记录导出Powershell命令历史记录的方法防御建议0x02 两种Powershell命令历史记录记录Powersh...

weixin_32559133的博客 352

查找并调用PowerShell历史记录中的命令

我们通常会在Console界面中运行多次命令或者命令行,很多人会使用键盘的上下键来翻动之前使用的命令,但是当我们敲过运行的命令次数越多那么即便你去使用上下键去翻页查找之前使用的命令也依然会显得不是那么方便。

Anders's Blog 1万+

wps2016向程序发送命令_如何获得PowerShell命令历史记录

0x00前言我在最近的学习过程中,发现PowerShell命令历史记录有时会包含系统敏感信息,例如远程服务器的连接口令,于是我对PowerShell的的历史记录功能做了进一步研究,总结一些渗透测试中常用导出历史记录的方法,结合利用思路,给出防御建议。0x01简介本文将要介绍以下内容:1.两种PowerShell命令历史记录2.导出PowerShell命令历史记录的方法3.防御建...

weixin_39947306的博客 319

获得Windows系统的远程桌面连接历史记录

转载:http://www.mottoin.com/tech/109219.html 渗透技巧—获得Windows系统的远程桌面连接历史记录 0x00 前言 在渗透测试中,远程桌面连接的历史记录不可忽视,根据历史记录往往能定位出关键的服务器。 前几天有一篇文章介绍了如何清除记录,那么这篇文章就来介绍一下如何导出历史记录。 清除记录的文章地址如下: http://woshub...

weixin_30824277的博客 2435

Windows PowerShell命令历史用法详解

(一)获取所有包含“history”关键字的cmdlet使用PS C:\&lt; Get-Command -Name *history* -CommandType cmdlet,结果如图。(二)通过上图查找到history相关的命令后,我们可以再使用get-history来获取命令历史记录,如图。(三)可以通过使用Get-Alias -Definition Get-History的方式来获取该c...

weixin_34395205的博客 1017

mac远程桌面连接windows_获得Windows系统的远程桌面连接历史记录

在渗透测试中,远程桌面连接的历史记录不可忽视,根据历史记录往往能定位出关键的服务器。最开始的设想是通过枚举注册表就能够完成,但深入研究发现,想要获得所有用户的历史记录,需要逐个获得用户的NTUSER.DAT文件,通过注册表加载配置单元,导入用户配置信息,再进行枚举才能够实现。本文内容:1.获得历史记录的思路 2.导出登录用户的历史记录 3.导出所有用户的历史记录 4.两种方法的实现思路和脚本编写细...

weixin_39715460的博客 324

PowerShell 常用命令

PowerShell 常用命令清除历史记录获取历史记录显示目录树结构软链接1. CMD2. PowerShell切换用户 清除历史记录: Clear-History 获取历史记录 Get-History 显示目录树结构 tree /f 软链接 1. CMD // 链接到文件夹 mklink /D LinkFolderName "FolderPath" // 链接到文件 mklink /D LinkFileName "FilePath" 2. PowerShell 通过调用 CMD 执行命令来实现

m0_54370335的博客 583

Windows PowerShell基本语法及常用命令

PowerShell常用命令: 一 Get类 1.Get-Command : 得到所有PowerShell命令获取有关 cmdlet 以及有关 Windows PowerShell 命令的其他元素的基本信息。                         &nbsp.

技术超强的网络安全平台 4495

PowerShell历史记录防御规避新技术解析

更有趣的规避选项是自定义历史记录判断逻辑。接收当前命令作为$line变量,返回$true时才会写入历史文件。此处直接返回$false阻止记录。防御方可监控参数的使用,实际上监控所有PSReadLineOption函数都是明智之举。

分享技术点滴 330

Search Function of Powershell

Get-Member Get-Date | Get-Member Get-Date | FL Get-History Invoke-History Get-Command Get-Command *process* Run as admin - Update-Help

BISHOP0125的博客 248

powershell基础(1)

首先,确保你的计算机上已经安装了PowerShell。对于Windows 10及更高版本,PowerShell通常是默认安装的。下载并安装最新版本的PowerShell Core。ls dir gci:列出目录的文件夹和文件。rm del erase:删除文件或者目录。1+1 2-1 2*2 6/3 10%3等。cat type gc:显示文件内容。echo :输出文本或者变量的值。cp copy:复制文件或目录。命令一的输的输出会传送到2输入。ps: 列出当前运行的进程。mv:移动文件或目录。

lzy_hyj的博客 1177
上一篇: 最新版oh-my-posh美化Windows Terminal和VScode终端
下一篇: 用pyqt5写一个同步文件夹内容的小工具
Distiny`~
博客等级 码龄7年 1038粉丝 9原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值