You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询旧.ps1脚本的最后执行时间?

查询PowerShell脚本(.ps1)的最后执行时间

以下是几种可行的方法,按可靠性和实用性排序:

1. 检查Windows事件日志

Windows会记录PowerShell的执行相关事件,这是相对可靠的途径:

  • 手动查看:打开事件查看器,导航到Windows日志 > 应用程序,筛选事件ID 403(PowerShell会话结束)或800(脚本执行详细记录),查找包含.ps1的事件,查看TimeCreated字段。
  • 用PowerShell快速筛选:
    Get-WinEvent -FilterHashtable @{LogName='Application'; ID=403,800} | 
      Where-Object {$_.Message -match '\.ps1'} | 
      Select-Object TimeCreated, Message | 
      Sort-Object TimeCreated -Descending
    
    注意:如果系统未启用PowerShell模块日志/脚本块日志,可能无法找到800事件,需要先在组策略或PowerShell设置中启用。

2. 查看文件的最近访问时间

Windows默认禁用了文件最近访问时间的更新(为了性能优化),如果未修改过设置,这个时间可能不准确:

  • 先检查当前设置:
    fsutil behavior query disablelastaccess
    
    返回disablelastaccess = 1表示禁用,若要启用(需重启系统生效):
    fsutil behavior set disablelastaccess 0
    
  • 启用后,查看脚本文件的访问时间:
    Get-ChildItem "C:\目标脚本路径\*.ps1" | 
      Select-Object Name, LastAccessTime | 
      Sort-Object LastAccessTime -Descending
    

3. 检查PowerShell历史记录

本地用户的PowerShell执行历史默认存储在以下路径:

  • PowerShell 7+:$env:USERPROFILE\Documents\PowerShell\ConsoleHost_history.txt
  • PowerShell 5.1:$env:USERPROFILE\Documents\WindowsPowerShell\ConsoleHost_history.txt
  • 也可以用命令直接获取历史文件路径:(Get-PSReadLineOption).HistorySavePath

搜索历史中的脚本执行记录:

Get-Content (Get-PSReadLineOption).HistorySavePath | 
  Select-String '\.ps1' | 
  Select-Object -Last 10

注意:历史记录可能被用户手动清理,或者未保存完整的执行路径,仅供参考。

4. 检查脚本自带的执行日志

如果你的脚本在编写时添加了执行日志功能(比如每次执行时将时间写入特定日志文件),直接查看对应的日志文件是最准确的方式。

内容的提问来源于stack exchange,提问作者M.1.B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:57:02