SQL Server Setup Tool
Vollautomatische, domänenspezifische SQL Server Installation nach FI-TS Standard — von der Quelldatei bis zur gehärteten, überwachten Produktionsinstanz.
Was ist das SQL Server Setup Tool?
Das SQL Server Setup Tool standardisiert und automatisiert die vollständige Installation von Microsoft SQL Server in der FI-TS Bankenumgebung. Es ersetzt fehleranfällige manuelle Installationen durch einen geführten, reproduzierbaren Prozess — inklusive Laufwerksvorbereitung, Security Hardening und Wartungs-Automatisierung.
WinForms GUI
Einfach zu bedienende grafische Oberfläche. Alle Parameter per Maus konfigurierbar — kein PowerShell-Wissen erforderlich.
Domänenspezifisch
Automatische Erkennung der AD-Domäne (HLB, CONTOSO …). Sortierung, Laufwerke, Sysadmin-Gruppen und Monitoring werden domänenspezifisch vorbelegt.
FI-TS Laufwerkslayout
C: Binaries · F: System-DBs + Backup · G: Daten · H: Log · I: TempDB. Vollständig konfigurierbar, mit Domain-Override.
Security Hardening
SA-Obfuscation, AD-Sysadmin-Gruppen, NTFS-Berechtigungen, Policy-Aktivierung — alles Teil des automatischen PostInstall-Prozesses.
16 PostInstall-Schritte
Vollständige Härtung nach SQL-Setup: Performance-Parameter, TempDB-Optimierung, Agent-Konfiguration, Backup-Jobs, Monitoring-Key.
Optionale Komponenten
SSRS, SSAS, SSMS, SSIS und TDP werden nach dem Core-Setup einzeln nachinstalliert — je nach Checkbox-Auswahl im Formular.
Die grafische Oberfläche
Das Formular startet mit domänenspezifisch vorbeleten Werten und führt durch alle Konfigurationsschritte. Lange Operationen (Robocopy, SQL-Setup) laufen in einem separaten Hintergrundthread — die GUI bleibt jederzeit bedienbar.
| ① | Version & Edition — Comboboxen für SQL-Version (2019/2022/2025) und Edition (Developer/Standard/Enterprise). Edition-Liste passt sich automatisch an die gewählte Version an. Rechts: erkannte AD-Domäne. |
| ② | Instanzname — Leer oder MSSQLServer = Standardinstanz. Beliebiger Name = benannte Instanz (MSSQL$NAME). Button „Standard" setzt auf MSSQLServer zurück. |
| ③ | Sortierung — Vollständige Liste aus Config\collations.txt. Domänenspezifische Vorgabe (HLB → SQL_Latin1_General_CP1_CI_AS) steht automatisch an erster Position. |
| ④ | Service-Konto — Leer = NT SERVICE\MSSQLSERVER (empfohlen). Bei AD-Konto: Button „AD prüfen" validiert Existenz und Passwort. Achtung: zählt zur Lockout-Policy! |
| ⑤ | Plattenlayout — Laufwerksbuchstaben gemäß FI-TS Standard: C: Binaries, F: System-DBs+Backup, G: Daten, H: Log, I: TempDB. Werte editierbar; domänenspezifisches Override via INI möglich. |
| ⑥ | Monitoring — Drei Stufen: Kein Monitoring · Service Monitoring · Vollständiges Monitoring. Standard und domänenspezifischer Wert werden aus der INI gelesen. |
| ⑦ | Optionale Komponenten — Jede Checkbox ist nur sichtbar wenn in der INI aktiviert. SSMS und SSIS sind standardmäßig angehakt. SSIS wird als Feature IS in den SQL-Engine-Setup integriert. |
| ⑧ | Aktionen — „Quellen kopieren" startet Phase 1 (Robocopy). „Installation starten" führt Phasen 2–4 durch (Bestätigungsdialog erscheint vorher). Beide Operationen laufen im Hintergrundthread. |
| ⑨ | Protokoll — Echtzeit-Log aller Schritte (RichTextBox, Consolas, grün auf schwarz). Zeitstempel, Phasenmeldungen, Fehler und Warnungen erscheinen hier während die Installation läuft. |
Konfiguration — settings.ini
Alle Parameter werden zentral in Config\settings.ini gepflegt. Das Tool liest die INI beim Start, erkennt die AD-Domäne und wählt automatisch die passenden domänenspezifischen Werte. Kein Quellcode-Eingriff nötig.
[DiskLayout_NEWDOMAIN]-Block und Einträge in [Collations], [SysadminGroups] und [Monitoring] anlegen. Das Tool erkennt die Domäne automatisch und verwendet die neuen Werte.Wichtige INI-Sektionen
2022Vorselektierte Version im FormularDeveloperVorselektierte EditionMSSQLServerStandardinstanz-Name\\srv\SQLSourcesUNC-Pfad zu den InstallationsmedienC:\Program Files\Microsoft SQL ServerINSTALLSHAREDDIR — SQL-BinariesG:\Daten\SQL\MSSQLSERVER\DATABenutzerdatenbankdateien (.mdf, .ndf)H:\Daten\SQL\MSSQLSERVER\LOGTransaktionsprotokolle (.ldf)I:\Daten\SQL\MSSQLSERVER\DATA+LOGTempDB-DateienF:\Daten\SQL\Backup & F:\Microsoft SQL ServerBackups + INSTALLSQLDATADIR (System-DBs)Engine,FullText,ISSQL-Features — IS (SSIS) wird bei abgewählter Checkbox dynamisch entfernttrueSofortige Dateiinitialisierung — beschleunigt Dateioperationen erheblich2Initial; PostInstall optimiert auf CPU-Anzahl (4–8 Dateien)1024Initiale TempDB-Dateigröße in MBtrue / falseTCP aktiv, Named Pipes deaktivierttrueSQL Browser Service nach Install deaktivierensettings.ini enthält Lizenzschlüssel. Datei nur für berechtigte Administratoren zugänglich ablegen. Für den Share-Pfad (\\srv\SQLSources) Read-Zugriffssteuerung über AD-Gruppe empfohlen.Installationsablauf
Der Prozess gliedert sich in vier Phasen. Alle Phasen laufen im Hintergrundthread — das Formular bleibt bedienbar. Phase 1 kann separat vorab durchgeführt werden; Phasen 2–4 laufen sequenziell in einem Durchgang.
Vorbereitung
- Robocopy vom Share
- SQL_Install inkl. Updates
- SSRS, SSMS, TDP-Quellen
- Lokales Zielverzeichnis:
C:\SQLSources\SQL2022\
SQL Server Install
- Install-DbaInstance
- Verzeichnisse erstellen
- Slipstream-Updates
- Warten auf SQL-Bereitschaft
- IFI aktivieren
Optionale Komponenten
- SSAS (Setup.exe /AS)
- SSRS (eigener Installer)
- TDP-Client
- SSMS (unattended)
PostInstall
- NTFS-Berechtigungen
- Performance-Parameter
- Security Hardening
- Ola-Maintenance
- Monitoring-Key
Phase 2 — Wichtige Install-DbaInstance Parameter
| Parameter | Wert | Quelle |
|---|---|---|
| Feature | Engine, FullText, IS | [Installation] Features (IS entfällt bei abgewählter SSIS-Checkbox) |
| InstallPath | C:\Program Files\Microsoft SQL Server | InstallDrive + InstallSubPath |
| SystemDbPath | F:\Microsoft SQL Server | BackupDrive + SysDbSubPath = INSTALLSQLDATADIR |
| DefaultFile/LogPath | G:\Daten\SQL\MSSQLSERVER\DATA | DataDrive, LogDrive, TempDrive |
| AdminAccount | BUILTIN\Administrators | [Installation] SysAdminAccounts |
| PerformVolumeMaintenanceTasks | $true | [Installation] InstantFileInit = true |
| UpdateSourcePath | …\SQL_Install\Updates\ | Automatisch wenn Unterordner vorhanden (Slipstream) |
| SqlTempDbFileCount | 2 | [Installation] TempDbFileCount (PostInstall optimiert auf CPU-Basis) |
PostInstall — 16 Härtungsschritte
Der PostInstall-Prozess konfiguriert und härtet die frisch installierte SQL-Instanz nach FI-TS Standard. Kritische Schritte brechen den Prozess bei Fehler ab. Unkritische protokollieren eine Warnung und fahren fort.
NTFS-BerechtigungenKritisch
Invoke-sqmNtfsSetup — Dienstkonten via SMO/WMI ermitteln, NTFS setzen, Backup vorher erstellen.
Performance-ParameterKritisch
Max Memory = 90% RAM · MAXDOP = min(8, CPU) · Cost Threshold for Parallelism = 50
SQL Server AgentKritisch
Agent-Dienst auf AutoStart setzen und starten. Basis für alle nachfolgenden Job-Erstellungen.
TempDB-OptimierungKritisch
Dateianzahl = max(4, min(8, CPU-Anzahl)). Größe/Wachstum aus INI. Dateien auf I: verteilt.
Recovery-Modell FULLKritisch
Systemdatenbanken (master, msdb) auf FULL stellen via Invoke-sqmSetDatabaseRecoveryMode.
SQL Browser deaktivierenBedingt
Nur wenn BrowserSvcDisabled = true in INI. Fehler = Warnung, nicht kritisch.
AD-Sysadmin-GruppenBedingt
Domänenspezifische AD-Gruppe zur sysadmin-Rolle hinzufügen. Ergebnis steuert Schritt 8.
SA-ObfuscationBedingt
Nur wenn Schritt 7 mind. eine Gruppe zugewiesen hat. SA umbenennen + Zufallspasswort setzen.
Monitoring-KeyKritisch
Registry-Schlüssel via Invoke-sqmMonitoringKey. Typ 0/1/2 aus Formular-Auswahl.
Instanz-ValidierungKritisch
Best-Practice-Check (Get-sqmSQLInstanceCheck): Konfiguration, Dienststatus, Erreichbarkeit.
Custom PostInstall-ScriptOptional
Wenn Config\Scripts\PostInstall.ps1 vorhanden: standortspezifische Erweiterungen ohne Tool-Eingriff.
Ola Hallengren SetupOptional
GitHub (neueste Version) oder lokaler Fallback (OlaSourcePath). Basis für Schritte 13–15.
Maintenance JobsOptional
IndexOptimize - USER_DATABASES · IntegrityCheck - ALL_DATABASES (New-sqmOlaMaintenanceJobs).
System-DB Backup JobOptional
FITS-SystemDatabases-FULL · tägliches Backup von master, model, msdb nach F:\Daten\SQL\Backup.
User-DB Backup JobsOptional
FITS-UserDatabases-FULL (wöchentlich) · DIFF (täglich) · LOG (stündlich).
Splunk Universal ForwarderBedingt
Nur wenn SplunkEnabled = true. Invoke-sqmSplunkConfiguration setzt MSSQL1_Log-Umgebungsvariable.
Domänenlogik
Das Tool erkennt den NetBIOS-Namen der AD-Domäne beim Start automatisch. Für jede bekannte Domäne können spezifische Werte in der settings.ini hinterlegt werden. Fehlende Domäneneinträge fallen auf den Standard-Wert zurück.
SQL_Latin1_General_CP1_CI_ASLatin1_General_CI_ASHLB\Fg_DC_SqlAdminAll_ModCONTOSO\Rg_SQL_SysadminEigene Domäne hinzufügen
# settings.ini — neue Domäne "ACME" einbinden
[Collations]
Domain_ACME = Latin1_General_100_CI_AS_KS_WS
[DiskLayout_ACME]
DataDrive = D
LogDrive = E
TempDrive = F
BackupDrive = G
InstallDrive = C
[SysadminGroups]
Domain_ACME = ACME\GRP_SQL_Admins
[Monitoring]
Domain_ACME = 2
[System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties().DomainName. In Arbeitsgruppenumgebungen ohne Domain greifen alle Standard-Fallback-Werte.Möglichkeiten im Überblick
Was das SQL Server Setup Tool kann — von der einfachen Developer-Installation bis zur vollständig gehärteten Enterprise-Instanz mit Monitoring und Backup-Automatisierung.
| Fähigkeit | Details |
|---|---|
| ✅ SQL 2019 / 2022 / 2025 | Alle drei aktuellen Versionen. SQL 2025 mit eigenen Editions-Bezeichnungen (Developer-Standard, Developer-Enterprise). |
| ✅ Alle Editionen | Developer (kein Key nötig), Standard, Enterprise. Produktschlüssel automatisch aus INI gewählt. |
| ✅ Standard- & benannte Instanzen | Instanzname frei wählbar. Alle Pfade, Dienstkonten und Registry-Einträge werden automatisch angepasst. |
| ✅ Domänenspezifische Konfiguration | Sortierung, Laufwerke, Monitoring, Sysadmin-Gruppen — alles pro Domäne steuerbar ohne Quellcode-Änderung. |
| ✅ Slipstream-Updates | Wenn Updates-Unterordner im Quellverzeichnis vorhanden, werden CUs automatisch in den Setup integriert. |
| ✅ Optionale SQL-Features | SSIS (IS) über Checkbox steuerbar. Entfernung aus Feature-Array erfolgt dynamisch vor dem Setup-Aufruf. |
| ✅ SSAS-Sortierungs-Automatik | Analysis Services erhält automatisch dieselbe Sortierung wie die SQL-Instanz. Keine manuelle Abstimmung nötig. |
| ✅ IFI (Instant File Initialization) | Sofortige Dateiinitialisierung aktiviert. Beschleunigt Datenbankoperationen erheblich (kein Nullen großer Dateien). |
| ✅ TempDB-Auto-Optimierung | PostInstall berechnet optimale Dateianzahl anhand CPU-Anzahl (4–8 Dateien) und konfiguriert Größe/Wachstum. |
| ✅ Ola Hallengren Integration | Maintenance Solution + 6 SQL Agent Jobs (IndexOptimize, IntegrityCheck, FULL/DIFF/LOG Backup, System-DB Backup) vollautomatisch. |
| ✅ Hintergrundthread-GUI | Installation läuft in separatem Runspace. GUI bleibt responsiv, Protokoll wird in Echtzeit aktualisiert. |
| ✅ Custom PostInstall-Script | Config\Scripts\PostInstall.ps1 — standortspezifische Erweiterungen ohne Tool-Modifikation. |
| ✅ Splunk-Integration | Optionale Konfiguration des Splunk Universal Forwarders (MSSQL1_Log-Env-Variable) als letzter PostInstall-Schritt. |
| ❌ Nicht unterstützt | AlwaysOn-Setup · Upgrade bestehender Instanzen · Cluster-Installation (eigene Werkzeuge vorgesehen). |
Typischer Zeitbedarf
| Phase | Typische Dauer | Abhängig von |
|---|---|---|
| Phase 1 — Quellen kopieren | 5–15 min | Netzwerkgeschwindigkeit, Datenmenge (3–6 GB) |
| Phase 2 — SQL Server Install | 10–25 min | Anzahl Features, Update-Größe, Server-Performance |
| Phase 3 — Optionale Komponenten | 5–20 min | Auswahl (SSRS/SSAS/SSMS je ~5–10 min) |
| Phase 4 — PostInstall (16 Schritte) | 3–8 min | GitHub-Erreichbarkeit (Ola-Download) |
| Gesamt (inkl. Phase 1) | ~25–70 min | Vollinstallation mit allen Komponenten |