dtcSoftware · Uwe Janke · FI-TS München

SQL Server Setup Tool

Vollautomatische, domänenspezifische SQL Server Installation nach FI-TS Standard — von der Quelldatei bis zur gehärteten, überwachten Produktionsinstanz.

PowerShell 5.1+ dbaTools 2.x SQL 2019 · 2022 · 2025 sqmSQLTool Ola Hallengren WinForms GUI
Uwe Janke Stand: Mai 2026 Version 2.0

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.

ℹ️
Technische Basis: Das Tool setzt auf dbaTools (Install-DbaInstance) für den eigentlichen SQL-Setup-Aufruf und auf das betriebseigene Modul sqmSQLTool für alle PostInstall-Aufgaben. Beide Module werden beim Start automatisch aus dem konfigurierten Netzwerk-Share geladen.

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.

⚙️ SQL Server Setup - Standardisierte Installation
① SQL Server Version & Edition
Version:
2022
   Edition:
Developer
    🏢 Domain: HLB
② Instanzname
Instanzname:
MSSQLServer
 
Standard
  (leer / MSSQLServer = Standardinstanz)
③ Sortierung (Collation)
Sortierung:
SQL_Latin1_General_CP1_CI_AS
   ✓ Domain-Sortierung aktiv (HLB-Standard)
④ Service-Konto  (leer = NT SERVICE\MSSQLSERVER)
Konto (DOMAIN\User):
 
AD prüfen
   
Passwort:
••••••••
  ⚠️ AD-Prüfung zählt zur Lockout-Policy!
⑤ Plattenlayout
Layout-Quelle: Domain HLB  ·  Laufwerksbuchstaben aus INI, je Domain konfigurierbar
Installation:
C:
Daten:
G:
Log:
H:
TempDB:
I:
Backup:
F:
System-DBs (INSTALLSQLDATADIR): F:\ · Binaries (INSTALLSHAREDDIR): C:\Program Files\Microsoft SQL Server
⑥ Monitoring
Monitoring-Typ:
Service Monitoring
   Domain-Standard (HLB) = Typ 2 · Vollständiges Monitoring
⑦ Optionale Komponenten
SSRS (Reporting Services)
SSAS (Analysis Services)
SSMS (Management Studio)
SSIS (Integration Services)
TDP (IBM Spectrum Protect)
Sortierung für SSAS: identisch mit Instanz-Sortierung  ·  SSIS wird als Feature IS im SQL-Engine-Setup installiert
⑧ Aktionen
Quellen kopieren
Installation starten
Schließen
⑨ Protokoll
[09:42:11]SQL Server Setup Tool gestartet. [09:42:11]Konfiguration geladen. Domain: HLB [09:42:11]Sortierung: SQL_Latin1_General_CP1_CI_AS  ·  Quell-Share: \\srv\SQLSources [09:43:05]Phase 1: Quellen werden kopiert … robocopy läuft [09:48:32]Phase 1 abgeschlossen. 4,2 GB kopiert in 327 Sek. [09:48:35]Phase 2: SQL Server 2022 Developer wird installiert …
Phase 2 — SQL Server Installation läuft … bitte warten
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.

