PowerShell 中的事件处理与 Tab 补全增强
1. PowerShell 事件处理的风险与应对
在 PowerShell 中使用 WMI 事件脚本时,存在一定风险。如果未调用事件监视器的 Stop 方法,系统会不断执行查询,多次运行脚本会使事件监视器累积,导致系统性能显著下降,因为大部分 CPU 时间会用于执行泄漏的查询。所以,在完成操作后,一定要停止事件监视器并断开与事件的连接。
另外,当脚本监听事件时,如果用户按下 Ctrl+C ,PowerShell 不仅会终止脚本,还会终止整个输入的命令。例如,执行以下命令:
PS C:\PowerShell> .\WatchDeletedFiles.ps1 ; Write-Host "Done"
PS C:\PowerShell>
不会输出 "Done" 消息。PowerShell 1.0 在处理 Ctrl+C 方面存在不足,不过 PSEventing 插件提供了 Start-KeyHandler 和 Stop-KeyHandler 两个 cmdlet 来解决这个问题。支持 Ctrl+C 的关键步骤如下:
1. 使用 Start-KeyHandler -CaptureCtrlC 注册处理程序。
2. 区分 Ctr
超级会员免费看
订阅专栏 解锁全文
2268

被折叠的 条评论
为什么被折叠?



