powershell - actualizar - invoke-webrequest headers
El término ''Invoke-WebRequest'' no se reconoce como el nombre de un cmdlet (5)
Tengo un problema con la ejecución del cmdlet Invoke-WebRequest. Leí que ~ 100% de este escenario es una versión de PS inferior a 3, pero no es mi caso:
Name Value
---- -----
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
CLRVersion 4.0.30319.34011
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10208.0
PSVersion 5.0.10208.0
SerializationVersion 1.1.0.1
Puedo agregar que estoy usando Windows 10 IoT Core versión del sistema operativo. De hecho, mi objetivo principal es la ejecución de una solicitud web simple, pero me interesa el motivo por el que este cmdlet no funciona, especialmente si no lo hace más. Supongo que puede haber algunas funciones de Windows como el interruptor para encender, pero su solo mi conjetura
Actualizar
En la medida en que comparé los cmdlets disponibles para ciertos módulos, y los conjuntos precargados entre mi sistema regular y una versión de IoT, parece que la última versión está cortada de alguna manera, pero todavía no he visto ningún documento para eso.
El uso de la opción -UseBasicParsing en el comando funciona. Lo siguiente es parte de la documentación del comando.
-UsoBasicParsing
Indica que el cmdlet utiliza el objeto de respuesta para el contenido HTML sin el análisis del Modelo de objetos de documento (DOM).
Este parámetro es necesario cuando Internet Explorer no está instalado en las computadoras, como en una instalación Server Core de un sistema operativo Windows Server.
Esto parece ser eliminado en el núcleo de PowerShell. Estoy buscando por qué esto no funciona en Docker para Windows que se ejecuta en Nano Server para Windows 2016 y sus hallazgos coinciden con los míos.
Invoke-WebRequest se ha eliminado de PS5. Aquí hay una implementación de una función llamada Invoke-FastWebRequest que funciona como la anterior Invoke-WebRequest en PS5: https://github.com/cloudbase/unattended-setup-scripts/blob/master/FastWebRequest.psm1
Tratar de crear la solicitud de la misma manera que lo haría para la versión 2 de PS (usando la biblioteca .net en lugar del cmdlet) tampoco funciona ...
$request = [System.Net.WebRequest]::Create("https://google.com")
$request.Method = "GET"
[System.Net.WebResponse]$response = $request.GetResponse()
Tuve este problema en un servidor Windows 2008 R2 porque ejecutaba PowerShell v2. La actualización a v4 solucionó el problema.
https://www.microsoft.com/en-gb/download/details.aspx?id=40855
A partir de v5, Invoke-WebRequest
todavía está documentado .
Comprueba tu versión con:
$PSVersionTable.PSVersion