Reputation: 865
How Can I perform Invoke-WebRequest or similar, with Powershell so that NTLM authentication is used but also supply a body for a post.
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"
Using -UseDefaultCredentials only works for Gets, not for posts.
The remote server returned an error: (401) Unauthorized
Upvotes: 13
Views: 17981
Reputation: 456
Just use -UseDefaultCredentials
.
Trying to manipulate the headers for NTLM is hard work. It is a challenge response that is painful. Let PS do the work...
Upvotes: 17