Added check if the software was started with admin rights.

This commit is contained in:
2026-06-01 15:49:14 +02:00
parent 27299fc8e7
commit e8df6042d2
4 changed files with 49 additions and 12 deletions
+12 -9
View File
@@ -25,21 +25,23 @@ Das BizTalk Platform Management Tool unterstützt kontrollierte Wartungsfenster
## UI Workflow ## UI Workflow
1. BizTalk-Servernamen eintragen. 1. Anwendung mit Administratorrechten starten.
2. Ausgabeverzeichnis wählen. 2. BizTalk-Servernamen eintragen.
3. **Dry run** aktiviert lassen. 3. Ausgabeverzeichnis wählen.
4. Mit **Diagnose** den Zugriff auf `root\MicrosoftBizTalkServer` prüfen. 4. **Dry run** aktiviert lassen.
5. Mit **Snapshot Before** die Datei `before.json` erzeugen. 5. Mit **Diagnose** den Zugriff auf `root\MicrosoftBizTalkServer` prüfen.
6. Mit **Shutdown** den Plan `shutdown-plan.json` erzeugen und prüfen. 6. Mit **Snapshot Before** die Datei `before.json` erzeugen.
7. **Dry run** erst deaktivieren, wenn der Plan korrekt ist. 7. Mit **Shutdown** den Plan `shutdown-plan.json` erzeugen und prüfen.
8. Nach der Wartung mit **Restore** aus `before.json` wiederherstellen. 8. **Dry run** erst deaktivieren, wenn der Plan korrekt ist.
9. Mit **Snapshot After** und **Compare** die Umgebung validieren. 9. Nach der Wartung mit **Restore** aus `before.json` wiederherstellen.
10. Mit **Snapshot After** und **Compare** die Umgebung validieren.
Die Statusanzeige rechts im Kopfbereich bewertet die Host-Instance-Zustaende des letzten Snapshots und zeigt `Started`, `Stopped`, `Partial` oder `Unknown`. **Clear** leert die sichtbaren Ergebnis- und Log-Grids, loescht aber keine Dateien. **Close** beendet die Anwendung. Die Statusanzeige rechts im Kopfbereich bewertet die Host-Instance-Zustaende des letzten Snapshots und zeigt `Started`, `Stopped`, `Partial` oder `Unknown`. **Clear** leert die sichtbaren Ergebnis- und Log-Grids, loescht aber keine Dateien. **Close** beendet die Anwendung.
## Sicherheitsdesign ## Sicherheitsdesign
- Dry-run ist standardmäßig aktiviert. - Dry-run ist standardmäßig aktiviert.
- Beim Start wird geprüft, ob die Anwendung mit Administratorrechten läuft. Ohne erhöhte Rechte wird eine Fehlermeldung angezeigt und die Anwendung beendet.
- Echte Shutdown-/Restore-Aktionen verlangen bei deaktiviertem Dry-run eine zusätzliche Bestätigung. - Echte Shutdown-/Restore-Aktionen verlangen bei deaktiviertem Dry-run eine zusätzliche Bestätigung.
- Jede Operation schreibt Einträge in das sichtbare Operation Log. - Jede Operation schreibt Einträge in das sichtbare Operation Log.
- Zusätzlich wird neben der EXE eine tägliche Logdatei `BizTalkPlatformManagementTool-yyyy-MM-dd.log` geschrieben. - Zusätzlich wird neben der EXE eine tägliche Logdatei `BizTalkPlatformManagementTool-yyyy-MM-dd.log` geschrieben.
@@ -99,4 +101,5 @@ Snapshot- und Plan-JSON-Dateien werden als UTF-8 ohne BOM geschrieben. Beim Lade
- Windows Server oder Administrationshost mit .NET Framework 4.6.1 - Windows Server oder Administrationshost mit .NET Framework 4.6.1
- BizTalk Server 2020 oder installierte BizTalk Administration Tools - BizTalk Server 2020 oder installierte BizTalk Administration Tools
- Berechtigungen auf den WMI-Namespace `root\MicrosoftBizTalkServer` - Berechtigungen auf den WMI-Namespace `root\MicrosoftBizTalkServer`
- Lokale Administratorrechte und Start der Anwendung mit **Als Administrator ausführen**
- Visual Studio mit .NET Framework 4.6.1 Developer Pack für Builds - Visual Studio mit .NET Framework 4.6.1 Developer Pack für Builds
+3 -2
View File
@@ -8,6 +8,7 @@
- Für Builds: Visual Studio mit .NET Framework 4.6.1 Developer Pack - Für Builds: Visual Studio mit .NET Framework 4.6.1 Developer Pack
- Zugriff auf den WMI-Namespace `root\MicrosoftBizTalkServer` - Zugriff auf den WMI-Namespace `root\MicrosoftBizTalkServer`
- Ausreichende Rechte zum Lesen und Ändern von BizTalk-Artefakten - Ausreichende Rechte zum Lesen und Ändern von BizTalk-Artefakten
- Lokale Administratorrechte und Start der EXE mit **Als Administrator ausführen**
- Schreibrechte im Verzeichnis der EXE für die tägliche Logdatei - Schreibrechte im Verzeichnis der EXE für die tägliche Logdatei
## Build ## Build
@@ -22,13 +23,13 @@
1. Den Release-Ordner auf einen BizTalk-Server oder einen Administrationshost kopieren. 1. Den Release-Ordner auf einen BizTalk-Server oder einen Administrationshost kopieren.
2. Sicherstellen, dass der ausführende Benutzer WMI-Zugriff auf `root\MicrosoftBizTalkServer` hat. 2. Sicherstellen, dass der ausführende Benutzer WMI-Zugriff auf `root\MicrosoftBizTalkServer` hat.
3. `BizTalkPlatformManagementTool.exe` starten. 3. `BizTalkPlatformManagementTool.exe` mit **Als Administrator ausführen** starten.
4. Als Ausgabeverzeichnis einen Ordner wählen, in dem Plan-, Snapshot- und Report-Dateien abgelegt werden dürfen. 4. Als Ausgabeverzeichnis einen Ordner wählen, in dem Plan-, Snapshot- und Report-Dateien abgelegt werden dürfen.
5. Prüfen, dass im EXE-Verzeichnis `BizTalkPlatformManagementTool-yyyy-MM-dd.log` geschrieben werden kann. Logs werden für maximal fünf Tage vorgehalten. 5. Prüfen, dass im EXE-Verzeichnis `BizTalkPlatformManagementTool-yyyy-MM-dd.log` geschrieben werden kann. Logs werden für maximal fünf Tage vorgehalten.
## Erster Funktionstest ## Erster Funktionstest
1. Anwendung starten. 1. Anwendung mit **Als Administrator ausführen** starten.
2. Zielserver eintragen oder den vorgeschlagenen lokalen Server verwenden. 2. Zielserver eintragen oder den vorgeschlagenen lokalen Server verwenden.
3. **Dry run** aktiviert lassen. 3. **Dry run** aktiviert lassen.
4. **Diagnose** ausführen. 4. **Diagnose** ausführen.
+4 -1
View File
@@ -20,6 +20,7 @@ WinForms tool for controlled Microsoft BizTalk Server 2020 platform operations d
- Host instance handling for the selected BizTalk server - Host instance handling for the selected BizTalk server
- Dry-run mode enabled by default - Dry-run mode enabled by default
- WMI access through `root\MicrosoftBizTalkServer` - WMI access through `root\MicrosoftBizTalkServer`
- Startup check for administrator rights
- Detailed operation logging in the GUI and daily rolling log files next to the executable - Detailed operation logging in the GUI and daily rolling log files next to the executable
- Environment status indicator based on host instance state - Environment status indicator based on host instance state
- Clear and Close actions in the main toolbar - Clear and Close actions in the main toolbar
@@ -27,7 +28,7 @@ WinForms tool for controlled Microsoft BizTalk Server 2020 platform operations d
## Safe Usage ## Safe Usage
1. Start the app on a BizTalk server or a management host with WMI access. 1. Start the app with **Run as administrator** on a BizTalk server or a management host with WMI access.
2. Keep **Dry run** enabled. 2. Keep **Dry run** enabled.
3. Click **Diagnose** to verify WMI access. 3. Click **Diagnose** to verify WMI access.
4. Click **Snapshot Before**. 4. Click **Snapshot Before**.
@@ -38,6 +39,8 @@ WinForms tool for controlled Microsoft BizTalk Server 2020 platform operations d
The environment indicator shows `Started`, `Stopped`, `Partial` or `Unknown` from the most recent snapshot. `Clear` removes the visible status and operation log grids; it does not delete files. The environment indicator shows `Started`, `Stopped`, `Partial` or `Unknown` from the most recent snapshot. `Clear` removes the visible status and operation log grids; it does not delete files.
The application checks administrator rights during startup. If it is not elevated, it shows an error message and exits because BizTalk WMI operations require an elevated administrator process.
## Operation Order ## Operation Order
Shutdown: Shutdown:
@@ -1,4 +1,5 @@
using System; using System;
using System.Security.Principal;
using System.Windows.Forms; using System.Windows.Forms;
using BizTalkPlatformManagementTool.Ui; using BizTalkPlatformManagementTool.Ui;
@@ -11,7 +12,36 @@ namespace BizTalkPlatformManagementTool
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
if (!IsRunningAsAdministrator())
{
MessageBox.Show(
"BizTalk Platform Management Tool must be started with administrator rights.\r\n\r\n" +
"Please close the application and start it again with 'Run as administrator'. " +
"Without elevated rights, BizTalk WMI operations in root\\MicrosoftBizTalkServer will fail.",
"Administrator Rights Required",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
return;
}
Application.Run(new MainForm()); Application.Run(new MainForm());
} }
private static bool IsRunningAsAdministrator()
{
try
{
using (var identity = WindowsIdentity.GetCurrent())
{
var principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
}
catch
{
return false;
}
}
} }
} }