SSRSDeploymentTool · v4.0 · 2026
.rdl, .rds, .rsds deployen. Power BI Report Server. Migration.
Uwe Janke · Senior IT-Spezialist · SQL Server & PowerShell Automation
Uebersicht
Deployt SSRS-Berichte (.rdl, .rds, .rsds) von lokalen Dateien auf SSRS- oder PBIRS-Server via REST API. WinForms-GUI - kein Kommandozeilen-Wissen erforderlich.
| Merkmal | v3.x v3 | v4.0.0 NEU |
|---|---|---|
| Datei-Typen | .rdl / .rds / .rsds | .rdl / .rds / .rsds / .pbix |
| Power BI Deploy | nein | ja - PBIRS multipart POST |
| Server-Erkennung | manuell | PBIRS Auto-Detection via API |
| Migration | nein | SSRS → PBIRS (neuer Tab) |
| GUI | 1 Tab | 2 Tabs: Deploy + Migration |
| Codeumfang | 1.012 Zeilen | 1.526 Zeilen |
Datei-Typen
Report Definition Language. Paginierte Berichte. SSRS und PBIRS.
Data Source / Shared Dataset. Verbindungsdefinitionen und wiederverwendbare Datenbasis.
Power BI Desktop Report. Nur PBIRS. Interaktive Dashboards und Analysen.
| Format | SSRS (klassisch) | PBIRS (Power BI Report Server) | Deploy-Methode |
|---|---|---|---|
| .rdl | ✓ | ✓ | PUT /Reports/api/v2.0/Reports |
| .rds | ✓ | ✓ | PUT /Reports/api/v2.0/DataSources |
| .rsds | ✓ | ✓ | PUT /Reports/api/v2.0/DataSets |
| .pbix | ✗ nicht unterstuetzt | ✓ | POST /Reports/api/v2.0/PowerBIReports |
Neue Funktionen v4.0
# 1. System-Endpunkt abfragen
GET /Reports/api/v2.0/System
# Antwort bei PBIRS:
{
"ProductName": "Microsoft Power BI
Report Server",
"ProductVersion": "15.0.1115.93"
}
# Antwort bei SSRS:
{
"ProductName": "Microsoft SQL Server
Reporting Services"
}
# 2. Power BI Report hochladen
POST /Reports/api/v2.0/PowerBIReports
Content-Type: multipart/form-data
Body:
file = <pbix-Binaerinhalt>
# PowerShell-Implementierung:
$client = [System.Net.Http.HttpClient]::new()
$content = [System.Net.Http.
MultipartFormDataContent]::new()
$bytes = [System.IO.File]::ReadAllBytes(
$pbixPath)
$content.Add($byteContent, "file",
$fileName)
Benutzeroberflaeche
Windows Auth automatisch - ProductName wird ermittelt und angezeigt.
.pbix ist bei reinem SSRS ausgegraut. Bei PBIRS aktiv.
ListView zeigt alle Dateien im lokalen Quellordner. Einzeln an-/abwaehlen.
Direkteingabe oder TreeView-Browser. Ordner wird angelegt wenn nicht vorhanden.
Jede Datei: CREATED / UPDATED / SKIP / ERROR im Log.
Neue Funktionen v4.0
Export auf lokales Zwischenverzeichnis - dann Deploy auf Ziel-Server.
Migration
Windows Auth. Verbindungstest via GET /api/v2.0/System.
TreeView links befuellt sich mit allen Ordnern des Quell-Servers.
GET /Reports (Content als Base64) - lokale Dateien werden geschrieben.
Optional: Dateien im Explorer inspizieren. Connection Strings anpassen. Rollback moeglich - einfach Dateien loeschen.
Ordnerstruktur wird angelegt. Dateien werden einzeln deployt. Log: CREATED / UPDATED / ERROR pro Datei.
Migration - Detail
Beim Export werden .rds-Dateien aus der REST-API-Antwort (JSON) als XML rekonstruiert. Connection Strings koennen dabei per Regex ersetzt werden.
| Suchen (Regex) | Ersetzen durch |
|---|---|
| ssqlprod17\INST01 | pbirs-server\INST01 |
| Data Source=DEV02 | Data Source=PROD-PBIRS |
| Initial Catalog=ReportDB | Initial Catalog=ReportDB_P |
| <+ neue Zeile> |
Mapping wird waehrend des Exports auf alle .rds Connection Strings angewendet.
Jede Zeile ist ein eigenes Suchen/Ersetzen-Paar. Reihenfolge beachten bei ueberlappenden Mustern.
Ergebnis im Zwischenverzeichnis als .rds XML sichtbar und editierbar.
Sicherheit & Zugriff
Kein Konfigurationsaufwand. UseDefaultCredentials = true. Ausreichend fuer On-Premise SSRS und PBIRS in Windows-Domaene.
# Automatisch - kein Passwort
$cred = [System.Net.
CredentialCache]::
DefaultNetworkCredentials
# HttpClient (fuer .pbix)
$handler.Credentials =
[System.Net.
CredentialCache]::
DefaultCredentials
Benutzername und Passwort in der GUI eingeben. Wird als NetworkCredential uebergeben. Fuer Konten ausserhalb der aktuellen Domaene.
| Szenario | Empfohlene Auth | Hinweis |
|---|---|---|
| On-Premise SSRS in Windows-Domaene | Windows Auth | Standardfall - kein Aufwand |
| On-Premise PBIRS in Windows-Domaene | Windows Auth | Identisch zu SSRS |
| Anderes Domaenen-Konto | Manuell | Benutzername/Passwort in GUI |
| Azure AD / AAD | Nicht unterstuetzt | Roadmap: v5.x |
Architektur
| Komponente | Details |
|---|---|
| WinForms GUI | TabControl, TreeView, DataGridView, ListView, RichTextBox (Log) |
| REST Client | Invoke-WebRequest (.rdl / .rds) + System.Net.Http.HttpClient (.pbix) |
| API | SSRS / PBIRS REST API v2.0 - identischer Endpunkt auf beiden Servern |
| Binary Download | Invoke-WebRequest -OutFile (RDL / RSDS binary, Base64 decode) |
| PBIX Upload | MultipartFormDataContent via HttpClient |
| PS Version | PowerShell 5.1 - kein PSCore-Zwang, kein Add-Type problematisch |
| Authentifizierung | DefaultCredentials (Windows) oder NetworkCredential (manuell) |
| Encoding | UTF-8 mit BOM (.ps1) - kein em-dash in String-Literalen |
# Server-Info
GET /api/v2.0/System
# Ordner-Inhalt
GET /api/v2.0/Folders({id})/
CatalogItems
# Report hochladen
POST /api/v2.0/Reports
# Report ueberschreiben
PUT /api/v2.0/Reports({id})
# Power BI Report hochladen
POST /api/v2.0/PowerBIReports
# Data Source anlegen
POST /api/v2.0/DataSources
# Ordner anlegen
POST /api/v2.0/Folders
Entwicklung
| Version | Status | Funktionen | Umfang |
|---|---|---|---|
| v1.x / v2.x | Archiv | Erste WinForms-GUI, grundlegendes Deploy via SOAP/REST | ~500 Zeilen |
| v3.0.1 v3 | Stabil | SSRS Deploy (.rdl, .rds, .rsds), GUI-Ueberarbeitung, Windows Auth, manuelle Credentials | 1.012 Zeilen |
| v4.0.0 NEU | Aktuell | + .pbix Deploy auf PBIRS, + PBIRS Auto-Detection, + Migration-Tab, + Connection String Mapping, + DataGridView Mapping | 1.526 Zeilen |
| v4.x | Geplant | Praxistest in Produktionsumgebung, Fehlerbehandlung verfeinern, Edge Cases abdecken | tbd |
| v5.x | Roadmap | OAuth / AAD-Unterstuetzung, .pbix Migration, Batch-Modus ohne GUI | tbd |
Zusammenfassung
.rdl / .rds / .rsds / .pbix auf SSRS oder PBIRS - ein Tool, alle Formate. Auto-Detection entscheidet welche Funktionen aktiv sind.
SSRS nach PBIRS in wenigen Klicks. Export - pruefen - Deploy. Lokales Zwischenverzeichnis fuer Transparenz und Rollback.
Windows Auth ohne Konfiguration. SKIP statt Error bei falschem Server-Typ. Zwischenverzeichnis vor Deploy pruefbar.
| Aufgabe | Tool-Funktion |
|---|---|
| Neue Reports ausrollen | Deploy-Tab |
| Reports aktualisieren | Deploy-Tab (PUT) |
| Power BI Reports deployen | Deploy-Tab (.pbix) |
| SSRS nach PBIRS migrieren | Migration-Tab |
| Connection Strings anpassen | Mapping-Tabelle |