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 ?
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)
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"
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;)
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