LesezeichenAbonnierenRSS-Feed abonnieren
CHoens
Calcite | Level 5

Hallo zusammen,

ich würde gerne unter SAS 9.4 (unter Win2012) einen Wert aus der Windows-Registry abfragen.

Es geht ganz einfach um HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip\Path.

Trotz dieser Quellen

http://blogs.sas.com/content/sasdummy/2012/05/22/windows-reg-query-from-sas/

http://support.sas.com/resources/papers/proceedings14/2081-2014.pdf

http://www.devenezia.com/downloads/sas/sascbtbl/Registry-Demo.sas

bekomme ich das einfach nicht hin.

Die erste Quelle zeigt einen einfachen Weg auf, aber leider ist das Req Query Privileg auf unserem System gesperrt.

Dem zweiten und dritten Dokument kann ich leider nicht folgen.

Hat hier jemand ein funktionierendes Beispiel dazu?

Freundliche Grüße

Christian H.

2 ANTWORTEN 2
AndreasMenrath
Pyrite | Level 9

Hallo Christian,

Quelle 1 wird auf den meisten SAS Systemen scheitern, da die Option NOXCMD auf SAS Servern als Standard gesetzt ist (das sollte auch besser so bleiben). Es ist aber auch gut möglich, dass der Windows Administrator die Verwendung des Tools untersagt hat.

Quellen 2 und 3 beschreiben einen anderen Weg. Hier wird direkt die Windows API über die Einbindung von C-DLLs aus dem C:\Windows\System32 Ordner auf die Registry zugegriffen. Das ist aus meiner Erfahrung heraus relativ fehleranfällig und mühselig. Hinzu kommt, dass SAS keine brauchbaren Fehler liefert und das Debugging zur Geduldsprobe wird.

Allgemein ist noch zur Windows Registry zu sagen, dass es eine 32bit und eine 64bit Registry gibt. Wenn du versuchst aus einen 64bit SAS Prozess heraus auf den Schlüssel aus der 32bit Registry zuzugreifen, musst du evtl. in einem anderen Pfad suchen. Versuche es einmal mit HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\7-Zip\Path.

Wenn es sich irgendwie vermeiden lässt, solltest du auf Abfragen gegen die Registry verzichten. Da es bei deiner Anfrage um ein ZIP Tool handelt, könntest du unter SAS 9.4 auch die neue ZIP Filename Engine verwenden, oder deinen Windows Administrator bitten den Pfad von 7ZIP in die PATH-Umgebungsvariable mit aufzunehmen, damit man das Tool auch ohne den vollen Pfadnamen aufrufen kann.

Viele Grüße,

Andreas

CHoens
Calcite | Level 5

Hallo Andreas,

Danke für die Info.

Im konkreten Fall habe ich den Vorschlag mit PATH schon umgesetzt. Funktioniert erst mal.

Ist aber trotzdem frustrierend, mit SAS solche Registry-Abfragen nicht machen zu können.

Gruß

Christian