自2019年5月Windows Server 2016安全汇总以来,在Powershell中设置了Powershell变量断点时,通过Powershell访问.net对象非常慢。
例如,在未设置断点的情况下,[System.Environment]的加载速度超过了十倍。
由于该行为仅在安装了最新的安全更新(2019年5月(KB4494440)或2019年6月(KB4503267))时发生,因此我认为它与更新有关。
到目前为止,没有使用procmon进行一些故障排除。对我来说,好像设置了PSBreakpoint时,在没有设置断点的情况下,对HKLM\System\CurrentControlSet\Control\Session Manager\Environment\__PSLockdownPolicy
的多次读取无法重现该错误,并且在未安装任何更新的情况下无法重现此效果。
当我在Windows Server 2016上安装Windows安全汇总更新Mai / 2019年6月时,以下Powershell代码的运行速度慢10倍以上。
$measure1 = measure-command{
foreach($i in 1..10000){
[System.Environment]
}
} |select -ExpandProperty TotalSeconds
Set-PSBreakpoint -Variable "test" -Action {$null}
$measure2 = measure-command{
foreach($i in 1..10000){
[System.Environment]
}
} |select -ExpandProperty TotalSeconds
Write-Host "First measurement took $measure1 seconds, Second measurement took $measure2"
>>First measurement took 0.0482474 seconds, Second measurement took 0.8722697
任何人都可以观察到这种行为吗?
您是否有解决此问题的建议?
与某些设置或已安装的软件有关吗?