PS C:\Users\Manuel Zarat> C:\Users\Manuel Zarat\Desktop\eas.ps1 Target: https://eas.akm.at/Microsoft-Server-ActiveSync User: D2000\\jango.zarat Count: 20 Delay: 100ms Timeout: 10s [13:46:23.900] # 1 -> HTTP 401 (1156 ms) [13:46:25.197] # 2 -> HTTP 401 (1187 ms) [13:46:26.485] # 3 -> HTTP 401 (1181 ms) [13:46:27.753] # 4 -> HTTP 401 (1159 ms) [13:46:29.014] # 5 -> HTTP 401 (1147 ms) [13:46:30.271] # 6 -> HTTP 401 (1151 ms) [13:46:31.550] # 7 -> HTTP 401 (1161 ms) [13:46:32.821] # 8 -> HTTP 401 (1167 ms) [13:46:34.072] # 9 -> HTTP 401 (1141 ms) [13:46:35.328] # 10 -> HTTP 401 (1153 ms) [13:46:36.606] # 11 -> HTTP 401 (1168 ms) [13:46:37.876] # 12 -> HTTP 401 (1175 ms) [13:46:39.153] # 13 -> HTTP 401 (1151 ms) [13:46:40.395] # 14 -> HTTP 401 (1146 ms) [13:46:41.684] # 15 -> HTTP 401 (1188 ms) [13:46:42.964] # 16 -> HTTP 401 (1167 ms) [13:46:44.219] # 17 -> HTTP 401 (1162 ms) [13:46:45.651] # 18 -> HTTP 401 (1306 ms) [13:46:46.909] # 19 -> HTTP 401 (1156 ms) [13:46:48.180] # 20 -> HTTP 401 (1166 ms) PS C:\Users\Manuel Zarat>
Hallo Besucher! Willkommen in diesem kleinen Wiki rund um IT. Vieles ist noch unvollständig, unstrukturiert oder vielleicht sogar falsch bzw. irreführend.
Du kannst Artikel gerne ergänzen oder verbessern. Gerne mit so vielen Links wie nötig. Bitte keine Werbelinks und nur selbst verfasste oder lizenzfreie Texte! Copyright beachten!
Eine Liste von Seiten die noch erstellt werden müssen.
<# PowerShell 5.1 – EAS Basic-Auth Test (sendet IMMER weiter, auch bei 429) Optional: - -IgnoreCertErrors (nur Test!) - -LogHeaders um X-EAS-FAIL / X-Blocked-By etc. zu sehen, falls du die in HAProxy setzt. #> param( [string]$Url = "https://eas.akm.at/Microsoft-Server-ActiveSync", [string]$Username = "D2000\\jango.zarat", [string]$Password = "Lunikoff0310!", [int]$Count = 20, [int]$DelayMs = 100, [int]$TimeoutSec = 10, [switch]$IgnoreCertErrors, [switch]$LogHeaders ) # TLS 1.2 erzwingen [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # Optional: Zertifikatsfehler ignorieren (nur Tests) if ($IgnoreCertErrors) { [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true } } function New-BasicAuthValue { param([string]$User, [string]$Pass) $pair = "{0}:{1}" -f $User, $Pass $b64 = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($pair)) return "Basic $b64" } $auth = New-BasicAuthValue -User $Username -Pass $Password Write-Host ("Target: {0}" -f $Url) Write-Host ("User: {0}" -f $Username) Write-Host ("Count: {0} Delay: {1}ms Timeout: {2}s" -f $Count, $DelayMs, $TimeoutSec) Write-Host "" for ($i=1; $i -le $Count; $i++) { $sw = [Diagnostics.Stopwatch]::StartNew() $code = -1 $err = $null $h = @{} try { $req = [System.Net.HttpWebRequest]::Create($Url) $req.Method = "GET" $req.AllowAutoRedirect = $false $req.Timeout = $TimeoutSec * 1000 $req.ReadWriteTimeout = $TimeoutSec * 1000 $req.UserAgent = "EAS-Test/PS5.1" $req.Headers.Add("Authorization", $auth) $req.Headers.Add("MS-ASProtocolVersion", "14.1") $resp = $req.GetResponse() $code = [int]$resp.StatusCode if ($LogHeaders) { foreach ($k in $resp.Headers.AllKeys) { $h[$k] = $resp.Headers[$k] } } $resp.Close() } catch [System.Net.WebException] { if ($_.Exception.Response) { $resp = $_.Exception.Response $code = [int]$resp.StatusCode if ($LogHeaders) { foreach ($k in $resp.Headers.AllKeys) { $h[$k] = $resp.Headers[$k] } } $resp.Close() } else { $err = $_.Exception.Message } } catch { $err = $_.Exception.Message } $sw.Stop() $ts = (Get-Date).ToString("HH:mm:ss.fff") if ($code -eq -1) { Write-Host ("[{0}] #{1,4} -> HTTP -1 ({2} ms) ERROR={3}" -f $ts, $i, $sw.ElapsedMilliseconds, $err) } else { if ($LogHeaders) { $xFail = $h["X-EAS-FAIL"] $xBlk = $h["X-Blocked-By"] $extra = @() if ($xFail) { $extra += ("X-EAS-FAIL={0}" -f $xFail) } if ($xBlk) { $extra += ("X-Blocked-By={0}" -f $xBlk) } $suffix = "" if ($extra.Count -gt 0) { $suffix = " " + ($extra -join " ") } Write-Host ("[{0}] #{1,4} -> HTTP {2} ({3} ms){4}" -f $ts, $i, $code, $sw.ElapsedMilliseconds, $suffix) } else { Write-Host ("[{0}] #{1,4} -> HTTP {2} ({3} ms)" -f $ts, $i, $code, $sw.ElapsedMilliseconds) } } # WICHTIG: NICHT abbrechen bei 429 – weiter senden Start-Sleep -Milliseconds $DelayMs }