Powershell + Invoke-Webrequest in Systemdiensten

2020-03-12 - christian - powershell, shell, windows

Die Invoke-WebRequest Funktion in PowerShell extrahiert im Standardverhalten Bilder, Formularfelder, Links aus dem Response und stellt diese als separate Properties bereit.

Dafür benutzt die Funktion den Internet Explorer, welcher für den System Account von Windows natürlich nicht zur Verfügung steht. Der Aufruf von Invoke-WebRequest führt zu folgender Fehlermeldung:

The response content cannot be parsed because the Internet Explorer engine is not available, or Internet Explorer’s first-launch configuration is not complete. Specify the UseBasicParsing parameter and try again.

Mit der Option -UseBasicParsing kann man dieses Verhalten deaktivieren:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$result = Invoke-WebRequest -UseBasicParsing -Uri "https://localhost/api/getawesomethings"

Ab Powershell 6 ist das “extended Parsing” veraltet und es wird standardmäßig das “basic parsing” verwendet. Die Option sollte man aber zur Kompatibilität mit älteren Windows Systemen dennoch setzen.


serverless.industries BG by Carl Lender (CC BY 2.0)
e4c06c3b 2020-07-10 09:53