"Mo"
Published on

A simple function to get a WebClient (with proxy) in PowerShell

Authors

I was browsing around a few days ago and came across a link to a blog post on the SAPIEN website about searching live.com from PowerShell. Sounds cool, I think, so I download it to try it out only to be thwarted by the proxy at work.

There are a lot of scripts out there that use the System.Net.WebClient and the vast majority don’t take proxies into account. To get around this issue, here’s a simple script that I wrote to help out:

function Get-ProxyWebClient {
  $webclient = New-Object System.Net.WebClient
  $proxy = New-Object System.Net.WebProxy($global:ProxyUrl, $global:ProxyPort)
  $proxy.Credentials = (Get-Credential).GetNetworkCredential()
  $webclient.Proxy = $proxy
  return $webclient
}

This script makes the assumption that you’ve already predefined the $global.ProxyUrl and $global.ProxyPort variables in your profile. It is also nice for me because it prompts me for my credentials instead of having them hard-coded in the script or in my profile.

Now I can also check the weather from PowerShell using the Show-Weather script that the guys at SAPIEN provided in their über-prompt post.