Windows定时任务调用powershell调用web方法结果401

Windows scheduled task invoking powershell to call web method results in 401

正在我的工作站上进行测试。设置在我的帐户下执行的 windows 任务。该任务只是调用一个 powershell 脚本,该脚本调用了内部的 url。 Web 应用程序在 windows 身份验证下 运行ning,所以我从 windows 任务获得的凭据不应该用于调用 powershell 脚本吗?我是我自己工作站上的本地管理员。

powershell 脚本是这样的:

# Setup reference to source folder, routes to api
$web = New-Object System.Net.WebClient
$order_api = "http://localhost:57110/Home/ManualInventory"
$order_response = $web.DownloadString($order_api);
#  TEST
Read-Host -Prompt "Press Enter to exit"

当我 运行 任务时,出现 http 401 错误,好像 powershell 脚本无法访问 url。我是否仍需要在脚本中使用凭据?

如果您在 IIS 中托管 Web 应用程序,您将需要将您的用户凭据应用到应用程序池,以便如您所料运行。

您可以尝试使用 Invoke-WebRequest 并通过它传递默认凭据。例如:

$request = Invoke-WebRequest -Uri "http://localhost:57110/Home/ManualInventory" -UseDefaultCredentials -Method Get

然后您可以通过 $request.Content 访问其内容。我在我可以访问的内部网站上对此进行了测试,该网站需要 windows 身份验证。