2013-03-04 7 views
16

Quando si utilizza il seguente codice nel PowerShell 3,0Utilizzando Invoke-WebRequest in PowerShell 3.0 genera una protezione Windows avviso

PS> $data = Invoke-Webrequest -Uri stackoverflow.com 
PS> $data.ParsedHtml.getElementsByTagName("div") 

ottengo questo avvertimento:

di Windows Avviso di protezione - Per consentire a questo sito web per fornire informazioni personalizzato per te, ti permetterà di mettere un piccolo file (chiamato un cookie) sul tuo computer?

Mi piacerebbe davvero a sopprimere questo messaggio o aggiungere codice per gestire i cookie, in modo che il codice potrebbe essere programmato.

Ho provato a fidarsi del sito in IE consentendo i cookie e persino abbassando le "Impostazioni controllo account utente" ma senza risultati.

risposta

19
$data = Invoke-WebRequest http://stackoverflow.com -UseBasicParsing 

Sembra un prompt di Internet Explorer, questo è perché sotto il cofano Invoke-WebRequest probabilmente sta usando Internet Explorer per analizzare il DOM. Quando si utilizza il parametro -UseBasicParsing, si istruisce PowerShell a utilizzare il proprio parser. Per qualche ragione, sembra anche nascondere la richiesta dei cookie.

+1

Se non si utilizza '-UseBasicParsing' (rovina il resto del mio script), c'è un modo per chiudere le sessioni della finestra di Internet Explorer aperte da Invoke-WebRequest? – Quanda

2

Il messaggio può essere soppresso allentando l'impostazione nelle opzioni di Internet enter image description here

privacy È anche possibile aggiungere un'opzione pricavy per sito per il sito che si sta utilizzando nello script, invece di consentire tutti i cookie.

Contro lo -UseBasicParsing Manterrai l'analisi fornita da Internet Explorer. (Al costo della sicurezza allentata)