Jak wykonać uwierzytelnione żądanie internetowe w Powershell?

W C# mogę zrobić coś takiego:

System.Net.WebClient w = new System.Net.WebClient();
w.Credentials = new System.Net.NetworkCredential(username, auth, domain);
string webpage = w.DownloadString(url);

Jest wersja Powershell tego, czy mam po prostu zadzwonić do CLR ?

 43
Author: Community, 2009-02-03

3 answers

PowerShell jest prawie dokładnie taki sam.

$webclient = new-object System.Net.WebClient
$webclient.Credentials = new-object System.Net.NetworkCredential($username, $password, $domain)
$webpage = $webclient.DownloadString($url)
 66
Author: Steven Murawski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-29 23:30:40

Dla tych, którzy potrzebują Powershell, aby zwrócić dodatkowe informacje, takie jak kod statusowy Http, oto przykład. Zawarte są dwa najbardziej prawdopodobne sposoby, aby przejść w poświadczeń.

Jest to nieco zmodyfikowana wersja tego więc odpowiedz:
Jak uzyskać numeryczne kody statusu HTTP w 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"
 26
Author: Ralph Willgoss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:38

W niektórych przypadkach uwierzytelnianie NTLM nadal nie będzie działać, jeśli zostanie podane poprawne poświadczenie.

Istnieje mechanizm, który unieważnia auth NTLM w WebClient, zobacz tutaj, aby uzyskać więcej informacji: System. Net. WebClient nie działa z uwierzytelnianiem Windows

Jeśli próbujesz powyższej odpowiedzi i nadal nie działa, postępuj zgodnie z powyższym linkiem, aby dodać rejestr, aby domena znalazła się na białej liście.

Post this here to save other ' s time;)

 2
Author: Colin Su,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-14 07:46:03