С мая 2019 г. накопительный пакет безопасности для Windows Server 2016 доступ к объекту .net через powershell очень медленный, когда в powershell установлена точка останова переменной powershell.
Например, скорость загрузки [System.Environment] увеличивается более чем в десять раз с точкой останова, не установленной.
Так как это происходит только с последними установленными обновлениями безопасности (май 2019 (KB4494440) или июнь 2019 (KB4503267)), я думаю, что это связано с обновлением.
До сих пор устранял некоторые проблемы с procmon. Для меня это выглядит так, что когда установлена точка PSBreakpoint, при множественном чтении из HKLM\System\CurrentControlSet\Control\Session Manager\Environment\__PSLockdownPolicy
невозможно воспроизвести это, когда не установлена точка останова, и не может воспроизвести этот эффект без одного из установленных обновлений.
Следующий код PowerShell работает более чем в 10 раз медленнее, когда я устанавливаю накопительный пакет обновления для системы безопасности Май / июнь 2019 года на моем Windows Server 2016.
$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
Может ли кто-нибудь также наблюдать это поведение?
Есть ли у вас какие-либо предложения для решения этой проблемы?
Это связано с некоторыми настройками или установленным программным обеспечением?