Это намного позже, чем первоначальный вопрос, но все еще актуальный ответ для более поздних версий PowerShell. Начиная с версии 3, у нас есть два пункта, которые могут решить эту проблему:
Invoke-WebRequest - заменяет использование system.net.webclient практически для каждого сценария
$ PSDefaultParameterValues - который может хранить детали для параметров
Как использовать их вместе для решения исходной проблемы настроек прокси, управляемых сетевой политикой (или сценарием) и не требующих изменения сценариев ps в дальнейшем?
Invoke-WebRequest поставляется с параметрами -Proxy и -ProxyUseDefaultCredentials.
Мы храним наши ответы на эти параметры в $ PSDefaultParameterValues, например:
$PSDefaultParameterValues.Add('Invoke-WebRequest:Proxy','http://###.###.###.###:80')
$PSDefaultParameterValues.Add('Invoke-WebRequest:ProxyUseDefaultCredentials',$true)
Вы можете заменить ' http: //###.###.###.###: 80 ' на $ proxyAddr, как хотите. В какой области вы решите хранить это, это ваш выбор. Я поместил их в свой профиль $, поэтому мне больше никогда не придется устанавливать эти элементы в моих сценариях.
Надеюсь, это кому-нибудь поможет!