Seite 1 von 1

Prüfen ob Registry-Schlüssel exisitert

Verfasst: 19 Nov 2012, 15:50
von ahcsas
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

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

Verfasst: 19 Nov 2012, 16:12
von thomas.besser
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

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

Verfasst: 20 Nov 2012, 10:11
von ahcsas
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

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

Verfasst: 20 Nov 2012, 14:05
von erwinr
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

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

Verfasst: 20 Nov 2012, 14:29
von thomas.besser
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

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

Verfasst: 20 Nov 2012, 15:42
von ahcsas
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

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

Verfasst: 20 Nov 2012, 16:17
von thomas.besser
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

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

Verfasst: 20 Nov 2012, 16:47
von ahcsas
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