Published on

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


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.ProxyUrlandglobal.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.