2009-02-03 42 views

回答

62

PowerShell幾乎完全一樣。

$webclient = new-object System.Net.WebClient 
$webclient.Credentials = new-object System.Net.NetworkCredential($username, $password, $domain) 
$webpage = $webclient.DownloadString($url) 
+1

這是否停止爲其他人工作,突然間? (401)未授權 – meffect 2015-09-21 21:37:19

+0

@meffect下面的評論幫助了我。 `$ webclient.Credentials = New-Object System.Management.Automation.PSCredential($ username,$ password)` – 2016-01-26 23:17:48

23

對於那些需要Powershell返回像Http StatusCode這樣的附加信息的例子。包括傳遞證書的兩種最可能的方式。

它的這個略加修改版本,以便回答:
How to obtain numeric HTTP status codes in PowerShell

$req = [system.Net.WebRequest]::Create($url) 
# method 1 $req.UseDefaultCredentials = $true 
# method 2 $req.Credentials = new NetworkCredential($username, $pwd, $domain); 
try 
{ 
    $res = $req.GetResponse() 
} 
catch [System.Net.WebException] 
{ 
    $res = $_.Exception.Response 
} 

$int = [int]$res.StatusCode 
$status = $res.StatusCode 
return "$int $status" 
2

在某些情況下,NTLM身份驗證,如果仍然給出了正確的憑證將無法正常工作。

有哪些會在Web客戶端無效NTLM身份驗證,在這裏看到更多信息的機制:System.Net.WebClient doesn't work with Windows Authentication

如果你想上面的回答,它仍然沒有工作,按照上面的鏈接,添加註冊表,使域列入白名單。

發佈這個以節省其他人的時間;)