工作站上测试这个。 设置在我的帐户下执行的窗口任务。 该任务只是调用一个 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 应用程序,则需要将用户凭据应用于应用程序池,以便它按预期运行。