Home
dtcSqlTools
PowerShell-Modul für SQL Server Administration · dtcSoftware (Janke)
dtcSqlTools kapselt wiederkehrende SQL Server Administrations- und Automatisierungsaufgaben in 39 strukturierte PowerShell-Funktionen. Es baut auf dbatools auf und ergänzt es um dtcSoftware-spezifische Workflows rund um AlwaysOn, Sicherheit, Diagnose und Backup-Automation.
Funktionen im Überblick
🔄 AlwaysOn
🔁 Restore
🔒 Sicherheit
🔍 Diagnose
⚡ Performance
📊 Kapazität
📡 Monitoring
💾 Backup
⚙️ SQL Agent
🔧 Wartung
⚙️ Konfiguration
🌐 Netzwerk
📋 Dokumentation
🔄 Auto-Update
📦 Sonstige
Modul-Variablen
Alle Variablen werden beim Import initialisiert und können per Set-dtcSqlToolsConfig geändert werden.
| Variable | Standardwert | Zweck |
|---|---|---|
| $script:dtcSqlTools_LogPath | C:\System\WinSrvLog\MSSQL\ | Primäres Log-/Ausgabeverzeichnis |
| $script:dtcSqlTools_CentralLogPath | W:\75084-Datenbanken\MSSQL\dtc\Log | Zentrales Log-Verzeichnis |
| $script:dtcSqlTools_KeyPath | W:\75084-Datenbanken\MSSQL\dtc\Keys | Schlüssel- und Kennwort-Dateien |
| $script:dtcSqlTools_LoginExportDir | F:\Daten\MSSQLSERVER\LOGIN | Login-Export-Basisverzeichnis |
| $script:dtcSqlTools_DefaultPolicy | New Login_Enforce Passwort Policy | PBM-Policy für Policy-Operationen |
| $script:dtcSqlTools_OlaJobNameFull | FITS-UserDatabases-FULL | Ola Full-Backup Job-Name |
| $script:dtcSqlTools_OlaJobNameDiff | FITS-UserDatabases-DIFF | Ola Diff-Backup Job-Name |
| $script:dtcSqlTools_OlaJobNameLog | FITS-UserDatabases-LOG | Ola Log-Backup Job-Name |
| $script:dtcSqlTools_OlaJobNameSysDbBackup | FITS-SystemDatabases-FULL | Ola System-DB Backup Job-Name |
| $script:dtcSqlTools_OlaJobNameIndexOpt | FITS IndexOptimize - USER_DATABASES | Ola IndexOptimize Job-Name |
| $script:dtcSqlTools_OlaJobNameIntUserDb | FITS IntegrityCheck - USER_DATABASES | Ola IntegrityCheck User-DB Job-Name |
| $script:dtcSqlTools_OlaJobNameIntSysDb | FITS IntegrityCheck - SYSTEM_DATABASES | Ola IntegrityCheck System-DB Job-Name |
Konfigurationsbeispiel
Import-Module dtcSqlTools
Set-dtcSqlToolsConfig `
-LogPath 'C:\System\WinSrvLog\MSSQL\' `
-CentralLogPath 'W:\75084-Datenbanken\MSSQL\dtc\Log' `
-KeyPath 'W:\75084-Datenbanken\MSSQL\dtc\Keys' `
-LoginExportDir 'F:\Daten\MSSQLSERVER\LOGIN' `
-DefaultPolicy 'New Login_Enforce Passwort Policy'
Set-dtcSqlToolsConfig `
-OlaJobNameFull 'FITS-UserDatabases-FULL' `
-OlaJobNameDiff 'FITS-UserDatabases-DIFF' `
-OlaJobNameLog 'FITS-UserDatabases-LOG'
# Aktuelle Konfiguration:
Set-dtcSqlToolsConfig | Format-ListInstallation & Ersteinrichtung
Voraussetzungen: PowerShell 5.1 oder 7.x, dbatools-Modul, SQL Server 2016+. Für AD-Funktionen: RSAT ActiveDirectory-Modul.
- dbatools installieren
Install-Module dbatools -Scope CurrentUser - dtcSqlTools in den Modulpfad kopieren
# Modulpfade anzeigen $env:PSModulePath -split ';' # Modul nach z. B. C:\Program Files\WindowsPowerShell\Modules\dtcSqlTools\ kopieren - Modul importieren und prüfen
Import-Module dtcSqlTools Get-Module dtcSqlTools | Select-Object Name, Version Get-Command -Module dtcSqlTools | Measure-Object - Standardwerte konfigurieren
Set-dtcSqlToolsConfig ` -LogPath 'C:\System\WinSrvLog\MSSQL\' ` -CentralLogPath 'W:\75084-Datenbanken\MSSQL\dtc\Log' ` -KeyPath 'W:\75084-Datenbanken\MSSQL\dtc\Keys' - Auto-Update Share konfigurieren (optional)
Set-dtcSqlToolsSharePath -Path '\\FileServer\IT_Tools\dtcSqlTools' # Ab jetzt: beim Import automatisch auf Updates prüfen - Erste Prüfung
Export-dtcInstanceInventory -SqlInstance $env:COMPUTERNAME Test-dtcBackupCoverage -SqlInstance $env:COMPUTERNAME
Ola Hallengren Backup-Setup
Voraussetzung: Ola Hallengrens Maintenance Solution installiert (ola.hallengren.com).
# User-Datenbanken: Full/Diff/Log
New-dtcOlaBackupJobs -SqlInstance "SQL01" -UseDiff -OperatorName "DBA-Team"
# System-Datenbanken: täglich Full
New-dtcOlaSysDbBackupJob -SqlInstance "SQL01" -OperatorName "DBA-Team"
# IndexOptimize + IntegrityCheck (sonntags 23:00)
New-dtcOlaMaintenanceJobs -SqlInstance "SQL01" -OperatorName "DBA-Team"
# TSM-Client konfigurieren
Set-dtcTsmConfiguration -ComputerName "SQL01" -UseDiffVersionsverlauf
| Version | Datum | Neuerungen |
|---|---|---|
| 1.19.16 | 18.04.2026 | Set-dtcTsmConfiguration: TSM dsm.opt konfigurieren (EXCLUDE DB-Dateien, INCLUDE BackupDir, ManagementClass, -UseDiff) |
| 1.19.15 | 18.04.2026 | New-dtcOlaBackupJobs: User-db Unterverz.; New-dtcOlaSysDbBackupJob: System-DB täglicher Full-Backup in Sys-db |
| 1.19.14 | 18.04.2026 | New-dtcOlaBackupJobs + New-dtcOlaMaintenanceJobs: OutputFile via SQLLOGDIR-Token statt xp_cmdshell |
| 1.19.13 | 17.04.2026 | New-dtcOlaBackupJobs + New-dtcOlaMaintenanceJobs: vollständige Ola-Installationsprüfung (alle Objekte, CommandLog, SQL Agent) |
| 1.19.12 | 17.04.2026 | New-dtcOlaMaintenanceJobs: Ola IndexOptimize + IntegrityCheck Jobs (User+System), optimierte Parameter, Job-Namen konfigurierbar |
| 1.19.11 | 16.04.2026 | New-dtcOlaBackupJobs: Ola Hallengren Backup-Jobs (Full/Diff/Log), Zeitpläne, -UseDiff, Job-Namen konfigurierbar, MaintenanceLog |
| 1.19.10 | 15.04.2026 | Invoke-dtcDatabaseRestore + Restore-dtcAlwaysOnDB: Differenz-Backup-Unterstützung (-DiffBackupFile/-DiffDatabaseFile) |
| 1.19.9 | 14.04.2026 | New-dtcAgRepairJob: Windows EventLog Einträge bei Repair/Failed/OutOfSync (Event IDs 1001/1002/1003) |
| 1.19.8 | 13.04.2026 | Get-dtcSysadminAccounts: -ExcludeSysAccounts Parameter für NT SERVICE, NT AUTHORITY, ##MS_*## |
| 1.19.7 | 11.04.2026 | Set-dtcSqlToolsConfig: KeyPath + CentralLogPath; Kennworte/Keys nach KeyPath; alle Berichte zusätzlich nach CentralLogPath |
| 1.19.6 | 09.04.2026 | Set-dtcSsisConfiguration: SSIS Dienst, SSISDB-Katalog, AG-Integration (DMK, sp_ssis_startup, Maintenance Job, Linked Server), Ordner/Umgebungen |
| 1.19.5 | 07.04.2026 | Set-dtcSsrsConfiguration: SSRS konfigurieren (DB, URL, Dienstkonto, Key), lokal + Remote (WinRM), AlwaysOn AG (Listener-Erkennung + Primary-Erkennung) |
| 1.19.4 | 03.04.2026 | Test-dtcSsasPermissions: SSAS Disk-Berechtigungen prüfen und setzen, Multidimensional/Tabular/PowerPivot, lokal + Remote |
| 1.19.3 | 31.03.2026 | New-dtcAgRepairJob: SQL Agent Job für Repair-dtcAgDatabase erstellen (Zeitplan, Operator, Update) |
| 1.19.2 | 27.03.2026 | Invoke-dtcDatabaseUserCleanup: eigenständige User-Bereinigung / -Reimport, Invoke-dtcDatabaseRestore + Restore-dtcAlwaysOnDB verwenden sie intern |
| 1.19.1 | 24.03.2026 | Invoke-dtcDatabaseRestore: SourceDomain-Parameter entfernt, automatische User-Bereinigung ohne Domänenangabe |
| 1.19.0 | 20.03.2026 | Invoke-dtcCollationChange: Server-Collation via sqlservr -m -T4022 -T3659 -q, Pre-Flight-Check, WhatIf, Rollback-Dokumentation |
| 1.18.0 | 13.03.2026 | Auto-Update beim Import: Update-dtcSqlTools, Set-dtcSqlToolsSharePath, Invoke-dtcModuleUpdate (Private), atomare Update-Strategie via robocopy+Rename |
| 1.17.0 | 06.03.2026 | Get-dtcWaitStatReport: Wait Statistics mit Delta-Messung, 50+ Idle-Wait-Filter, Kategorien, Empfehlungen |
| 1.16.0 | 26.02.2026 | Invoke-dtcLoginAudit, Test-dtcSqlConfiguration (Fix-T-SQL), Get-dtcAutoGrowthReport (Default Trace) |
| 1.15.0 | 16.02.2026 | Test-dtcBackupCoverage, Get-dtcDatabaseHealth, Get-dtcAgHealthReport, Invoke-dtcAgFailoverCheck, Get-dtcDiskSpaceReport, Export-dtcInstanceInventory |
| 1.14.0 | 06.02.2026 | Get-dtcSysadminAccounts: Sysadmin-Audit mit Ausschlüssen, Status-Klassifizierung |
| 1.13.0 | 29.01.2026 | Invoke-dtcAgentJobAudit: Owner-Fix, Zeitkonflikte, Laufzeiten, TXT+CSV |
| 1.12.0 | 20.01.2026 | Invoke-dtcSaObfuscation: kryptographisches Zufallskennwort, Sysadmin-Sicherheitsprüfung |
| 1.11.1 | 13.01.2026 | Set-dtcMonitoringKey: SQL-Parameter None/Standard/Full statt 0/1/2 |
| 1.11.0 | 08.01.2026 | Set-dtcMonitoringKey / Get-dtcMonitoringKey: SystemCenter RegKeys, Remote-Registry-API |
| 1.10.1 | 19.12.2025 | Test-dtcSqlSpn: Auto-Export SPN_Commands + SPN_Report, OK-Liste |
| 1.10.0 | 16.12.2025 | Test-dtcSqlSpn: SPN-Prüfung für Server + AG-Listener |
| 1.9.3 | 09.12.2025 | PreRestoreBackupDir Default: StandardBackupDir\PreRestore, auto-mkdir |
| 1.9.2 | 05.12.2025 | Restore-dtcAlwaysOnDB: -PreRestoreBackup / -PreRestoreBackupDir |
| 1.9.1 | 02.12.2025 | LogPath-Default: MSSQL\, dtcSqlTools_DefaultPolicy als Modul-Variable |
| 1.9.0 | 28.11.2025 | Invoke-dtcDatabaseRestore: Standalone Restore, Cross-Domain, Umbenennung, User-Handling |
| 1.8.1 | 21.11.2025 | SA-Owner via SID 0x01 (Get-dtcSaLogin Private, umbenennungssicher) |
| 1.8.0 | 17.11.2025 | Get-dtcOperationProgress: ETA für Restore/Backup/AutoSeed, Loop-Modus |
| 1.7.0 | 07.11.2025 | Invoke-dtcLogShrink: LDF-Shrink, Primary-Redirect bei AG |
| 1.6.0 | 28.10.2025 | Repair-dtcAgDatabase: Out-of-sync Erkennung + automatischer Reset |
| 1.5.0 | 17.10.2025 | Sync-dtcAgNode: Auto-Discovery Primary + alle AGs |
| 1.4.0 | 10.10.2025 | Enable-dtcAgAutoSeed: AG- und Instanz-Ebene |
| 1.3.0 | 03.10.2025 | Remove-dtcAgDatabase |
| 1.2.0 | 26.09.2025 | Add-dtcAgDatabase |
| 1.1.0 | 18.09.2025 | Restore-dtcAlwaysOnDB, Set-dtcSqlPolicyState, Set-dtcSqlToolsConfig |
| 1.0.0 | 05.09.2025 | Initiale Version: Reset-dtcAgDatabase |