PowerShell HTTP Request – was ist das? In der heutigen IT-Welt kommst Du als Administrator kaum noch ohne Webschnittstellen (APIs) aus – sei es zum Abrufen von Statusinformationen, zur Automatisierung von Cloud-Diensten oder zur Kommunikation mit Tools wie Microsoft 365, Exchange Online oder anderen Web-Services.
Diese Anleitung zeigt dir, wie Du mit PowerShell HTTP-Anfragen sendest und Webdaten abrufst. Dabei wird das Cmdlet Invoke-RestMethod, verwendet, das besonders für JSON-basierte APIs geeignet ist.
Was ist ein HTTP Request?
Ein HTTP Request (zu Deutsch: HTTP-Anfrage) ist eine Anfrage, die ein Client – in unserem Fall die PowerShell – an einen Webserver stellt. Der Server liefert dann eine Antwort zurück. Es gibt verschiedene Typen von Anfragen, z. B.:
- GET – Ruft Informationen ab (z. B. Daten einer API)
- POST – Sendet Daten an den Server (z. B. zur Erstellung von Objekten)
- PUT / PATCH – Ändert bestehende Daten
- DELETE – Löscht Daten
Diese Prinzipien sind bei REST-APIs (Representational State Transfer) üblich – also modernen Webschnittstellen, die Du mit PowerShell hervorragend ansprechen kannst.
PowerShell Cmdlets für HTTP Requests
Die zwei wichtigsten Cmdlets, die Du kennen solltest:
Invoke-WebRequest– eignet sich für das Abrufen von Webseiteninhalten (HTML, Dateien)Invoke-RestMethod– speziell für APIs, liefert automatisch konvertierte JSON-Antworten als PowerShell-Objekte
In der Praxis wirst Du fast immer mit Invoke-RestMethod arbeiten, wenn Du mit REST-APIs zu tun hast.
Beispiel 1 – Öffentliche API abfragen
In diesem Beispiel wird ein einfacher GET-Request verwendet. Dabei wird eine öffentliche API verwendet, die zufällige Fakten über Katzen liefert:
$response = Invoke-RestMethod -Uri "https://catfact.ninja/fact"
$response.fact

Was passiert hier bei dem PowerShell HTTP Request?
Du fragst eine REST-API ab und bekommst eine zufällige Katzenfakt-Antwort als Text. Die Antwort wird direkt in ein PowerShell-Objekt umgewandelt.
Beispiel 2 – Daten an eine API senden (POST)
Wenn Du z. B. mit einem Ticketsystem oder einer internen API arbeitest, wirst Du oft Daten senden müssen:
$body = @{
name = "Max Mustermann"
email = "max@beispiel.de"
} | ConvertTo-Json
Invoke-RestMethod -Uri "https://example.com/api/users" -Method POST -Body $body -ContentType "application/json"
Hier sendest Du ein JSON-Objekt an die API. Achte darauf, ConvertTo-Json zu nutzen und den ContentType korrekt zu setzen.
Beispiel 3 – Authentifizierte Anfrage (Bearer Token)
Viele APIs, z. B. von Microsoft, verlangen eine Authentifizierung. Du benötigst oft ein Token, das Du im Header mitsendest:
$headers = @{
Authorization = "Bearer DeinZugriffsToken"
}
$response = Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/me" -Headers $headers
$response.displayName
Tipp für Admins: Für Microsoft Graph kannst Du Dir das Token über Azure AD oder ein Tool wie MSAL.PS holen.
Überblick: häufige Parameter und Optionen für den PowerShell HTTP Request
| Parameter | Bedeutung |
|---|---|
-Uri
| Die Ziel-URL |
-Method
| GET, POST, PUT, DELETE |
-Headers
| HTTP-Header (z. B. Authentifizierung) |
-Body
| Inhalt der Anfrage (z. B. JSON) |
-ContentType
|
Art des Inhalts (z. B. application/json)
|
-OutFile
|
Zum Speichern von Dateien (Invoke-WebRequest)
|
PowerShell HTTP Request im IT-Alltag
Als angehender IT-Administrator wirst Du HTTP-Requests z. B. benötigen für:
- Microsoft Graph API (Benutzerdaten, Kalender, Teams)
- Automatisierung von Cloud-Ressourcen (Azure, Intune)
- Zugriff auf interne REST-Services (z. B. Helpdesk-Systeme)
- Statusabfragen von Netzwerksystemen oder IoT-Geräten
Je besser Du die Funktionsweise von Invoke-RestMethod verstehst, desto effizienter kannst Du moderne Umgebungen automatisieren und analysieren.
Fazit und Ausblick
PowerShell HTTP Request ist ein Muss für jeden, der mit modernen Systemen arbeitet. Du kannst damit APIs abfragen, Daten senden und Prozesse automatisieren – und das mit minimalem Code. Übe regelmäßig mit öffentlichen APIs, um ein Gefühl für Struktur und Antwortformate zu bekommen.
Wenn Du tiefer einsteigen willst, lohnt sich ein Blick in die API-Dokumentationen (z. B. Microsoft Graph oder REST-Dienste von Drittanbietern).
Tipp: Nutze Tools wie Postman, um API-Requests vorab zu testen – danach kannst Du sie einfach in PowerShell nachbauen.










