Satellitendatenbank als GeoSync-Abonnent

In diesem Szenario wird eine Personalisierungsserver-Datenbank durch den Export eines Teils einer Konfiguration oder einer ganzen Konfiguration aus einer größeren Hauptdatenbank (durch Verwendung der Import-/Exportfunktion) erstellt und an einem entfernten Standort für eine kleinere Anzahl an Benutzern bereitgestellt. Der Kunde setzt GeoSync ein, um einige Benutzer zwischen der Hauptdatenbank und der Satellitendatenbank zu synchronisieren, die als GeoSync-Herausgeber bzw. GeoSync-Abonnent bezeichnet werden. Mit den bisherigen Skripten zur Mergereplikation war dies nicht möglich, da sie die gesamte Datenbank synchronisieren.

Durch den Import/Export einer Konfiguration werden die Datenbank-IDs (GUIDs) geändert, auf deren Basis die GeoSync-Funktion den Herausgeber und den Abonnenten abgleicht. Dieses Problem wird gelöst, indem alle GUIDs im Abonnenten so geändert werden, dass sie denen im Herausgeber entsprechen. Zu diesem Zweck ist eine Abschaltung des Abonnenten erforderlich, sodass sich kein betroffener Benutzer anmelden kann und alle Offline-Caches auf den Benutzergeräten ungültig gemacht werden, da sie beim nächsten Verbindungsversuch nicht auf die geänderte Datenbank zurückgespeichert werden können. Es kann keine Synchronisierung durchgeführt werden, wenn die Spalte "OriginalName" in keiner Windows-Einstellungsgruppe der Spalte beim Herausgeber und beim Abonnenten entspricht.

Die GUID-Zuordnung wird von einem PowerShell-Skript (PrepareGeoSubscriber.ps1) unter Verwendung des sqlcmd-Hilfsprogramms und zweier SQL-Skripte (CheckMapping.sql und MapUgs.sql) ausgeführt, die im gleichen Ordner liegen müssen.

Die Skripte befinden sich hier: :%systemdrive%\Programme\AppSense\Environment Manager\Personalization Server\Support

Einschränkungnen

Wenn die Herausgeber- und die Abonnentendatenbank nicht mit der gleichen Softwareversion erstellt werden, kann es zu folgenden Problemen kommen:

  • Durch die Einführung von Windows 10 und Server 2016 haben sich die Namen einiger Windows-Einstellungsgruppen in den verschiedenen Datenbankversionen geändert. Wenn Gruppen von und zum Abonnenten exportiert und importiert werden und auf dem Abonnenten sowohl alte als auch neue Namen vorhanden sind, ist die Synchronisierung von Windows-Einstellungsgruppen nicht möglich, da sich die Spalten "OriginalName" in der Tabelle "DesktopSettings.[Group]" unterscheiden. Die ursprünglichen Namen lassen sich nicht problemlos ändern, da sowohl die Tabelle "ApplicationData" als auch die Tabelle "ApplicationDataArchives" gescannt werden müsste. Der in diesem Thema beschriebene Zuordnungsvorgang unterstützt dies nicht.
  • Zu synchronisierende Benutzer, die sowohl im Herausgeber als auch im Abonnenten vorhanden sind und die mit Versionen des Personalisierungsservers erstellt wurden, die älter als 8.4 sind, können nicht synchronisiert werden, denn vor 8.4 wurden Benutzerkennungen (Spalte "UserPK") gemäß dem üblichen GUID-Algorithmus zufällig zugewiesen. Seit 8.4 werden die GUIDs von den SIDs des Benutzers abgeleitet und werden datenbankübergreifend verwendet. Dieses Problem kann gelöst werden, indem die betroffenen Benutzer mit SQL DELETE in der Tabelle dbo.[User].table aus einer der Datenbanken physisch gelöscht werden.

Voraussetzungen

  • Über die integrierte Windows-Authentifizierung hat der Benutzer, der die Skripte ausführt, auf beide Datenbanken Zugriff als Systemadministrator.
  • Die Skripte werden auf einem Gerät ausgeführt, auf der das Hilfsprogramm sqlcmd.exe im aktuellen Pfad steht. Am einfachsten ist es eventuell, einen der beteiligten Datenbankenserver zu verwenden, doch sqlcmd.exe kann durch Download der entsprechenden MSI von Microsoft auf einem anderen Gerät installiert werden.
  • Die Herausgeber- und die Abonnentendatenbank müssen auf die jeweils andere zugreifen können und das Skript muss über das Netzwerk auf beide zugreifen können. Sowohl sqlcmd als auch die GeoSync-Software verwenden normale SQL-Serververbindungen (normalerweise an Port 1433).

Erste Einrichtung

Das Skript wird immer nur auf eine Personalisierungsgruppe gleichzeitig angewendet. Die (durch einen Namen gekennzeichnete) Personalisierungsgruppe muss vor dem Start sowohl beim Herausgeber als auch beim Abonnenten angezeigt werden. Es wird vorausgesetzt, dass GeoSync noch nicht eingerichtet ist und die Begriffe "Herausgeber" und "Abonnent" beziehen sich auf die geplante Nutzung.

Normalerweise wird vorausgesetzt, dass eine Personalisierungsgruppe mit der Import/Export-Funktion vom Herausgeber exportiert und in den Abonnenten importiert wird. Wenn jedoch eine neue Personalisierungsgruppe anhand von Anwendungsgruppen und Windows-Einstellungsgruppen, die vom Herausgeber importiert wurden, auf dem Abonnenten erstellt wird, ist es möglich, sie durch Export vom Abonnenten und Rückimport zum Herausgeber zu synchronisieren.

