INITIAL QUESTION
How Can I perform Invoke-WebRequest or similar, with Powershell so that NTLM authentication is used but also supply a body for a post.
EXAMPLE
The code sample below is my example post using invoke web request and pipes response out to a .json file. Username and Password Variable not included in example.
$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"
UPDATE
Using -UseDefaultCredentials only works for Gets, not for posts.
ERROR RESPONSE
The remote server returned an error: (401) Unauthorized
Using -UseDefaultCredentials only works for Gets, not for posts.
-- You can perform NTLM-auth with GET, save the session to a variable (use-SessionVariable
) and then do POST using saved session. – n01d