2013-03-04 21 views
16

Khi sử dụng đoạn mã sau vào PowerShell 3,0Sử dụng Invoke-WebRequest trong PowerShell 3.0 spawns một Bảo mật * Windows Warning

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

tôi nhận được cảnh báo này:

Windows Security Warning - Để cho phép trang web này để cung cấp thông tin được cá nhân hóa cho bạn, bạn có cho phép đặt một tệp nhỏ (được gọi là cookie) trên máy tính của bạn không?

Tôi thực sự muốn chặn thông báo này hoặc thêm mã để xử lý cookie, vì vậy, mã có thể được lên lịch.

Tôi đã cố gắng tin tưởng trang web trong IE cho phép cookie và thậm chí giảm "Cài đặt kiểm soát tài khoản người dùng" nhưng không có kết quả.

Trả lời

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

Nó trông giống như một trình duyệt Internet Explorer nhanh chóng, điều này là do dưới mui xe Invoke-WebRequest có lẽ sử dụng Internet Explorer để phân tích DOM. Khi bạn sử dụng tham số -UseBasicParsing, bạn hướng dẫn PowerShell sử dụng trình phân tích cú pháp của riêng nó. Đối với một số lý do, nó cũng có vẻ ẩn dấu nhắc cookie.

+1

Nếu không sử dụng '-UseBasicParsing' (nó làm rối tung phần còn lại của tập lệnh của tôi), có cách nào để đóng các phiên cửa sổ Internet Explorer được mở bởi Invoke-WebRequest không? – Quanda

2

Thông điệp có thể được dập tắt bằng cách nới lỏng các cài đặt bảo mật trong các tùy chọn internet của bạn enter image description here

Bạn cũng có thể chỉ cần thêm một cho mỗi trang web tùy chọn pricavy cho trang web mà bạn đang sử dụng trong kịch bản của bạn, thay vì cho phép tất cả cookie.

Trái ngược với -UseBasicParsing Bạn sẽ tiếp tục phân tích cú pháp do trình khám phá internet cung cấp. (Với chi phí bảo mật được nới lỏng)

Các vấn đề liên quan