In beiden Fällen setzt das Skript voraus, dass die zu synchronisierende Personalisierungsgruppe zu Beginn auf beiden Datenbanken vorhanden ist.

Ausführen des Skripts

Das PowerShell-Skript und die beiden SQL-Skripte müssen im gleichen Verzeichnis liegen. Führen Sie das PowerShell-Skript über eine PowerShell-Eingabeaufforderung aus – eine Rechteerweiterung ist nicht erforderlich. Sie fordert dazu auf, die Daten beider Datenbanken und den Namen der Personalisierungsgruppe zu synchronisieren. Es werden Prüfungen durchgeführt, um zu ermitteln, ob die festgelegte Datenbank vorhanden ist. Anschließend werden die beiden SQL-Skripte ausgeführt. Diese Skripte werden zwar auf dem Abonnenten ausgeführt, kontaktieren jedoch den Herausgeber, indem sie einen verknüpften Servereintrag erstellen, der anschließend gelöscht wird.

Die beiden Skripte haben folgende Funktionen:

  • CheckMapping.sql – Vergleicht alle Daten der Gruppe, um mögliche Probleme zu erkennen. Diese Probleme werden einer von drei Kategorien zugeordnet:
    • Warnungen – Hier umfasst die Personalisierungsgruppe auf dem Herausgeber zusätzliche Einheiten wie etwa Anwendungsgruppen, die auf dem Abonnenten nicht vorhanden sind. Daher empfängt der Abonnent durch die Synchronisation eventuell zusätzliche Einheiten.
    • Fehler – Die Personalisierungsgruppe auf dem Abonnenten umfasst zusätzliche Einheiten, die auf dem Herausgeber nicht vorhanden sind. Dadurch können Daten vom Abonnenten verschwinden und sollten gesucht werden.
    • Schwerwiegende Fehler – Die "originalname"-Felder der Windows-Einstellungsgruppen stimmen beim Herausgeber und beim Abonnenten nicht überein, im allgemeinen aufgrund von bereits vorhandenen vergleichbaren Daten auf dem Abonnenten. Es kann keine Zuordnung durchgeführt werden.
  • MapUGs.sql – Führt die Zuordnung aus. Kann nicht ausgeführt werden, wenn schwerwiegende Fehler entdeckt wurden. Vor der Ausführung wird eine Eingabeaufforderung angezeigt. So kann der Benutzer die gewünschten Änderungen vornehmen und den Vorgang erneut starten.

Einrichten von GeoSync

Nach dem Synchronisieren der Personalisierungsgruppe kann GeoSync zwischen den beiden Datenbanken wie hier beschrieben aktiviert werden. Nach dem Einrichten muss die synchronisierte Personalisierungsgruppe auf ihrer GeoSync-Registerkarte auf der Environment Manager-Konsole als synchronisiert festgelegt werden. Wenn für diese Gruppe Daten auf dem Herausgeber vorhanden sind, müssen ggf. GeoSync-Bedingungen eingerichtet werden, um sicherzustellen, dass nicht alle Daten des Herausgebers zum Abonnenten gesendet werden.

Aktion "CheckMapping"

CheckMapping.sql prüft Folgendes in der Herausgeber- und der Abonnentendatenbank:

Prüfung

Problemkategorie

Die Personalisierungsgruppe ist nicht in beiden Datenbanken vorhanden.

Schwerwiegender Fehler

Die Kontrollkästchen auf der Registerkarte "Einstellungen" stimmen in den Personalisierungsgruppen nicht überein.

Warnung

In beiden Datenbanken sind betroffene Benutzer mit der gleichen SID aber unterschiedlichen GUIDs vorhanden.

Schwerwiegender Fehler

Für die Einstellung der erweiterten Eigenschaft "UpgradeFbrToHive" wurden in den Datenbanken unterschiedliche Einstellungen vorgenommen.

Schwerwiegender Fehler

Die Zuweisung von Anwendungsgruppen unterscheidet sich.

Der Herausgeber hat mehr Anwendungsgruppen Warnung

Der Abonnent hat mehr Anwendungsgruppen Fehler

Die der Anwendungsgruppe zugewiesenen Anwendungen unterscheiden sich.

Der Herausgeber hat mehr: Warnung

Der Abonnent hat mehr: Fehler

Die Anwendungsdefinitionen unterscheiden sich – EXE, Betriebssystemversion, Dateiversion.

Der Herausgeber hat mehr: Warnung

Der Abonnent hat mehr: Fehler

Die den Anwendungsgruppen zugewiesenen Registrierungs-, Datei- und Ordnerpfade unterscheiden sich.

Der Herausgeber hat mehr: Warnung

Der Abonnent hat mehr: Fehler

Die verwalteten Ordner der Anwendungsgruppen unterscheiden sich.

Der Herausgeber hat mehr: Warnung

Der Abonnent hat mehr: Fehler

In den Datenbanken wurden unterschiedliche Windows-Einstellungsgruppen zugewiesen.

Der Herausgeber hat mehr: Warnung

Der Abonnent hat mehr: Fehler

Die Komponenten, Einstellungen, benutzerdefinierten Einstellungen und Bedingungen der Windows-Einstellungsgruppen unterscheiden sich.

Der Herausgeber hat mehr: Warnung

Der Abonnent hat mehr: Fehler

Die Spalten "OriginalName" der zu synchronisierenden Windows-Einstellungsgruppen unterscheiden sich.

Dazu kann es durch den Import kommen, wenn vorhandene Windows-Einstellungsgruppen auf dem Abonnenten die gleichen ursprünglichen Namen hatten. Dies lässt sich nicht einfach lösen, da der ursprüngliche Name in den Daten und Archiven verwendet und nicht durch das Skript "MapUGs.sql" festgelegt wird.

Schwerwiegender Fehler