ich habe ein Problem, seit wir von dem opsi-client-agent 4.0.6 auf 4.0.7 upgedatet haben, funktioniert ein Skript nicht mehr korrekt.
Es handelt sich um ein Skript, um der Gruppe "Benutzer" Vollzugriff auf einen installieren Matlab-Ordner zu geben.
Im Hauptskript wird dazu folgendes Sub-Skript aufgerufen:
Code: Alles auswählen
;################### Grant_RW_Permissions ####################
if not (GetProductProperty("grant_rw_permissions","skip") = "skip")
Message "Change Permissions"
sub "%ScriptPath%\skripte\grant_rw_permissions.ins"
endif
Code: Alles auswählen
; ###########################################################################
; ###########################################################################
;Dieses Skript muss im Regelfall nicht bearbeitet werden, wenn die gegebene
;Syntax der product properties im control file ueberall eingehalten wird.
; ###########################################################################
set $productproperty$ = GetProductProperty("grant_rw_permissions","skip")
set $workingkey$ = "HKEY_LOCAL_MACHINE\SOFTWARE\MathWorks\MATLAB"
set $INST_Resultlist$ = getFileInfoMap("C:\Windows\System32\icacls.exe")
set $icacls_lang$ = getValue("Language name 0", $INST_Resultlist$)
;welche icacls Sprache wird verwendet?
if (contains($icacls_lang$, "Deutsch"))
set $icacls_lang$ = "de"
endif
if (contains($icacls_lang$, "English"))
set $icacls_lang$ = "en"
endif
;Wenn fuer eine bestimme Matlab Version die Berechtigungen geaendert werden
;sollen
if not (($productproperty$ = "all") OR ($productproperty$ = "skip"))
set $split_product$=takeString(0, splitString ($productproperty$, "_"))
set $split_version$=takeString(1, splitString ($productproperty$, "_"))
if ($split_product$ = "matlab")
set $pathtomatlab_32bit$ = getRegistryKeyList32($workingkey$)
set $pathtomatlab_64bit$ = getRegistryKeyList64($workingkey$)
for %nr% in $pathtomatlab_32bit$ do sub_check_installed_specific_32bit
for %nr% in $pathtomatlab_64bit$ do sub_check_installed_specific_64bit
endif
endif
;Wenn fuer alle installierten Matlab Versionen die Brechtigungen geaendet
;werden sollen
if ($productproperty$ = "all")
set $pathtomatlab_32bit$ = getRegistryKeyList32($workingkey$)
set $pathtomatlab_64bit$ = getRegistryKeyList64($workingkey$)
for %nr% in $pathtomatlab_32bit$ do sub_check_installed_all_32bit
for %nr% in $pathtomatlab_64bit$ do sub_check_installed_all_64bit
endif
[sub_check_installed_specific_32bit]
set $matlabroot$ = GetRegistryStringValue32 ("[" + $workingkey$ + "\" + "%nr%" + "] MATLABROOT")
if contains($matlabroot$, $split_version$)
comment "Matlabroot der gesuchten Version gefunden"
Message="Granting permission to folder for User: User"
Sub_check_icacls_lang_and_change_permission
endif
[sub_check_installed_specific_64bit]
set $matlabroot$ = GetRegistryStringValue64 ("[" + $workingkey$ + "\" + "%nr%" + "] MATLABROOT")
if contains($matlabroot$, $split_version$)
comment "Matlabroot der gesuchten Version gefunden"
Message="Granting permission to folder for User: User"
Sub_check_icacls_lang_and_change_permission
endif
[sub_check_installed_all_32bit]
set $matlabroot$ = GetRegistryStringValue32 ("[" + $workingkey$ + "\" + "%nr%" + "] MATLABROOT")
comment "Matlabroot der gesuchten Version gefunden"
Message="Granting permission to folder for User: User"
Sub_check_icacls_lang_and_change_permission
[sub_check_installed_all_64bit]
set $matlabroot$ = GetRegistryStringValue64 ("[" + $workingkey$ + "\" + "%nr%" + "] MATLABROOT")
comment "Matlabroot der gesuchten Version gefunden"
Message="Granting permission to folder for User: User"
Sub_check_icacls_lang_and_change_permission
; ###########################################################################
; ###########################################################################
; ###########################################################################
;Ab hier funktioniert das Skript nicht wie es soll.
[Sub_check_icacls_lang_and_change_permission]
if ($icacls_lang$ = "de")
DosInAnIcon_grant_permission_de
endif
if ($icacls_lang$ = "en")
DosInAnIcon_grant_permission_en
endif
[DosInAnIcon_grant_permission_de]
icacls "$matlabroot$" /grant "Benutzer":(OI)(CI)(F)
[DosInAnIcon_grant_permission_en]
icacls "$matlabroot$" /grant "User":(OI)(CI)(F)
In der Log findet sich folgendes dazu:
Code: Alles auswählen
(361) [6] [Jan 11 12:45:07:329] [matlab] ~~~~~~~ Start Sub ~~~~~~~ Sub_check_icacls_lang_and_change_permission
(362) [6] [Jan 11 12:45:07:330] [matlab] If
(363) [9] [Jan 11 12:45:07:330] [matlab] EvaluateBoolean: Parsing: ($icacls_lang$ = "de")
(364) [9] [Jan 11 12:45:07:330] [matlab] EvaluateBoolean: Parsing: $icacls_lang$ = "de")
(365) [5] [Jan 11 12:45:07:330] [matlab] $icacls_lang$ = "de" <<< result true
(366) [5] [Jan 11 12:45:07:330] [matlab] ($icacls_lang$ = "de") <<< result true
(367) [6] [Jan 11 12:45:07:330] [matlab] Then
(368) [9] [Jan 11 12:45:07:330] [matlab] Looking for section: DosInAnIcon_grant_permission_de in standard section.
(369) [9] [Jan 11 12:45:07:330] [matlab] Looking for section: DosInAnIcon_grant_permission_de in calling section.
(370) [9] [Jan 11 12:45:07:330] [matlab] Looking for section: DosInAnIcon_grant_permission_de in global section.
(371) [4] [Jan 11 12:45:07:330] [matlab] Warning: The section "DosInAnIcon_grant_permission_de" (called in line 2 of the calling section) does not exist or is empty
(372) [6] [Jan 11 12:45:07:330] [matlab] EndIf
(373) [6] [Jan 11 12:45:07:330] [matlab] If
(374) [9] [Jan 11 12:45:07:330] [matlab] EvaluateBoolean: Parsing: ($icacls_lang$ = "en")
(375) [9] [Jan 11 12:45:07:330] [matlab] EvaluateBoolean: Parsing: $icacls_lang$ = "en")
(376) [5] [Jan 11 12:45:07:331] [matlab] $icacls_lang$ = "en" <<< result false
(377) [5] [Jan 11 12:45:07:331] [matlab] ($icacls_lang$ = "en") <<< result false
(378) [6] [Jan 11 12:45:07:331] [matlab] Then
(379) [6] [Jan 11 12:45:07:331] [matlab] EndIf
(380) [6] [Jan 11 12:45:07:331] [matlab]
(381) [6] [Jan 11 12:45:07:331] [matlab] ~~~~~~~ End Sub ~~~~~~~ Sub_check_icacls_lang_and_change_permission
(382) [6] [Jan 11 12:45:07:331] [matlab]
(383) [6] [Jan 11 12:45:07:331] [matlab] EndIf
(384) [6] [Jan 11 12:45:07:331] [matlab]
(385) [6] [Jan 11 12:45:07:331] [matlab] ~~~~~~~ End Sub ~~~~~~~ sub_check_installed_specific_64bit
(386) [6] [Jan 11 12:45:07:331] [matlab]
(387) [6] [Jan 11 12:45:07:331] [matlab]
(388) [6] [Jan 11 12:45:07:331] [matlab] ~~~~~~ End Loop
(389) [6] [Jan 11 12:45:07:331] [matlab] EndIf
(390) [6] [Jan 11 12:45:07:331] [matlab] EndIf
Danke und viele Grüße
Patrick