PowerShell Invoke-WebRequest (не отправляются куки)

Здравствуйтe. Если копировать любой запрос как PowerShell (POST или GET - не важно), то при отправке почему-то «теряются» куки - они не приходят на сервер.

Запрос выглядит следующим образом:

Invoke-WebRequest -Uri "https://example.com/" -Headers @{
"method"="GET"
  "authority"="example.com"
  "scheme"="https"
  "path"="/"
  "pragma"="no-cache"
  "cache-control"="no-cache"
  "sec-ch-ua"="`"Google Chrome`";v=`"89`", `"Chromium`";v=`"89`", `";Not A Brand`";v=`"99`""
  "sec-ch-ua-mobile"="?0"
  "upgrade-insecure-requests"="1"
  "user-agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"
  "accept"="text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
  "sec-fetch-site"="none"
  "sec-fetch-mode"="navigate"
  "sec-fetch-user"="?1"
  "sec-fetch-dest"="document"
  "accept-encoding"="gzip, deflate, br"
  "accept-language"="ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7"
  "cookie"="test1=none; test2=none"
}

Можете сказать, в чём причина?


Ответы (1 шт):

Автор решения: spammm

В оф. справке Microsoft сказано, что куки отправляются с помощью Microsoft.PowerShell.Commands.WebRequestSession:

$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$c = New-Object System.Net.Cookie('cookieName','cookieValue','/', ($domain))
$session.Cookies.Add($c);
Invoke-WebRequest -Uri "https://example.com/" -WebSession $session -Headers ...
→ Ссылка