2009-02-03 3 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

+0

@meffect Следующий комментарий помог мне. '$ webclient.Credentials = New-Object System.Management.Automation.PSCredential ($ username, $ password)' –

+3

Обратите внимание, что если вы просто хотите использовать текущие учетные данные для входа (например, для доступа к аутентифицированному серверу в интрасети) , вы можете использовать '$ webclient.UseDefaultCredentials = $ true' (как в [ответе Ральфа] (http://stackoverflow.com/a/12421075/1443496)). –

23

Для тех, кому нужна Powershell для возврата дополнительной информации, такой как Http StatusCode, приведен пример. Включены два наиболее вероятных способа передачи учетных данных.

Его слегка модифицированная версия этого SO ответ:
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" 
+1

Отличный дополнительный ответ, это было именно то, что я искал. – LimpingNinja

+2

Возможно, я ошибаюсь, но мне пришлось заменить 'new NetworkCredential' на' $ passwd = ConvertTo-SecureString 'nowisthetime4U "-AsPlainText -Force ;, за которым следует' $ request.Credentials = New-Object System.Management.Automation.PSCredential («pwatson_at_phs_org», $ passwd); ' – lit

2

В некоторых аутентификации NTLM случае еще не будет работать, если даны правильные учетные данные.

Там есть механизм, который аннулирует NTLM авторизацию в WebClient, смотрите здесь для получения дополнительной информации: System.Net.WebClient doesn't work with Windows Authentication

Если вы пытаетесь выше ответ, и это до сих пор не работает, следуйте приведенным выше ссылке, чтобы добавить реестра, чтобы сделать домен белый список.

Отправляйте это здесь, чтобы сэкономить время;)

Смежные вопросы