У меня есть этот фрагмент скрипта PowerShell:
$IE = New-Object -com InternetExplorer.Application
$IE.Navigate($URL)
While ($IE.ReadyState -Ne 4) {Start-Sleep -Milliseconds 100}
$IE.Document.ParentWindow.ExecScript("var JSIEVariable = new XMLSerializer().serializeToString(document);", "javascript")
$Obj = $IE.Document.ParentWindow.GetType().InvokeMember("JSIEVariable", 4096,
$Null, $IE.Document.parentWindow, $Null)
$HTML = $Obj.ToString()
$IE.Quit()
В Windows 10 он работает нормально, но в Windows Server 2016 для строк 4, 5 и 6 я получаю сообщение об ошибке:
Вы не можете вызывать метод для выражения с нулевым значением.
Я почти уверен, что это как-то связано с дополнительной безопасностью в Windows Server, не позволяющей IE запускать Javascript.Должен быть какой-то способ вернуть эту защиту на уровень Windows 10, чтобы этот сценарий мог работать правильно, но я не могу понять, как это сделать.Я отключил IE Enhanced Security Configuration и убедился, что Active Scripting включен.Кроме того, я не знаю, что еще делать.