2015-08-31 28 views
16

. Ho avuto problemi con l'esecuzione del cmdlet Invoke-WebRequest. Ho letto quel caso ~ 100% di tale scenario è PS versione inferiore a 3, ma non è il mio caso:Il termine "Invoke-WebRequest" non è riconosciuto come il nome di un cmdlet

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 

posso aggiungere che sto utilizzando Windows 10 versione IoT Core OS. In effetti il ​​mio scopo principale è l'esecuzione di una semplice richiesta web, ma sono interessato perché questo cmdlet non funziona, specialmente se più di loro non lo sono,/suppongo che possa essere una funzionalità di windows come switch per accendere, ma è solo la mia ipotesi.

Aggiornamento

Per quanto ho confrontato cmdlet disponibili per alcuni moduli e assiemi precaricati tra il mio sistema regolare e una versione degli oggetti, sembra che quest'ultima versione è tagliato in qualche modo, ma ancora non ha fatto vedere tutti i documenti per quello.

+0

Solo curioso, manca anche 'Invoke-RestMethod'? – briantist

+0

@briantist A cosa stai pensando? – Matt

+0

Ho trovato un altro post su un comando mancante: measure-command. Se manca anche a te, forse l'IoT viene messo a nudo senza documentazione. –

risposta

3

Cercando di creare la richiesta allo stesso modo lo farei per PS versione 2 (utilizzando la libreria .NET invece di cmdlet) non funziona neanche ...

$request = [System.Net.WebRequest]::Create("https://google.com") 
$request.Method = "GET" 
[System.Net.WebResponse]$response = $request.GetResponse() 
6

ho avuto questo problema su un server Windows 2008 R2 perché era in esecuzione PowerShell v2. L'aggiornamento a v4 ha risolto il problema.

https://www.microsoft.com/en-gb/download/details.aspx?id=40855

Come di v5, Invoke-WebRequest è still documented.

di controllare la versione con:

$PSVersionTable.PSVersion 
+0

Sebbene questo sia un problema e una risposta comuni, il nucleo di PowerShell 5 sembra aver rimosso questo –

3

Questo sembra essere rimosso nel nucleo PowerShell. Sto cercando il motivo per cui questo non funziona su Docker per Windows in esecuzione su Nano Server per Windows 2016 e le tue conclusioni corrispondono alle mie.

-1

Utilizzare l'opzione -UseBasicParsing nel comando funziona. Quello che segue è parte della documentazione del comando

-UseBasicParsing

Indica che il cmdlet utilizza l'oggetto di risposta per il contenuto HTML senza Document Object Model (DOM) di analisi.

Questo parametro è obbligatorio quando Internet Explorer non è installato sui computer, ad esempio su un'installazione Server Core di un sistema operativo Windows Server.