0

我在办公室工作,必须使用 http 代理才能访问互联网。

是否有任何 $PSvariable 或环境变量会告诉 powershell 在请求外部资源时使用 http 代理?(就像 linux 中的 http_proxy env var : )http_proxy=http://username:password@host:port/
export http_proxy

我知道我可以为 webclient 做

$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$web = New-Object System.Net.WebClient
$web.proxy = $proxy

, 为 pssessions 做

$PSSessionOption = New-PSSessionOption -ProxyAccessType IEConfig -ProxyAuthentication Negotiate -ProxyCredential Domain\User

但有时我找不到任何解决方案,例如如何update-help |save-help 通过代理使用?

4

3 回答 3

1

PowerShell(以及 Windows 上的大多数其他东西)将使用 Internet Explorer 中配置的代理设置。正确设置它应该可以工作;您可能需要使用 IE 访问一些站点,以确保处理任何身份验证。

于 2012-12-20T11:36:47.240 回答
1

回答是因为我没有足够的声誉来发表评论。

如果您使用代理配置文件,而不是直接设置代理设置,这将不起作用。事实上,即使直接指定代理,我也无法让它工作。

我看到的唯一解决方案来自 Ravikanth Chaganti

Save-Help 困境和解决方案

有一个 MS Connect 请求修复此问题: MS Connect

于 2013-06-21T17:51:08.320 回答
0
I use the following script for Update-Help for Computers behind a proxy with authentication:
# -------------------------------
#Requires -RunAsAdministrator
$wc = New-Object System.Net.WebClient
$proxyUserName  = Read-Host -Prompt "Proxy User Name"
$proxySecPasswd = Read-Host -Prompt "Password für $proxyUserName"  -AsSecureString
$credentials = New-Object System.Management.Automation.PSCredential($proxyUserName, $proxySecPasswd)
$wc.Proxy.Credentials = $credentials
Update-Help -UICulture 'en-US'
# -------------------------------
于 2015-08-04T08:59:12.163 回答