Bob*_*b P 5 powershell event-log
我使用 PsExec 在远程计算机上运行 PowerShell 脚本,作为其副作用,“Windows PowerShell”事件日志(在“应用程序和服务日志”下的事件查看器中找到)将我们的所有参数记录到“HostApplication”下的脚本。这是一个问题,因为其中一些参数包含敏感密码。
我尝试将下面列出的首选项变量设置为 false,但在 PowerShell 引擎启动时它仍然会创建日志。据我所知,这是因为 PowerShell 在检查这些首选项变量的值之前就创建了这些日志。
$LogEngineLifeCycleEvent=$false;
$LogEngineHealthEvent=$false;
$LogProviderLifeCycleEvent=$false;
$LogProviderHealthEvent=$false;
Run Code Online (Sandbox Code Playgroud)
我们当前的解决方案结合使用这些首选项变量,并将以下行放在每个 PowerShell 脚本的开头,以确保清除 PowerShell 引擎启动时创建的日志。
Clear-EventLog "Windows PowerShell";
Run Code Online (Sandbox Code Playgroud)
这个解决方案是好的,但我希望它达到这样的程度:我们的密码永远不会保存在日志中,并且日志永远不需要清除。有没有办法禁用 PowerShell 日志记录,以便在 PowerShell 引擎生命周期的任何时刻都不会创建事件?
我认为您需要以下本地组策略,特别是第二个:
打开模块日志记录
如果禁用此策略设置,则会禁用所有 Windows PowerShell 模块的执行事件日志记录。为模块禁用此策略设置相当于将模块的 LogPipelineExecutionDetails 属性设置为 False。
打开 PowerShell 块日志记录
此策略设置允许将所有 PowerShell 脚本输入记录到 Microsoft-Windows-PowerShell/Operational事件日志中。如果启用此策略设置,Windows PowerShell 将记录命令、脚本块、函数和脚本的处理 - 无论是交互调用还是通过自动化调用。
如果禁用此策略设置,则会禁用 PowerShell 脚本输入的日志记录。
gpedit.mscComputer Configuration -> Administrative Templates -> Windows Components -> Windows PowerShell| 归档时间: |
|
| 查看次数: |
11699 次 |
| 最近记录: |