DosInAnIcon aus Sub-Skript aufrufen klappt nicht mehr
Verfasst: 11 Jan 2017, 13:28
Hallo,
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:
Im Sub-Skript wird nun ermittelt, wo sich die Matlab Version befindet, welche Sprache icacls benutzt und dann wird der Gruppe "Benutzer" Bzw. "User" Vollzugriff auf den Ordner gegeben.
Das Skript läuft soweit auch durch, findet im unteren Teil des Skripts weder die DosInAnIcon_grant_permission_de noch die DosInAnIcon_grant_permission_en Sektion.
In der Log findet sich folgendes dazu:
Hat wer eine Idee? Kann man seit der neuen Winst-Version keine DosInAnIcon Sektion mehr aus einer Sub-Sektion aus einem Sub-Skript aufrufen?
Danke und viele Grüße
Patrick
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