【发布时间】:2021-09-01 13:27:50
【问题描述】:
我在尝试在 PowerShell 7 中使用 Invoke-RestMethod 命令时遇到了问题。我可以让它在 PowerShell 5.1 中正常运行,但 7 给我一个 401 - Unauthorized 消息。
这是 PowerShell 5.1 的命令:
Invoke-RestMethod "http://internalServer/api/job?name=testJob" -Method GET -UseDefaultCredentials -ContentType "application/JSON"
这是 PowerShell 7 的命令:
Invoke-RestMethod "http://internalServer/api/job?name=testJob" -Method GET -UseDefaultCredentials -ContentType "application/JSON" -AllowUnencryptedAuthentication
API 托管在使用 Windows 身份验证的内部服务器上。当我通过 Fiddler 跟踪请求时,这两个命令似乎都得到了 401 响应,但 PowerShell 5.1 使用该响应生成 Authorization: Negotiate YII{token} 标头,而 PowerShell 7 停止并返回错误。有没有其他人遇到过这种情况?
【问题讨论】:
-
没有重定向是吗?
-
另外,如果你设置
$env:DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER = 0,它是否可以在PS Core中工作? -
当他们提交第一个请求时,他们都会收到 301 响应,之后命令发出的请求是他们收到 401 响应的地方。
-
啊,那我有你的解决方案了
-
更改环境变量后仍然出现 401 错误
标签: powershell powershell-core invoke-restmethod