Zero-Touch für neue Domäne: Neue Domäne einbinden = einen [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

[General]
DefaultVersion2022Vorselektierte Version im Formular
DefaultEditionDeveloperVorselektierte Edition
DefaultInstanceNameMSSQLServerStandardinstanz-Name
SourceShare\\srv\SQLSourcesUNC-Pfad zu den Installationsmedien
[DiskLayout_Standard]  →  Override: [DiskLayout_HLB]
InstallDrive = CC:\Program Files\Microsoft SQL ServerINSTALLSHAREDDIR — SQL-Binaries
DataDrive = GG:\Daten\SQL\MSSQLSERVER\DATABenutzerdatenbankdateien (.mdf, .ndf)
LogDrive = HH:\Daten\SQL\MSSQLSERVER\LOGTransaktionsprotokolle (.ldf)
TempDrive = II:\Daten\SQL\MSSQLSERVER\DATA+LOGTempDB-Dateien
BackupDrive = FF:\Daten\SQL\Backup & F:\Microsoft SQL ServerBackups + INSTALLSQLDATADIR (System-DBs)
[Installation]
FeaturesEngine,FullText,ISSQL-Features — IS (SSIS) wird bei abgewählter Checkbox dynamisch entfernt
InstantFileInittrueSofortige Dateiinitialisierung — beschleunigt Dateioperationen erheblich
TempDbFileCount2Initial; PostInstall optimiert auf CPU-Anzahl (4–8 Dateien)
TempDbFileSizeMB1024Initiale TempDB-Dateigröße in MB
TcpEnabled / NpEnabledtrue / falseTCP aktiv, Named Pipes deaktiviert
BrowserSvcDisabledtrueSQL Browser Service nach Install deaktivieren
[OptionalComponents]
SSRS_Enabled = trueCheckbox anzeigenSSRS_SourcePath = UNC-Pfad zum Installer
SSAS_Enabled = trueCheckbox anzeigenvia SQL-Setup.exe /FEATURES=AS
SSMS_Enabled = trueCheckbox anzeigen (Standard: ✓)SSMS-Setup*.exe unattended
SSIS_Enabled = trueCheckbox anzeigen (Standard: ✓)Feature IS in SQL-Engine-Setup
TDP_Enabled = trueCheckbox anzeigenIBM Spectrum Protect (TSM/TDP) Client
[SerialNumbers]
SQL2022_Developer = (leer)Developer benötigt keinen Key
SQL2022_Standard = XXXXX-…LizenzschlüsselAutomatisch ausgewählt anhand Version+Edition
SQL2025_Developer-Standard = XXXXX-…SQL 2025 verwendet neue Editions-Bezeichnungen
⚠️
Sicherheitshinweis: Die settings.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.

1

Vorbereitung

  • Robocopy vom Share
  • SQL_Install inkl. Updates
  • SSRS, SSMS, TDP-Quellen
  • Lokales Zielverzeichnis:
    C:\SQLSources\SQL2022\
2

SQL Server Install

  • Install-DbaInstance
  • Verzeichnisse erstellen
  • Slipstream-Updates
  • Warten auf SQL-Bereitschaft
  • IFI aktivieren
3

Optionale Komponenten

  • SSAS (Setup.exe /AS)
  • SSRS (eigener Installer)
  • TDP-Client
  • SSMS (unattended)
4

PostInstall

  • NTFS-Berechtigungen
  • Performance-Parameter
  • Security Hardening
  • Ola-Maintenance
  • Monitoring-Key

Phase 2 — Wichtige Install-DbaInstance Parameter

ParameterWertQuelle
FeatureEngine, FullText, IS[Installation] Features (IS entfällt bei abgewählter SSIS-Checkbox)
InstallPathC:\Program Files\Microsoft SQL ServerInstallDrive + InstallSubPath
SystemDbPathF:\Microsoft SQL ServerBackupDrive + SysDbSubPath = INSTALLSQLDATADIR
DefaultFile/LogPathG:\Daten\SQL\MSSQLSERVER\DATADataDrive, LogDrive, TempDrive
AdminAccountBUILTIN\Administrators[Installation] SysAdminAccounts
PerformVolumeMaintenanceTasks$true[Installation] InstantFileInit = true
UpdateSourcePath…\SQL_Install\Updates\Automatisch wenn Unterordner vorhanden (Slipstream)
SqlTempDbFileCount2[Installation] TempDbFileCount (PostInstall optimiert auf CPU-Basis)
ℹ️
Bereitschaftsprüfung: Nach Abschluss des SQL-Setups wartet das Tool bis zu 30 Sekunden (15 × 2 Sek.) auf eine erfolgreiche SQL-Verbindung (Connect-DbaInstance). Erst dann starten Phase 3 und Phase 4.

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.

1

NTFS-BerechtigungenKritisch

Invoke-sqmNtfsSetup — Dienstkonten via SMO/WMI ermitteln, NTFS setzen, Backup vorher erstellen.

2

Performance-ParameterKritisch

Max Memory = 90% RAM · MAXDOP = min(8, CPU) · Cost Threshold for Parallelism = 50

3

SQL Server AgentKritisch

Agent-Dienst auf AutoStart setzen und starten. Basis für alle nachfolgenden Job-Erstellungen.

4

TempDB-OptimierungKritisch

Dateianzahl = max(4, min(8, CPU-Anzahl)). Größe/Wachstum aus INI. Dateien auf I: verteilt.

5

Recovery-Modell FULLKritisch

Systemdatenbanken (master, msdb) auf FULL stellen via Invoke-sqmSetDatabaseRecoveryMode.

6

SQL Browser deaktivierenBedingt

Nur wenn BrowserSvcDisabled = true in INI. Fehler = Warnung, nicht kritisch.

7

AD-Sysadmin-GruppenBedingt

Domänenspezifische AD-Gruppe zur sysadmin-Rolle hinzufügen. Ergebnis steuert Schritt 8.

8

SA-ObfuscationBedingt

Nur wenn Schritt 7 mind. eine Gruppe zugewiesen hat. SA umbenennen + Zufallspasswort setzen.

9

Monitoring-KeyKritisch

Registry-Schlüssel via Invoke-sqmMonitoringKey. Typ 0/1/2 aus Formular-Auswahl.

10

Instanz-ValidierungKritisch

Best-Practice-Check (Get-sqmSQLInstanceCheck): Konfiguration, Dienststatus, Erreichbarkeit.

11

Custom PostInstall-ScriptOptional

Wenn Config\Scripts\PostInstall.ps1 vorhanden: standortspezifische Erweiterungen ohne Tool-Eingriff.

12

Ola Hallengren SetupOptional

GitHub (neueste Version) oder lokaler Fallback (OlaSourcePath). Basis für Schritte 13–15.

13

Maintenance JobsOptional

IndexOptimize - USER_DATABASES · IntegrityCheck - ALL_DATABASES (New-sqmOlaMaintenanceJobs).

14

System-DB Backup JobOptional

FITS-SystemDatabases-FULL · tägliches Backup von master, model, msdb nach F:\Daten\SQL\Backup.

15

User-DB Backup JobsOptional

FITS-UserDatabases-FULL (wöchentlich) · DIFF (täglich) · LOG (stündlich).

16

Splunk Universal ForwarderBedingt

Nur wenn SplunkEnabled = true. Invoke-sqmSplunkConfiguration setzt MSSQL1_Log-Umgebungsvariable.

🔑
SA-Obfuscation Sicherheitsbedingung: Schritt 8 wird nur ausgeführt wenn Schritt 7 erfolgreich mindestens eine AD-Gruppe zur sysadmin-Rolle hinzugefügt hat. So ist garantiert dass immer ein alternativer Sysadmin-Zugang existiert bevor der SA-Account verschleiert wird. Das generierte Zufallspasswort erscheint im Log — sicher verwahren!

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.

Einstellung
HLB
CONTOSO
Sortierung
SQL_Latin1_General_CP1_CI_AS
Latin1_General_CI_AS
Laufwerke
[DiskLayout_HLB] (eigene Sektion)
[DiskLayout_Standard]
Monitoring-Typ
2 — Vollständiges Monitoring
2 — Vollständiges Monitoring
Sysadmin-Gruppe
HLB\Fg_DC_SqlAdminAll_Mod
CONTOSO\Rg_SQL_Sysadmin

Eigene 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
ℹ️
Die Domänenerkennung nutzt [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ähigkeitDetails
✅ 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

PhaseTypische DauerAbhängig von
Phase 1 — Quellen kopieren5–15 minNetzwerkgeschwindigkeit, Datenmenge (3–6 GB)
Phase 2 — SQL Server Install10–25 minAnzahl Features, Update-Größe, Server-Performance
Phase 3 — Optionale Komponenten5–20 minAuswahl (SSRS/SSAS/SSMS je ~5–10 min)
Phase 4 — PostInstall (16 Schritte)3–8 minGitHub-Erreichbarkeit (Ola-Download)
Gesamt (inkl. Phase 1)~25–70 minVollinstallation mit allen Komponenten

Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Advertisement
If you accept, the ads on the page will be adapted to your preferences.
Google Ad
Save