调用 powershell 调用 Web 方法的 Windows 计划任务会导致 401


在我的

工作站上测试这个。 设置在我的帐户下执行的窗口任务。 该任务只是调用一个 powershell 脚本,该脚本内部调用了一个 url。 Web 应用在 Windows 身份验证下运行,因此我来自 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。 我是否仍需要在脚本中使用凭据?

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

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

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

如果要在 IIS 中承载 Web 应用程序,则需要将用户凭据应用于应用程序池,以便它按预期运行。

最新更新