Added check if the software was started with admin rights.
This commit is contained in:
+12
-9
@@ -25,21 +25,23 @@ Das BizTalk Platform Management Tool unterstützt kontrollierte Wartungsfenster
|
||||
|
||||
## UI Workflow
|
||||
|
||||
1. BizTalk-Servernamen eintragen.
|
||||
2. Ausgabeverzeichnis wählen.
|
||||
3. **Dry run** aktiviert lassen.
|
||||
4. Mit **Diagnose** den Zugriff auf `root\MicrosoftBizTalkServer` prüfen.
|
||||
5. Mit **Snapshot Before** die Datei `before.json` erzeugen.
|
||||
6. Mit **Shutdown** den Plan `shutdown-plan.json` erzeugen und prüfen.
|
||||
7. **Dry run** erst deaktivieren, wenn der Plan korrekt ist.
|
||||
8. Nach der Wartung mit **Restore** aus `before.json` wiederherstellen.
|
||||
9. Mit **Snapshot After** und **Compare** die Umgebung validieren.
|
||||
1. Anwendung mit Administratorrechten starten.
|
||||
2. BizTalk-Servernamen eintragen.
|
||||
3. Ausgabeverzeichnis wählen.
|
||||
4. **Dry run** aktiviert lassen.
|
||||
5. Mit **Diagnose** den Zugriff auf `root\MicrosoftBizTalkServer` prüfen.
|
||||
6. Mit **Snapshot Before** die Datei `before.json` erzeugen.
|
||||
7. Mit **Shutdown** den Plan `shutdown-plan.json` erzeugen und prüfen.
|
||||
8. **Dry run** erst deaktivieren, wenn der Plan korrekt ist.
|
||||
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.
|
||||
|
||||
## Sicherheitsdesign
|
||||
|
||||
- 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.
|
||||
- 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.
|
||||
@@ -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
|
||||
- BizTalk Server 2020 oder installierte BizTalk Administration Tools
|
||||
- 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
|
||||
|
||||
+3
-2
@@ -8,6 +8,7 @@
|
||||
- Für Builds: Visual Studio mit .NET Framework 4.6.1 Developer Pack
|
||||
- Zugriff auf den WMI-Namespace `root\MicrosoftBizTalkServer`
|
||||
- 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
|
||||
|
||||
## Build
|
||||
@@ -22,13 +23,13 @@
|
||||
|
||||
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.
|
||||
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.
|
||||
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
|
||||
|
||||
1. Anwendung starten.
|
||||
1. Anwendung mit **Als Administrator ausführen** starten.
|
||||
2. Zielserver eintragen oder den vorgeschlagenen lokalen Server verwenden.
|
||||
3. **Dry run** aktiviert lassen.
|
||||
4. **Diagnose** ausführen.
|
||||
|
||||
@@ -20,6 +20,7 @@ WinForms tool for controlled Microsoft BizTalk Server 2020 platform operations d
|
||||
- Host instance handling for the selected BizTalk server
|
||||
- Dry-run mode enabled by default
|
||||
- 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
|
||||
- Environment status indicator based on host instance state
|
||||
- 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
|
||||
|
||||
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.
|
||||
3. Click **Diagnose** to verify WMI access.
|
||||
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 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
|
||||
|
||||
Shutdown:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Security.Principal;
|
||||
using System.Windows.Forms;
|
||||
using BizTalkPlatformManagementTool.Ui;
|
||||
|
||||
@@ -11,7 +12,36 @@ namespace BizTalkPlatformManagementTool
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
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());
|
||||
}
|
||||
|
||||
private static bool IsRunningAsAdministrator()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var identity = WindowsIdentity.GetCurrent())
|
||||
{
|
||||
var principal = new WindowsPrincipal(identity);
|
||||
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user