web-dev-qa-db-ja.com

Powershellは投稿のためにNTLMでWebRequestを呼び出します

最初の質問

PowershellでInvoke-WebRequestなどを実行して、NTLM認証を使用するだけでなく、投稿の本文も提供するにはどうすればよいですか。

以下のコードサンプルは、invoke webリクエストを使用して応答を.jsonファイルにパイプする私のサンプル投稿です。ユーザー名とパスワードの変数は例に含まれていません。

$myURL = https://example.blah.etc
$params = @" {""EXAMPLE1":"STUFF"} "@ 

$Headers = @{ Authorization = "Basic {0}" -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $Username,$Password))) }


Invoke-WebRequest -Uri $myURL  -Headers $Headers -Method POST -ContentType "application/json" -Body  $params  | Select-Object -ExpandProperty Content > "C:\output.json"

更新

-UseDefaultCredentialsの使用は、Getsに対してのみ機能し、投稿に対しては機能しません。



エラー応答

リモートサーバーがエラーを返しました:(401)無許可

6
Murchie85

nTLMのヘッダーを操作しようとして-UseDefaultCredentialsを使用するのは大変な作業です。痛いのはチャレンジレスポンスです。 PSに仕事を任せてください...

7
markgamache