Setup für Access: Vertrauenswürdige Speicherorte

Christoph Jüngling, https://www.juengling-edv.de

Das in diesem Artikel beschriebene Konzept hat das Ziel, die Registrierung des Installationsverzeichnisses als vertrauenswürdigen Speicherort zu automatisieren. Dadurch entfällt die Notwendigkeit für den Anwender, dies in Access selbst einzutragen. Vor allem vermeiden wir durch die spezifische Festlegung nur eines Verzeichnisses als vertrauenswürdig das Risiko, dass der Anwender unnötig viele Unterverzeichnisse quasi nebenher als vertrauenswürdig einstuft (was sie vielleicht nicht sein sollten).

Automatisierung des Eintrags für die vertrauenswürdigen Speicherorte

Das Konzept der “vertrauenswürdigen Speicherorte” ist seit längerem für (meines Wissens) alle Office-Programme von Microsoft gängig. Wie schon im vorherigen Artikel erläutert, möchte Microsoft damit verhindern, dass irgendeine Datei mit VBA-Code auf unsere Festplatte gelangt und ohne weitere Kontrolle ausgeführt wird.

Ich habe von Leuten gehört, die der Einfachheit halber C:\ und alle Unterverzeichnisse als vertrauenswürdig einstufen, aber das scheint mir ein scheunentorgroßes Loch in die Sicherheit unseres Rechners zu schlagen. Jedes Verzeichnis, auch das Standardverzeichnis für temporäre Dateien, würde es dann erlauben, dass VBA-Makros ausgeführt werden! Das kann nicht in unserem Sinne sein.

Bei Word und Excel zum Beispiel gibt es einen Trick: die digitale Signatur von VBA-Makros. Diese sichert die VBA-Makros der betreffenden Datei einerseits gegen Veränderungen ab, andererseits macht sie den Autor des Makros überprüfbar.

In Verbindung mit der Einstellung Alle Makros außer digital signierten deaktivieren (siehe Bild 1) erhält man so die Möglichkeit, die Makros aus dem eigenen Haus aktiv zu lassen, alle anderen jedoch zu blockieren.

Trustcenter-Einstellung für VBA-Makros

Bild 1: Trustcenter-Einstellung für VBA-Makros

Leider funktioniert die Verwendung einer digitalen Signatur für die VBA-Makros in Access nicht. Deshalb sind wir auf die korrekte Konfiguration der vertrauenswürdigen Speicherorte angewiesen.

Einen vertrauenswürdigen Speicherort eintragen

Schauen wir uns das zunächst bei den Einstellungen von Access an. Das ist ein wichtiger Aspekt, denn diese Einstellung kann und muss für jedes Programm und jeden Windows-Useraccount individuell vorgenommen werden.

Öffnen Sie in Access Optionen|Trust Center|Einstellungen für das Trustcenter. Dort finden Sie den Eintrag Vertrauenswürdige Speicherorte. Falls dort bei Ihnen noch nichts steht, tragen Sie ruhig mal ein Verzeichnis ein, wie in Bild 2 gezeigt. Der Haken für die Unterordner muss nicht gesetzt werden, da diese Einstellung nur unsere .accdb-Datei betrifft.

Eingabeformular für einen vertrauenswürdigen Speicherort

Bild 2: Eingabeformular für einen vertrauenswürdigen Speicherort

Unsere Eingabe wird in der Registry gespeichert, sobald wir die Dialoge mit OK bestätigt haben. Dies erfolgt unter dem Pfad HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Access\Security\Trusted Locations (siehe Bild 3).

Registry-Eintrag eines vertrauenswürdigen Speicherorts

Bild 3: Registry-Eintrag eines vertrauenswürdigen Speicherorts

Die einzelnen Einträge erhalten dabei automatisch Namen wie hier im Beispiel Location1. Sobald ein solcher Eintrag von uns gelöscht wird, wird er auch aus der Registry entfernt.

Damit haben wir eine Möglichkeit gefunden, den vertrauenswürdigen Speicherort für unsere eigene Applikation automatisiert einzutragen. Jetzt geht es nur noch darum, das richtige Format zu finden.

Wie man oben sieht, enthält der Registry-Pfad unter anderem die interne Access-Versionsnummer. Da ich diesen Artikel mit Access 2019 vorbereitet habe, steht dort 16.0.

Diese Versionsnummer müssen wir während unserer Setupausführung ermitteln und korrekt verwenden.

Die zweite Aufgabe betrifft die erkennbare Durchnummerierung der Location-Einträge. Doch hier gibt es eine ganz einfache Lösung: Das muss gar nicht sein. Wenn ich probeweise mal einen Eintrag umbenenne, funktioniert alles weiterhin wie gewohnt. Das heißt, dass wir zum Beispiel unsere Konstante {#MyAppName} dafür hernehmen können.

Pascal-Scripting in InnoSetup

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar