如果我在我的计算机上以用户DOMAIN\automatic
的方式运行IE,则网址有效:
right click IE
shift + right click "Internet Explorer" in the menu
run as different user
打开网址http://server/ClearCache时没有问题。
当我对powershell执行相同操作并再次以DOMAIN\automatic
运行时,将运行以下脚本:
$url = "http://server/ClearCache"
$req = [system.Net.WebRequest]::Create($url)
$req.UseDefaultCredentials = $true
$res = $req.GetResponse()
$res
路径ClearCache在控制器中有[AllowAnonymous]
。
当我以用户DOMAIN\automatic
登录到需要运行powershell脚本(sql server agent job step)并在powershell中运行脚本的远程桌面服务器时,我得到:
异常调用" GetResponse"用" 0"参数:"遥控器 服务器返回错误:(400)错误请求。"在行:1个字符:1 + $ res = $ req.GetResponse() + ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:WebException
在IE中打开网址会给我回复400 Bad Request。
这似乎与服务器上的IE配置文件有关,因为服务器上的Chrome可以打开网址。
是否有人知道我需要更改选项范围内的reg键或设置以使其工作?
感谢您阅读我的问题。
[UPDATE]
尝试在我的凭据下运行时,我仍然会收到400错误,所以不要认为是因为身份验证:
$url = "http://server/ClearCache"
$req = [system.Net.WebRequest]::Create($url)
# $req.UseDefaultCredentials = $true
$passwd = ConvertTo-SecureString "password" -AsPlainText -Force;
$req.Credentials = New-Object System.Management.Automation.PSCredential ("myAccount", $passwd);
$res = $req.GetResponse()
$res
答案 0 :(得分:0)
不确定问题是什么或为什么它在Chrome中有效但不在IE中。由于响应主体(当你按F12时可以看到IE devtools中的响应主体)说“主机名无效”我尝试在C:\Windows\System32\drivers\etc\hosts
中添加一些DNS绑定,如127.0.0.1 myserver
并取消注释localhost但没有结果
最后用ip地址替换服务器名称并解决了它(xxx是ip地址的数量):
$url = "http://xxx.xxx.xxx.xxx/ClearCache"