Windows计划任务调用powershell以调用401中的Web方法结果

时间:2017-01-31 16:52:04

标签: asp.net-mvc powershell iis windows-scheduler

在我的工作站上测试它。设置在我的帐户下执行的Windows任务。该任务只需调用一个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。我还需要在脚本中使用凭据吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

如果您在IIS中托管Web应用程序,则需要将用户凭据应用于应用程序池,以使其按预期运行。