2013-03-04 12 views
16

Przy użyciu następującego kodu w PowerShell 3,0Korzystanie Invoke-WebRequest w PowerShell 3.0 spawns Windows Security Warning

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

uzyskać to ostrzeżenie:

zabezpieczeń systemu Windows ostrzegawczy - aby tę stronę, aby przekazać informacje dostosowane do ciebie, czy pozwolisz mu umieścić na twoim komputerze mały plik (nazywany ciasteczkiem) ?

naprawdę chciałbym aby pominąć to wiadomości lub dodać kod do obsługi ciasteczek, więc kod może być zaplanowane.

Próbowałem zaufać stronie w IE, zezwalając na pliki cookie, a nawet obniżając "Ustawienia Kontroli konta użytkownika", ale bez skutku.

Odpowiedz

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

wygląda jak szybka Internet Explorer, to dlatego, że pod maską Invoke-WebRequest jest prawdopodobnie za pomocą przeglądarki Internet Explorer do analizowania DOM. Podczas korzystania z parametru -UseBasicParsing instruujesz, że PowerShell używa własnego parsera. Z jakiegoś powodu wydaje się również ukrywać monit o pliki cookie.

+1

Jeśli nie używasz opcji "-UseBasicParsing" (powoduje to uszkodzenie reszty skryptu), czy istnieje sposób zamknięcia sesji okna przeglądarki Internet Explorer otwartych przez Invoke-WebRequest? – Quanda

2

Wiadomość może być tłumione przez poluzowanie ustawienia prywatności w opcjach internetowych enter image description here

Można też po prostu dodać za opcję pricavy miejscu na terenie którego używasz w skrypcie, zamiast pozwalać cookies.

W przeciwieństwie do -UseBasicParsing Będziesz zachowywać parsowanie dostarczone przez Internet Explorer. (Kosztem poluzowanego zabezpieczenia)

Powiązane problemy