我们的公司政策规定,用户必须拥有与通常的用户帐户不同的管理员帐户。我们可以将它们称为 CONTOSO\johndoe 和 CONTOSO\a-johndoe。计算机运行的是 Windows 10 Enterprise(版本 1607),PowerShell 版本为 5.1.14393。
为了测试目的,我将打开两个相邻的 PowerShell 窗口,第一个窗口只需单击 PowerShell 快捷方式即可打开,第二个窗口则需要右键单击快捷方式,选择“以管理员身份运行”,并在提示输入凭据时输入 CONTOSO\a-johndoe。
现在在正常的 PS 窗口中,如果我输入
Invoke-WebRequest -Uri www.google.com
它立即返回
StatusCode : 200
StatusDescription : OK
应该如此。在管理 PS 窗口上,大约 30 秒后它会返回以下内容:
Invoke-WebRequest: Unable to connect to the remote server
我无法确定管理员权限的 PS 为何无法访问互联网。到目前为止,我发现了以下问题:
- 我直接连接到互联网,中间没有任何代理
netsh winhttp show proxy
两个 PS 窗口均显示“直接访问(无代理服务器)”- 我发现没有针对用户的 GPO 会导致这种情况
- 我尝试创建一个本地管理员帐户(以绕过可能的 GPO),但结果是一样的
有什么想法我可能错过了什么或者要测试什么以及如何测试?
答案1
我们正在使用需要身份验证的 Web 代理,我发现在 Windows 10 中也有同样的行为。
我发现这是一个解决方法,在提升的 PowerShell 窗口中:
$req = [System.Net.HttpWebRequest]::Create("https://www.google.com")
$req.Proxy = [System.Net.WebRequest]::DefaultWebProxy
$req.Proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
此后,我发现其他网络请求验证正确。
答案2
由于您未使用代理,因此管理员帐户的 IE 可能会出现“首次运行”问题。您可以切换到-UseBasicParsing
仅使用 .NET Web 客户端而不是 IE,或者使用下面详述的方法之一DisableFirstRunCustomize
或等效方法。