Ist das kompliziert, ich versteh es einfach nicht, tut mit Leid.
Hier noch mal mein angepasster Programmcode:
Code: Alles auswählen
[Initial]
Message=Installiere xxxx ......
LogLevel=3
ExitOnError=false
ScriptErrorMessages=on
TraceMode=off
StayOnTop=false
DefVar $SystemType$
DefVar $s$
DefVar $SearchValue$
DefVar $SearchRegKey$
DefVar $SearchRegValue$
Set $SystemType$ = GetSystemType
set $SearchRegKey$ = "HKLM\SOFTWARE\opsi.org\preloginloader"
set $SearchRegValue$ = "pxe-installed"
DefStringlist $ResultList$
DefStringlist $ResultList2$
DefStringlist $ResultList3$
[Aktionen]
ShowBitmap /3 "%scriptpath%\xxx.png"
if $SystemType$ = "64 Bit System"
set $ResultList$ = getOutStreamFromSection("execWith_reg_query '%SystemRoot%\cmd64.exe' /C")
for $s$ in $ResultList$ do sub_fetch_SearchResult
else
set $SearchResult$ = GetRegistryStringValue("["+$SearchKey$+"] "+$SearchValue$)
endif
[execWith_reg_query]
@echo off
reg query "$SearchRegKey$" /v "$SearchRegValue$"
;reg query "HKLM\SOFTWARE\opsi.org\preloginloader" /v pxe-installed
[sub_fetch_SearchResult]
set $ResultList2$ = splitStringOnWhiteSpace("$s$")
if $SearchValue$ = takeString(1,$ResultList2$)
if not (takeString(3,$ResultList2$) = "")
set $ResultList3$ = getSublist(3:, $ResultList2$)
set $SearchResult$ = composeString($ResultList3$," ")
else
set $SearchResult$ = ""
endif
endif
pause $ResultList$
Vielleicht wäre es hilfreich, wenn Sie mal ein Beispiel hier posten indem Sie unter einem 64-Bit System nur einen Registry Wert auslesen und auswerten, damit ich mal sehen kann wie das genau funktioniert, bzw. was genau benötigt wird. Das Script aus dem Paket "opsi-template-with-admin_1.0-2.opsi" ist mit zu komplex. Schon mal Dank im Voraus.