Prüfen ob Registry-Schlüssel exisitert

ahcsas
Beiträge: 17
Registriert: 20 Jun 2011, 09:28

Prüfen ob Registry-Schlüssel exisitert

Beitragvon ahcsas » 19 Nov 2012, 15:50

Hallo,

kann es sein, dass es nicht möglich ist zu prüfen, ob ein Registry-Schlüssel existiert? Ich würde gerne auf die Existenz von HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client prüfen, bekomme es aber mit GetRegistryStringValue nicht hin.

Wer hilft mir auf die Sprünge?

Danke & Gruß
Sascha
Viele Grüße
Sascha

thomas.besser
Beiträge: 314
Registriert: 09 Sep 2009, 09:40

Re: Prüfen ob Registry-Schlüssel exisitert

Beitragvon thomas.besser » 19 Nov 2012, 16:12

Funktioniert hier wunderbar.

Was sagt denn die entsprechende Meldung im Log? Das hilft i.d.R. weiter

Außerdem kann man dir nur helfen, wenn du mal die entsprechende Codezeile deines Skriptes postest.

Gruß
Thomas

ahcsas
Beiträge: 17
Registriert: 20 Jun 2011, 09:28

Re: Prüfen ob Registry-Schlüssel exisitert

Beitragvon ahcsas » 20 Nov 2012, 10:11

Hi,

Habe schon verschiedenstes ausprobiert. Hier mal ein Ansatz, der nicht funktioniert hat:

Code: Alles auswählen

if (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client]") = "")
   set $TestCtxReg$ = "true"
else
   set $TestCtxReg$ = "false"
endif


Liefert immer "true". Egal ob der Key existiert oder nicht.
Nochmal zur Klarstellung: Ich will nicht auf einen Wert prüfen sondern nur auf den Unterschlüssel.

Danke!

Gruß
Sascha
Viele Grüße
Sascha

erwinr
Beiträge: 104
Registriert: 25 Feb 2009, 10:08

Re: Prüfen ob Registry-Schlüssel exisitert

Beitragvon erwinr » 20 Nov 2012, 14:05

und umgekehrt?

Code: Alles auswählen

set $TestCtxReg$ = GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client]")
if ($TestCtxReg$ = "")
    comment "Key existiert nicht!"
else
    comment "Key existiert!"
endif

thomas.besser
Beiträge: 314
Registriert: 09 Sep 2009, 09:40

Re: Prüfen ob Registry-Schlüssel exisitert

Beitragvon thomas.besser » 20 Nov 2012, 14:29

Ich denke um das Problem zu lösen, muss man wissen, was das entsprechende Logfile unter 'instlog' zu den ausgeführten Codezeilen meldet.

Gruß
Thomas

ahcsas
Beiträge: 17
Registriert: 20 Jun 2011, 09:28

Re: Prüfen ob Registry-Schlüssel exisitert

Beitragvon ahcsas » 20 Nov 2012, 15:42

Hallo,

das Log aus meinem letzten Versuch:

Code: Alles auswählen

[5] [20.11.2012 10:08:58]   
[5] [20.11.2012 10:08:58]   If
[6] [20.11.2012 10:08:58]       Registry key [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\]  opened
[6] [20.11.2012 10:08:58]       Variable "ICA Client"  not found. Code: 2
[6] [20.11.2012 10:08:58]       Variable "ICA Client"  not found. Code: 2
[6] [20.11.2012 10:08:58]       Key closed
[5] [20.11.2012 10:08:58]     GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\]ICA Client") = ""   <<< result true
[5] [20.11.2012 10:08:58]     (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\]ICA Client") = "")   <<< result true
[5] [20.11.2012 10:08:58]   Then
[5] [20.11.2012 10:08:58]     
[5] [20.11.2012 10:08:58]     Set  $TestCtxReg$ = "true"
[6] [20.11.2012 10:08:58]       The value of the variable "$TestCtxReg$" is now: "true"
[5] [20.11.2012 10:08:58]   
[5] [20.11.2012 10:08:58]   Else
[5] [20.11.2012 10:08:58]   EndIf


Und hier mit dem Vorschlag von erwinr:

Code: Alles auswählen

[5] [20.11.2012 15:40:23]   
[5] [20.11.2012 15:40:23]   Set  $TestCtxReg$ = GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client]")
[6] [20.11.2012 15:40:23]     Registry key [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client]  opened
[6] [20.11.2012 15:40:23]     Variable ""  not found. Code: 2
[6] [20.11.2012 15:40:23]     Variable ""  not found. Code: 2
[6] [20.11.2012 15:40:23]     Key closed
[6] [20.11.2012 15:40:23]     The value of the variable "$TestCtxReg$" is now: ""
[5] [20.11.2012 15:40:23]   
[5] [20.11.2012 15:40:23]   If
[5] [20.11.2012 15:40:23]     $TestCtxReg$ = ""   <<< result true
[5] [20.11.2012 15:40:23]     ($TestCtxReg$ = "")   <<< result true
[5] [20.11.2012 15:40:23]   Then
[5] [20.11.2012 15:40:23]     comment: Key existiert nicht!
[5] [20.11.2012 15:40:23]   
[5] [20.11.2012 15:40:23]   Else
[5] [20.11.2012 15:40:23]   EndIf


Gruß
Sascha
Viele Grüße
Sascha

thomas.besser
Beiträge: 314
Registriert: 09 Sep 2009, 09:40

Re: Prüfen ob Registry-Schlüssel exisitert

Beitragvon thomas.besser » 20 Nov 2012, 16:17

Die Fehlermeldung ist ja relativ eindeutig.

Hat denn dieser Eintrag "HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client" irgendwelche Variablen?

Siehe auch http://download.uib.de/opsi4.0/doc/html ... ctions-reg

ahcsas
Beiträge: 17
Registriert: 20 Jun 2011, 09:28

Re: Prüfen ob Registry-Schlüssel exisitert

Beitragvon ahcsas » 20 Nov 2012, 16:47

Ja, es gibt in der Regel eine Variable die ich in dem Fall hernehmen könnte. Aber die eigentliche Fragestellung war ja, lediglich auf die Existenz eines Unterschlüssels zu prüfen. Ich wollte auch eher generell wissen, ob dies möglich ist. Der Citrix Key war nur als Beispiel gedacht. Wir haben übrigens auch einen Support-Vertrag, ich wollte nur UIB nicht mit solchem Pipifax belästigen ;-)

Gruß
Sascha
Viele Grüße
Sascha