Scripting: Unterschied zwischen den Versionen
[unmarkierte Version] | [gesichtete Version] |
Admin (Diskussion | Beiträge) |
|||
(49 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | + | MailStore Server stellt mit der [[MailStore Server Management Shell]] und der [[MailStore Server Administration API]] leistungsfähige Schnittstellen zur Verfügung, mit deren Hilfe viele Aufgaben durch Skripte automatisiert werden können. Hierdurch können Szenarien implementiert werden, die sich nicht oder nur schwer über die Benutzeroberfläche abbilden lassen. Des Weiteren erlaubt die Verwendung von Skripten die Integration von MailStore Server in vorhandene Workflows oder Geschäftsprozesse. | |
− | + | Im Folgenden werden die Möglichkeiten der MailStore Server Administration API in verschiedenen Skriptsprachen beispielhaft dargestellt und erläutert. Zudem haben wir in unserem Scripting-Bereich einige Skripte zusammengestellt, welche die gezeigten Techniken verwenden und häufig nachgefragte Problemstellungen lösen. Diese werden zur freien Verfügung gestellt und können beliebig an die eigene Umgebung angepasst, erweitert oder als Grundlage für eigene Lösungen verwendet werden. | |
− | = | + | <p class=msnote>'''Wichtiger Hinweis:''' Der gesamte hier zur Verfügung gestellte Skriptcode ist als Referenz- bzw. Beispielimplementation zu betrachten. Sofern nicht anders angegeben, sind diese Skripte unter der [[wikipedia:MIT_Licence|MIT-Lizenz]] veröffentlicht.</p> |
− | |||
− | = | + | == Automatisierung mit Windows Batch-Skripten == |
+ | Für einfache Aufgaben, wie z.B. den Massenimport oder -export von PST-Dateien, können auch Windows Batch Skripte verwendet werden. Diese steuern MailStore Server im Allgemeinen nicht über die [[MailStore Server Administration API]], sondern über den [[MailStore Server Management Shell|MailStore Server Kommandozeileninterpreter]] an. | ||
− | + | Bevor Sie die [[Media:Batchscripts.zip|Windows Batch-Skripte]] in der Eingabeaufforderung ''cmd.exe'' ausführen können, öffnen Sie die Skript-Datei zunächst in einem Texteditor wie z.B. Notepad. Passen Sie die Konfigurationsvariablen oberhalb der Zeile ''DON'T CHANGE ANYTHING BEYOND THIS LINE'' entsprechend Ihrer lokalen Umgebung an. Achten Sie darauf, ggf. umschließende einfache oder doppelte Hochkommata nicht zu verändern. | |
− | |||
− | + | Um den Fingerabdruck (Hash) des MailStore Server Zertifikats zu erhalten, folgen Sie diesen Schritten: | |
− | == Python- | + | * Öffnen Sie die [[MailStore_Server_Dienst-Konfiguration#IP-Adressen_und_Ports|MailStore Server Dienst-Konfiguration]]. |
− | Um die [[Python- | + | * Klicken Sie auf ''Netzwerkeinstellungen''. |
+ | : [[File:tech_config_02.png|center|550px]] | ||
+ | * Klicken Sie auf den Namen des Serverzertifikats das für den ''MailStore Client'' Zugang verwendet wird. | ||
+ | * Der Fingerabdruck ist in den Details des Zertifikats aufgelistet. | ||
+ | : [[File:GPO_Client_2012R2_13.png]] | ||
+ | |||
+ | Beachten Sie, dass beim Kopieren des Fingerabdrucks unter Umständen ein unsichtbares Zeichen for dem ersten Buchstaben in der Zwischenablage gelandet sein kann. Dieses Zeichen darf in den Skript-Dateien nicht mehr vorhanden sein. Siehe auch [https://support.microsoft.com/en-us/help/2023835/certificate-thumbprint-displayed-in-mmc-certificate-snap-in-has-extra]. | ||
+ | |||
+ | === Verfügbare Windows Batch-Skripte === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! scope="col" | Dateiname | ||
+ | ! scope="col" | Beschreibung | ||
+ | |- | ||
+ | | <tt>bulkImportPST.bat</tt> | ||
+ | | Importiere mehrere PST-Dateien aus einem angegebenen Verzeichnis in das Archiv eines MailStore Benutzers. Ein PST-Archivierungsprofil vom Typ ''Einzelner Benutzer'' namens 'templateBulkImportPST' muss zuvor manuell angelegt werden. | ||
+ | |- | ||
+ | | <tt>bulkImportMBOX.bat</tt> | ||
+ | | Importiere mehrere MBOX-Dateien aus einem angegebenen Verzeichnis in das Archiv eines MailStore Benutzers. Ein MBOX-Archivierungsprofil namens 'templateBulkImportMBOX' muss zuvor manuell angelegt werden. | ||
+ | |- | ||
+ | | <tt>bulkExportPST.bat</tt> | ||
+ | | Export aller Archive in mehrere PST-Dateien. Je eine pro MailStore Benutzer. Ein PST-Exportprofil namens 'templateBulkExportPST' muss zuvor manuell angelegt werden. | ||
+ | |- | ||
+ | | <tt>bulkDeleteUsers.bat</tt> | ||
+ | | Lösche alle MailStore Benutzer bis auf den Standardadministrator 'admin'. | ||
+ | |} | ||
+ | |||
+ | == Automatisierung mit Python-Skripten == | ||
+ | Komplexere Abläufe lassen sich mit höheren Skriptsprachen deutlich besser automatisieren als mit einfachen Batch-Skripten. Als weit verbreitete, plattformunabhängige und leicht zu erlernende, aber mächtige Skriptsprache eignet sich Python sehr gut zur Ansteuerung von MailStore Server über die [[MailStore Server Administration API]]. | ||
+ | |||
+ | Um Python-Skripte ausführen zu können, muss zunächst die Python-Runtime installiert werden. Die entsprechende Windows Setup-Datei kann unter http://www.python.org heruntergeladen werden. Auf einem Linux-System installieren Sie bitte die Python-Runtime über das Paketmanagement Ihrer Linux-Distribution. | ||
+ | |||
+ | Ebenfalls benötigt zum ausführen der Python-Scripte wird der [[Media:Python-api-wrapper.zip|Python API-Wrapper]]. Hinweise zur Installation des Python API-Wrappers finden Sie im entsprechenden Abschnitt des [[Python API-Wrapper Tutorial]]. | ||
+ | |||
+ | Um die Python-Skripte auszuführen, öffnen Sie die Skript-Datei zunächst in ''IDLE'' (Bestandteil der Python-Runtime). Passen Sie die Konfigurationsvariablen oberhalb der Zeile ''DON'T CHANGE ANYTHING BEYOND THIS LINE'' entsprechend Ihrer lokalen Umgebung an. Achten Sie darauf ggf. umschließende einfache oder doppelte Hochkommata nicht zu verändern. | ||
Zum Starten des Skripts klicken Sie auf ''Run'' > ''Run Module'' oder drücken Sie die F5-Taste in ''IDLE''. Ein neues Fenster erscheint, in welchem Sie die Standardausgaben des Skripts sowie etwaige Fehlermeldungen angezeigt bekommen. | Zum Starten des Skripts klicken Sie auf ''Run'' > ''Run Module'' oder drücken Sie die F5-Taste in ''IDLE''. Ein neues Fenster erscheint, in welchem Sie die Standardausgaben des Skripts sowie etwaige Fehlermeldungen angezeigt bekommen. | ||
− | == | + | Wenn Sie eigene Skripte in Python zur Automatisierung von MailStore Server Aufgaben erstellen möchten, bietet sich das [[Python API-Wrapper Tutorial]] als Einstieg an. Wenn Sie nur die von MailStore zur Verfügung gestellten [[Media:Scripts.zip|Python-Skripte]] verwenden möchten, können Sie auch direkt zu diesen wechseln. |
+ | |||
+ | * [[Python API-Wrapper Tutorial]] | ||
+ | * [[Media:Scripts.zip|Python-Skripte]] | ||
+ | |||
+ | === Verfügbare Python-Skripte === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! scope="col" | Dateiname | ||
+ | ! scope="col" | Beschreibung | ||
+ | |- | ||
+ | | <tt>merge_folders_server.py</tt><br/><tt>merge_folders_spe.py</tt> | ||
+ | | Führt Unterordner der ersten Ebene unterhalb eines Benutzerarchivs zusammen. Kann u.A. nach der Archivierung mehrer PSTs für einen Benutzer eingesetzt werden. | ||
+ | |- | ||
+ | | <tt>create_user_folders_server.py</tt><br/><tt>create_user_folders_spe.py</tt> | ||
+ | | Erstelle Ordner im Dateisystem basierend auf den MailStore Benutzernamen. Kann zur Vorbereitung des Massenimport von EML-, MSG- und PST-Dateien verwendet werden. | ||
+ | |- | ||
+ | | <tt>rename_inbox_server.py</tt><br/><tt>rename_inbox_spe.py</tt> | ||
+ | | In manchen Fällen kann es vorkommen, dass zwei Inbox Ordner (Inbox und INBOX) im Archiv existieren. Dieses Skript führt diese Ordner zusammen. Sie sollten den Namen als neuen gemeinsanem Namen wählen, der von den aktuellen Archivierungsprofilen befüllt wird. | ||
+ | |- | ||
+ | | <tt>update_user_names_server.py</tt><br/><tt>update_user_names_spe.py</tt> | ||
+ | | Wenn sich der Verzeichnisdienst ändert, und dadurch die Benutzer neue Namen erhalten, werden auch neue Archive angelegt. Die Archivierung läuft dann unter Umständen in diese neuen, falschen Archive hinein. Dieses Skript kann zwischen der Änderung des Verzeichnisdienstes verwendet werden. Es werden die Benutzernamen, die Archivnamen und die Berechtigung auf das eigene Archiv angepasst. Wenn Berechtigungen auf weitere Archive vergeben wurden, müssen diese manuelle angepasst werden. | ||
+ | |- | ||
+ | | <tt>check_mailstore_server_license.py</tt><br/><tt>check_mailstore_spe_license.py</tt> | ||
+ | | Nagios-/Icinga-Plugin zum Überwachen der verfügbaren Lizenzen. Siehe [[Monitoring]] für weitere Details. | ||
+ | |- | ||
+ | | <tt>check_mailstore_server_results.py</tt><br/><tt>check_mailstore_spe_results.py</tt> | ||
+ | | Nagios-/Icinga-Plugin zum Überwachen der letzen Ergebnisse. Siehe [[Monitoring]] für weitere Details. | ||
+ | |- | ||
+ | | <tt>bulk_import.py</tt> | ||
+ | | Importiert E-Mail-Dateien von mehreren Benutzern. Siehe [[Massenimport von E-Mail-Dateien]] für weitere Details. | ||
+ | |} | ||
+ | |||
+ | == Automatisierung mit PowerShell-Skripten == | ||
+ | Als mit allen neueren Windows Versionen mitgelieferte Standardshell eignet sich auch die auf dem .NET Framework basierende Windows PowerShell sehr gut zur Ansteuerung von MailStore Server über die [[MailStore Server Administration API]]. | ||
+ | |||
+ | Der MailStore PowerShell API-Wrapper und die Skripte sind mit Windows PowerShell ab Version 3.0 kompatibel. Diese muss je nach Windows Version ggf. separat installiert werden und kann im [https://www.microsoft.com/de-de/download/default.aspx Microsoft Download Center] kostenlos heruntergeladen werden. | ||
+ | |||
+ | Wenn Sie eigene Skripte in PowerShell zur Automatisierung von MailStore Server Aufgaben erstellen möchten, bietet sich das [[PowerShell API-Wrapper Tutorial]] als Einstieg an. Wenn Sie nur die von MailStore zur Verfügung gestellten PowerShell Skripte verwenden möchten, können Sie auch direkt zu diesen wechseln. | ||
+ | |||
+ | * [[PowerShell API-Wrapper Tutorial]] | ||
+ | * [[Media:PowershellScripts.zip|PowerShell-Skripte]] | ||
+ | |||
+ | === Verfügbare Powershell-Skripte === | ||
− | + | {| class="wikitable" | |
+ | ! scope="col" | Dateiname | ||
+ | ! scope="col" | Beschreibung | ||
+ | |- | ||
+ | | <tt>GrantUsersPrivilegesOnSelectedFolders_Server.ps1</tt><br/><tt>GrantUsersPrivilegesOnSelectedFolders_SPE.ps1</tt> | ||
+ | | Gewährt ausgewählten Benutzern Berechtigungen für alle Archive, mit Ausnahme der Archive, die ausdrücklich ausgeschlossen sind. | ||
+ | |} | ||
+ | [[de:Scripting]] | ||
[[en:Scripting]] | [[en:Scripting]] |
Aktuelle Version vom 26. September 2024, 10:04 Uhr
MailStore Server stellt mit der MailStore Server Management Shell und der MailStore Server Administration API leistungsfähige Schnittstellen zur Verfügung, mit deren Hilfe viele Aufgaben durch Skripte automatisiert werden können. Hierdurch können Szenarien implementiert werden, die sich nicht oder nur schwer über die Benutzeroberfläche abbilden lassen. Des Weiteren erlaubt die Verwendung von Skripten die Integration von MailStore Server in vorhandene Workflows oder Geschäftsprozesse.
Im Folgenden werden die Möglichkeiten der MailStore Server Administration API in verschiedenen Skriptsprachen beispielhaft dargestellt und erläutert. Zudem haben wir in unserem Scripting-Bereich einige Skripte zusammengestellt, welche die gezeigten Techniken verwenden und häufig nachgefragte Problemstellungen lösen. Diese werden zur freien Verfügung gestellt und können beliebig an die eigene Umgebung angepasst, erweitert oder als Grundlage für eigene Lösungen verwendet werden.
Wichtiger Hinweis: Der gesamte hier zur Verfügung gestellte Skriptcode ist als Referenz- bzw. Beispielimplementation zu betrachten. Sofern nicht anders angegeben, sind diese Skripte unter der MIT-Lizenz veröffentlicht.
Automatisierung mit Windows Batch-Skripten
Für einfache Aufgaben, wie z.B. den Massenimport oder -export von PST-Dateien, können auch Windows Batch Skripte verwendet werden. Diese steuern MailStore Server im Allgemeinen nicht über die MailStore Server Administration API, sondern über den MailStore Server Kommandozeileninterpreter an.
Bevor Sie die Windows Batch-Skripte in der Eingabeaufforderung cmd.exe ausführen können, öffnen Sie die Skript-Datei zunächst in einem Texteditor wie z.B. Notepad. Passen Sie die Konfigurationsvariablen oberhalb der Zeile DON'T CHANGE ANYTHING BEYOND THIS LINE entsprechend Ihrer lokalen Umgebung an. Achten Sie darauf, ggf. umschließende einfache oder doppelte Hochkommata nicht zu verändern.
Um den Fingerabdruck (Hash) des MailStore Server Zertifikats zu erhalten, folgen Sie diesen Schritten:
- Öffnen Sie die MailStore Server Dienst-Konfiguration.
- Klicken Sie auf Netzwerkeinstellungen.
- Klicken Sie auf den Namen des Serverzertifikats das für den MailStore Client Zugang verwendet wird.
- Der Fingerabdruck ist in den Details des Zertifikats aufgelistet.
Beachten Sie, dass beim Kopieren des Fingerabdrucks unter Umständen ein unsichtbares Zeichen for dem ersten Buchstaben in der Zwischenablage gelandet sein kann. Dieses Zeichen darf in den Skript-Dateien nicht mehr vorhanden sein. Siehe auch [1].
Verfügbare Windows Batch-Skripte
Dateiname | Beschreibung |
---|---|
bulkImportPST.bat | Importiere mehrere PST-Dateien aus einem angegebenen Verzeichnis in das Archiv eines MailStore Benutzers. Ein PST-Archivierungsprofil vom Typ Einzelner Benutzer namens 'templateBulkImportPST' muss zuvor manuell angelegt werden. |
bulkImportMBOX.bat | Importiere mehrere MBOX-Dateien aus einem angegebenen Verzeichnis in das Archiv eines MailStore Benutzers. Ein MBOX-Archivierungsprofil namens 'templateBulkImportMBOX' muss zuvor manuell angelegt werden. |
bulkExportPST.bat | Export aller Archive in mehrere PST-Dateien. Je eine pro MailStore Benutzer. Ein PST-Exportprofil namens 'templateBulkExportPST' muss zuvor manuell angelegt werden. |
bulkDeleteUsers.bat | Lösche alle MailStore Benutzer bis auf den Standardadministrator 'admin'. |
Automatisierung mit Python-Skripten
Komplexere Abläufe lassen sich mit höheren Skriptsprachen deutlich besser automatisieren als mit einfachen Batch-Skripten. Als weit verbreitete, plattformunabhängige und leicht zu erlernende, aber mächtige Skriptsprache eignet sich Python sehr gut zur Ansteuerung von MailStore Server über die MailStore Server Administration API.
Um Python-Skripte ausführen zu können, muss zunächst die Python-Runtime installiert werden. Die entsprechende Windows Setup-Datei kann unter http://www.python.org heruntergeladen werden. Auf einem Linux-System installieren Sie bitte die Python-Runtime über das Paketmanagement Ihrer Linux-Distribution.
Ebenfalls benötigt zum ausführen der Python-Scripte wird der Python API-Wrapper. Hinweise zur Installation des Python API-Wrappers finden Sie im entsprechenden Abschnitt des Python API-Wrapper Tutorial.
Um die Python-Skripte auszuführen, öffnen Sie die Skript-Datei zunächst in IDLE (Bestandteil der Python-Runtime). Passen Sie die Konfigurationsvariablen oberhalb der Zeile DON'T CHANGE ANYTHING BEYOND THIS LINE entsprechend Ihrer lokalen Umgebung an. Achten Sie darauf ggf. umschließende einfache oder doppelte Hochkommata nicht zu verändern.
Zum Starten des Skripts klicken Sie auf Run > Run Module oder drücken Sie die F5-Taste in IDLE. Ein neues Fenster erscheint, in welchem Sie die Standardausgaben des Skripts sowie etwaige Fehlermeldungen angezeigt bekommen.
Wenn Sie eigene Skripte in Python zur Automatisierung von MailStore Server Aufgaben erstellen möchten, bietet sich das Python API-Wrapper Tutorial als Einstieg an. Wenn Sie nur die von MailStore zur Verfügung gestellten Python-Skripte verwenden möchten, können Sie auch direkt zu diesen wechseln.
Verfügbare Python-Skripte
Dateiname | Beschreibung |
---|---|
merge_folders_server.py merge_folders_spe.py |
Führt Unterordner der ersten Ebene unterhalb eines Benutzerarchivs zusammen. Kann u.A. nach der Archivierung mehrer PSTs für einen Benutzer eingesetzt werden. |
create_user_folders_server.py create_user_folders_spe.py |
Erstelle Ordner im Dateisystem basierend auf den MailStore Benutzernamen. Kann zur Vorbereitung des Massenimport von EML-, MSG- und PST-Dateien verwendet werden. |
rename_inbox_server.py rename_inbox_spe.py |
In manchen Fällen kann es vorkommen, dass zwei Inbox Ordner (Inbox und INBOX) im Archiv existieren. Dieses Skript führt diese Ordner zusammen. Sie sollten den Namen als neuen gemeinsanem Namen wählen, der von den aktuellen Archivierungsprofilen befüllt wird. |
update_user_names_server.py update_user_names_spe.py |
Wenn sich der Verzeichnisdienst ändert, und dadurch die Benutzer neue Namen erhalten, werden auch neue Archive angelegt. Die Archivierung läuft dann unter Umständen in diese neuen, falschen Archive hinein. Dieses Skript kann zwischen der Änderung des Verzeichnisdienstes verwendet werden. Es werden die Benutzernamen, die Archivnamen und die Berechtigung auf das eigene Archiv angepasst. Wenn Berechtigungen auf weitere Archive vergeben wurden, müssen diese manuelle angepasst werden. |
check_mailstore_server_license.py check_mailstore_spe_license.py |
Nagios-/Icinga-Plugin zum Überwachen der verfügbaren Lizenzen. Siehe Monitoring für weitere Details. |
check_mailstore_server_results.py check_mailstore_spe_results.py |
Nagios-/Icinga-Plugin zum Überwachen der letzen Ergebnisse. Siehe Monitoring für weitere Details. |
bulk_import.py | Importiert E-Mail-Dateien von mehreren Benutzern. Siehe Massenimport von E-Mail-Dateien für weitere Details. |
Automatisierung mit PowerShell-Skripten
Als mit allen neueren Windows Versionen mitgelieferte Standardshell eignet sich auch die auf dem .NET Framework basierende Windows PowerShell sehr gut zur Ansteuerung von MailStore Server über die MailStore Server Administration API.
Der MailStore PowerShell API-Wrapper und die Skripte sind mit Windows PowerShell ab Version 3.0 kompatibel. Diese muss je nach Windows Version ggf. separat installiert werden und kann im Microsoft Download Center kostenlos heruntergeladen werden.
Wenn Sie eigene Skripte in PowerShell zur Automatisierung von MailStore Server Aufgaben erstellen möchten, bietet sich das PowerShell API-Wrapper Tutorial als Einstieg an. Wenn Sie nur die von MailStore zur Verfügung gestellten PowerShell Skripte verwenden möchten, können Sie auch direkt zu diesen wechseln.
Verfügbare Powershell-Skripte
Dateiname | Beschreibung |
---|---|
GrantUsersPrivilegesOnSelectedFolders_Server.ps1 GrantUsersPrivilegesOnSelectedFolders_SPE.ps1 |
Gewährt ausgewählten Benutzern Berechtigungen für alle Archive, mit Ausnahme der Archive, die ausdrücklich ausgeschlossen sind. |