PowerShell Web请求,而不会在4xx / 5xx上抛出exception

我正在写一个PowerShell脚本,需要做一个Web请求,并检查响应的状态代码。

我试过写这个:

$client = new-object system.net.webclient $response = $client.DownloadData($url) 

以及这个:

 $response = Invoke-WebRequest $url 

但是只要网页的状态码不是成功状态码,PowerShell就会继续并引发exception,而不是给我实际的响应对象。

即使加载失败,我如何获得页面的状态码?

尝试这个:

 try { $response = Invoke-WebRequest http://localhost/foo } catch { $_.Exception.Response.StatusCode.Value__} 

这是一个令人失望的,这是抛出一个例外,但事实就是这样。