Verknüpfung für "software on demand" fehlt

Antworten
poly
Beiträge: 11
Registriert: 13 Okt 2011, 09:28

Verknüpfung für "software on demand" fehlt

Beitrag von poly »

Hallo zusammen,

bei der Installation des opsi-client-agent (Version 4.0.6.3-5) wird auf dem Client weder der Ordner "opsi.org" noch die Verknüfung "software on demand" eingerichtet. Mit früheren Version funktionierte das einwandfrei. Auf dem Server ist software-on-demand freigegeben und ein manueller Aufruf von "https://localhost:4441/swondemand" öffnet die Seite wie gewohnt, es fehlt also lediglich die Verknüfung.
Ich habe es auf mehreren Client getestet, immer mit dem gleichen Ergebnis.

Gruß
Thomas
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Verknüpfung für "software on demand" fehlt

Beitrag von n.wenselowski »

Hi,

kanns gerade nicht nachstellen bei mir.

Welches OS haben die Clients?
Das Setting bzgl. Aktivierung von software-on-demand ist aktiv und der opsi-client-agent wurde neu verteilt?


Gruß

Niko

Code: Alles auswählen

import OPSI
poly
Beiträge: 11
Registriert: 13 Okt 2011, 09:28

Re: Verknüpfung für "software on demand" fehlt

Beitrag von poly »

Hallo,

die Clients haben in der Regel Windows 7 64Bit.

Vielleicht habe ich mich unverständlich ausgedrückt.
Technisch funktioniert im Prinzip alles, software-on-demand ist aktiv und der opsi-client-agent arbeitet auch fehlerfrei, es fehlt lediglich im Startmenu die Verknüpfung auf "https://localhost:4441/swondemand", d.h. es gibt unter Start->Alle Programme keinen Ordner "opsi.org" und logischerweise dann auch keine Verknüpfung "software-on-demand".

Gruß
Thomas
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Verknüpfung für "software on demand" fehlt

Beitrag von n.wenselowski »

Hi Thomas,

danke für den Hinweis.

Kannst du ein instlog von einer opsi-client-agent-Installation posten, damit wir schauen können wo dort was klemmt?


Gruß

Niko

Code: Alles auswählen

import OPSI
poly
Beiträge: 11
Registriert: 13 Okt 2011, 09:28

Re: Verknüpfung für "software on demand" fehlt

Beitrag von poly »

Hallo Niko,

es gibt eine neue Erkenntnis !

Wird der opsi-client-agent mit Hilfe des configed installiert funktioniert alles wunderbar, auch wenn zuvor die Verknüpfung im Startmenu zum Testen gelöscht wurde. Am Ende der Installation ist die Verknüpfung wie gewünscht vorhanden.
Die Logdatei (c:\opsi.org\log\opsi-script.log) zeigt die erfolgreiche Einrichtung der Verknüfung:

Code: Alles auswählen

...
[6] [Nov 25 10:58:52:950] [opsi-client-agent]   Then
[5] [Nov 25 10:58:52:950] [opsi-client-agent]     
[5] [Nov 25 10:58:52:950] [opsi-client-agent]     Execution of LinkFolder_install_softwareOnDemand
[6] [Nov 25 10:58:52:950] [opsi-client-agent]       Base folder is the COMMON PROGRAMS folder
[6] [Nov 25 10:58:52:951] [opsi-client-agent]       Created "opsi.org" in the COMMON PROGRAMS folder
[6] [Nov 25 10:58:53:010] [opsi-client-agent]         ShellLink "software on demand" created
[6] [Nov 25 10:58:53:010] [opsi-client-agent]   EndIf
...
Wird der opsi-client-agent aber mit Hilfe der CMD-Datei \\opsi-server\opsi_depot\opsi-client-agent\service_setup.cmd installiert, dann wird am Ende der Installation keine Verknüfung im Startmenü erstellt.

Ich bin mir nicht sicher ob ich hier die richtige Log-Datei erwischt habe. Ich kann jedenfalls nicht finden wo die Verknüpfung eingerichtet wird.

Auszug aus c:\opsi.org\log\opsi-script.log (vorher werden ja nur Dateien kopiert und ACL's gesetzt)

Code: Alles auswählen

...
[6] [Nov 25 11:06:59:368]               SetACL finished successfully.
[6] [Nov 25 11:06:59:368]   
[7] [Nov 25 11:06:59:376]   The file: c:\opsi.org\tmp\_opsiscript_Ok64Nz51.cmd has been deleted
[6] [Nov 25 11:06:59:376]   Delete "c:\opsi.org\tmp\_opsiscript_*"
[6] [Nov 25 11:06:59:376]     Search "c:\opsi.org\tmp\"
[6] [Nov 25 11:06:59:376]     Search "c:\opsi.org\tmp\_opsiscript_*"
[5] [Nov 25 11:06:59:383]   comment: *.opsiscript should be opend by winst32.exe
[5] [Nov 25 11:06:59:385]   
[5] [Nov 25 11:06:59:385]   Execution of Registry_open_opsiscript
[7] [Nov 25 11:06:59:385]     Registry started without redirection (64 Bit)
[7] [Nov 25 11:06:59:385]     Key is: HKEY_CLASSES_ROOT\.opsiscript
[7] [Nov 25 11:06:59:385]     Key0 is: HKEY_CLASSES_ROOT
[6] [Nov 25 11:06:59:385]     Registry key [HKEY_CLASSES_ROOT\.opsiscript]  opened
[6] [Nov 25 11:06:59:385]     Variable ""  is keeping its value "OpsiOrg.opsi-script.opsiscript"
[7] [Nov 25 11:06:59:385]     Key is: HKEY_CLASSES_ROOT\OpsiOrg.opsi-script.opsiscript
[7] [Nov 25 11:06:59:385]     Key0 is: HKEY_CLASSES_ROOT
[6] [Nov 25 11:06:59:385]     Key closed
[6] [Nov 25 11:06:59:385]     Registry key [HKEY_CLASSES_ROOT\OpsiOrg.opsi-script.opsiscript]  opened
[6] [Nov 25 11:06:59:385]     Variable ""  is keeping its value "opsi-script command file"
[7] [Nov 25 11:06:59:385]     Key is: HKEY_CLASSES_ROOT\OpsiOrg.opsi-script.opsiscript\DefaultIcon
[7] [Nov 25 11:06:59:385]     Key0 is: HKEY_CLASSES_ROOT
[6] [Nov 25 11:06:59:385]     Key closed
[6] [Nov 25 11:06:59:385]     Registry key [HKEY_CLASSES_ROOT\OpsiOrg.opsi-script.opsiscript\DefaultIcon]  opened
[6] [Nov 25 11:06:59:385]       Variable ""  is keeping its value "C:\Program Files (x86)\opsi.org\opsi-client-agent\images\opsi.ico"
[7] [Nov 25 11:06:59:385]       Key is: HKEY_CLASSES_ROOT\OpsiOrg.opsi-script.opsiscript\Shell\Open
[7] [Nov 25 11:06:59:385]       Key0 is: HKEY_CLASSES_ROOT
[6] [Nov 25 11:06:59:385]       Key closed
[6] [Nov 25 11:06:59:385]       Registry key [HKEY_CLASSES_ROOT\OpsiOrg.opsi-script.opsiscript\Shell\Open]  opened
[6] [Nov 25 11:06:59:385]         Variable "Icon"  is keeping its value "C:\Program Files (x86)\opsi.org\opsi-client-agent\images\opsi.ico"
[7] [Nov 25 11:06:59:385]         Key is: HKEY_CLASSES_ROOT\OpsiOrg.opsi-script.opsiscript\Shell\Open\Command
[7] [Nov 25 11:06:59:385]         Key0 is: HKEY_CLASSES_ROOT
[6] [Nov 25 11:06:59:385]         Key closed
[6] [Nov 25 11:06:59:385]         Registry key [HKEY_CLASSES_ROOT\OpsiOrg.opsi-script.opsiscript\Shell\Open\Command]  opened
[6] [Nov 25 11:06:59:385]           Variable ""  is keeping its value ""C:\Program Files (x86)\opsi.org\opsi-client-agent\opsi-winst\winst32.exe" "%1""
[6] [Nov 25 11:06:59:385]           Key closed
[6] [Nov 25 11:06:59:385] 
[6] [Nov 25 11:06:59:385] ~~~~~~~ End Sub   ~~~~~~~  sub_write_configuration
[6] [Nov 25 11:06:59:385] 
[5] [Nov 25 11:06:59:408] comment: is there a custom sub file ...
[6] [Nov 25 11:06:59:408] If
[5] [Nov 25 11:06:59:408]     Starting query if file exist ...
[5] [Nov 25 11:06:59:508]     "c:\opsi.org\tmp\opsi\custom\custom.opsiscript": 
[5] [Nov 25 11:06:59:508]   fileexists("c:\opsi.org\tmp\opsi\custom\custom.opsiscript")   <<< result false
[6] [Nov 25 11:06:59:508] Then
[6] [Nov 25 11:06:59:508] EndIf
[6] [Nov 25 11:06:59:515] 
[6] [Nov 25 11:06:59:515] ~~~~~~~ Start Sub ~~~~~~~  sub_restore_productOnClient
[6] [Nov 25 11:06:59:523] If
[5] [Nov 25 11:06:59:523]     Starting query if file exist ...
[5] [Nov 25 11:06:59:625]     "C:\opsi.org\tmp\productOnClients.json": 
[5] [Nov 25 11:06:59:625]   fileExists($LogDir$+"\productOnClients.json")   <<< result false
[6] [Nov 25 11:06:59:625] Then
[6] [Nov 25 11:06:59:631]   If
[6] [Nov 25 11:06:59:637]   Then
[6] [Nov 25 11:06:59:637]   EndIf
[6] [Nov 25 11:06:59:637]   If
[6] [Nov 25 11:06:59:637]   Then
[6] [Nov 25 11:06:59:637]   EndIf
[6] [Nov 25 11:06:59:637]   If
[6] [Nov 25 11:06:59:637]   Then
[6] [Nov 25 11:06:59:637]     If
[6] [Nov 25 11:06:59:638]     Then
[6] [Nov 25 11:06:59:638]     EndIf
[6] [Nov 25 11:06:59:638]   EndIf
[6] [Nov 25 11:06:59:638]   If
[6] [Nov 25 11:06:59:638]   Then
[6] [Nov 25 11:06:59:638]     If
[6] [Nov 25 11:06:59:638]     Then
[6] [Nov 25 11:06:59:638]     EndIf
[6] [Nov 25 11:06:59:639]   Else
[6] [Nov 25 11:06:59:639]   EndIf
[6] [Nov 25 11:06:59:639] EndIf
[6] [Nov 25 11:06:59:639] 
[6] [Nov 25 11:06:59:639] ~~~~~~~ End Sub   ~~~~~~~  sub_restore_productOnClient
[6] [Nov 25 11:06:59:639] 
[6] [Nov 25 11:06:59:646] 
[6] [Nov 25 11:06:59:646] ~~~~~~~ Start Sub ~~~~~~~  sub_set_installation_status
[6] [Nov 25 11:06:59:647] If
[5] [Nov 25 11:06:59:648]   $INST_SubModus$ = "BOOTIMAGE"   <<< result false
[6] [Nov 25 11:06:59:648] Then
[6] [Nov 25 11:06:59:648] EndIf
[5] [Nov 25 11:06:59:648] comment: update productOnClient for the opsi-client-agent ....
[5] [Nov 25 11:06:59:662] 
[5] [Nov 25 11:06:59:662] Execution of opsiservicecall_setOpsiclientagentInstallationStatus_unknown
[6] [Nov 25 11:06:59:662]      "method": "setProductInstallationStatus"
[6] [Nov 25 11:06:59:662]   Calling opsi service at https://10.20.2.112:4447
[6] [Nov 25 11:06:59:663]   JSON service request https://10.20.2.112:4447/rpc setProductInstallationStatus
[6] [Nov 25 11:06:59:736]   JSON Bench for setProductInstallationStatus "params":["opsi-client-agent","pcbutt287.mpip-main Start: 11:06:59:663 Time: 00:00:00:073
[6] [Nov 25 11:06:59:798]   JSON result: 
[5] [Nov 25 11:06:59:801] 
[5] [Nov 25 11:06:59:801] Execution of opsiservicecall_setOpsiclientagentInstallationStatus_installed
[6] [Nov 25 11:06:59:801]      "method": "setProductInstallationStatus"
[6] [Nov 25 11:06:59:801]   Calling opsi service at https://10.20.2.112:4447
[6] [Nov 25 11:06:59:801]   JSON service request https://10.20.2.112:4447/rpc setProductInstallationStatus
[6] [Nov 25 11:06:59:875]   JSON Bench for setProductInstallationStatus "params":["opsi-client-agent","pcbutt287.mpip-main Start: 11:06:59:801 Time: 00:00:00:074
[6] [Nov 25 11:06:59:947]   JSON result: 
[5] [Nov 25 11:06:59:951] 
[5] [Nov 25 11:06:59:951] Execution of opsiservicecall_setOpsiWinstInstallationStatus_installed
[6] [Nov 25 11:06:59:953]      "method": "setProductInstallationStatus"
[6] [Nov 25 11:06:59:953]   Calling opsi service at https://10.20.2.112:4447
[6] [Nov 25 11:06:59:953]   JSON service request https://10.20.2.112:4447/rpc setProductInstallationStatus
[6] [Nov 25 11:07:00:055]   JSON Bench for setProductInstallationStatus "params":["opsi-winst","pcbutt287.mpip-mainz.mpg.d Start: 11:06:59:953 Time: 00:00:00:102
[6] [Nov 25 11:07:00:127]   JSON result: 
[6] [Nov 25 11:07:00:127] If
[5] [Nov 25 11:07:00:127]   $INST_preloginvistaInstalled$ = 'true'   <<< result false
[6] [Nov 25 11:07:00:127] Then
[6] [Nov 25 11:07:00:127] EndIf
[6] [Nov 25 11:07:00:127] If
[5] [Nov 25 11:07:00:127]   $INST_preloginloaderInstalled$ = 'true'   <<< result false
[6] [Nov 25 11:07:00:127] Then
[6] [Nov 25 11:07:00:127] EndIf
[6] [Nov 25 11:07:00:127] 
[6] [Nov 25 11:07:00:127] ~~~~~~~ End Sub   ~~~~~~~  sub_set_installation_status
[6] [Nov 25 11:07:00:127] 
[6] [Nov 25 11:07:00:128] 
[6] [Nov 25 11:07:00:128] ~~~~~~~ Start Sub ~~~~~~~  sub_clean_up
[6] [Nov 25 11:07:00:128] If
[5] [Nov 25 11:07:00:128]     Starting query if file exist ...
[5] [Nov 25 11:07:00:229]     "c:\tmp\opsi": 
[5] [Nov 25 11:07:00:229]   fileExists("c:\tmp\opsi")   <<< result false
[6] [Nov 25 11:07:00:229] Then
[6] [Nov 25 11:07:00:235] EndIf
[6] [Nov 25 11:07:00:241] If
[5] [Nov 25 11:07:00:241]     Starting query if file exist ...
[5] [Nov 25 11:07:00:344]     "c:\tmp\opsi-client-agent": 
[5] [Nov 25 11:07:00:344]   fileExists("c:\tmp\opsi-client-agent")   <<< result false
[6] [Nov 25 11:07:00:344] Then
[6] [Nov 25 11:07:00:344] EndIf
[6] [Nov 25 11:07:00:344] If
[5] [Nov 25 11:07:00:344]     Starting query if file exist ...
[5] [Nov 25 11:07:00:447]     "c:\tmp\python": 
[5] [Nov 25 11:07:00:447]   fileExists("c:\tmp\python")   <<< result false
[6] [Nov 25 11:07:00:447] Then
[6] [Nov 25 11:07:00:447] EndIf
[5] [Nov 25 11:07:00:452] 
[5] [Nov 25 11:07:00:452] Execution of Files_del_utils
[7] [Nov 25 11:07:00:453]   delete -s -f "C:\Program Files (x86)\opsi.org\opsi-client-agent\utils\"
[6] [Nov 25 11:07:00:453]   Delete recursively "C:\Program Files (x86)\opsi.org\opsi-client-agent\utils\"
[5] [Nov 25 11:07:00:453]   Notice: Directory C:\Program Files (x86)\opsi.org\opsi-client-agent\utils\ does not exist, nothing deleted
[6] [Nov 25 11:07:00:453] If
[5] [Nov 25 11:07:00:453]     Starting query if file exist ...
[5] [Nov 25 11:07:00:555]     "C:\Program Files (x86)\opsi.org\preloginloader\": 
[5] [Nov 25 11:07:00:555]   FileExists("C:\Program Files (x86)\opsi.org\preloginloader\")   <<< result false
[6] [Nov 25 11:07:00:555] Then
[6] [Nov 25 11:07:00:555] EndIf
[6] [Nov 25 11:07:00:555] If
[5] [Nov 25 11:07:00:555]     Starting query if file exist ...
[5] [Nov 25 11:07:00:657]     "c:\tmp\ssl_tmp": 
[5] [Nov 25 11:07:00:657]   fileExists("c:\tmp\ssl_tmp")   <<< result false
[6] [Nov 25 11:07:00:657] Then
[6] [Nov 25 11:07:00:657] EndIf
[5] [Nov 25 11:07:00:662] 
[5] [Nov 25 11:07:00:662] Execution of Files_redist_cleanup_c
[7] [Nov 25 11:07:00:664]   delete c:\eula*.*
[6] [Nov 25 11:07:00:665]   Delete "c:\eula*.*"
[6] [Nov 25 11:07:00:665]     Search "c:\"
[6] [Nov 25 11:07:00:665]     Search "c:\eula*.*"
[7] [Nov 25 11:07:00:665]   delete c:\install*.*
[6] [Nov 25 11:07:00:665]   Delete "c:\install*.*"
[6] [Nov 25 11:07:00:665]     Search "c:\"
[6] [Nov 25 11:07:00:665]     Search "c:\install*.*"
[7] [Nov 25 11:07:00:665]   delete c:\vc_red.*
[6] [Nov 25 11:07:00:665]   Delete "c:\vc_red.*"
[6] [Nov 25 11:07:00:665]     Search "c:\"
[6] [Nov 25 11:07:00:666]     Search "c:\vc_red.*"
[7] [Nov 25 11:07:00:666]   delete c:\vcredist.bmp
[6] [Nov 25 11:07:00:666]   Delete "c:\vcredist.bmp"
[6] [Nov 25 11:07:00:666]     Search "c:\"
[6] [Nov 25 11:07:00:666]     Search "c:\vcredist.bmp"
[7] [Nov 25 11:07:00:666]   delete c:\.rnd
[6] [Nov 25 11:07:00:666]   Delete "c:\.rnd"
[6] [Nov 25 11:07:00:666]     Search "c:\"
[6] [Nov 25 11:07:00:666]     Search "c:\.rnd"
[6] [Nov 25 11:07:00:666]     File "c:\.rnd"
[6] [Nov 25 11:07:00:667]       The file has been deleted
[7] [Nov 25 11:07:00:667]   delete c:\globdata.ini
[6] [Nov 25 11:07:00:667]   Delete "c:\globdata.ini"
[6] [Nov 25 11:07:00:667]     Search "c:\"
[6] [Nov 25 11:07:00:667]     Search "c:\globdata.ini"
[6] [Nov 25 11:07:00:667] If
[5] [Nov 25 11:07:00:668]   CompareDotSeparatedNumbers("4.11.5.14","4.11.4.3") >= "0"   <<< result true
[6] [Nov 25 11:07:00:668] Then
[5] [Nov 25 11:07:00:671]   comment: checking if there is a drive d: ...
[6] [Nov 25 11:07:00:671]   If
[5] [Nov 25 11:07:00:671]     isDriveReady("d:")   <<< result true
[6] [Nov 25 11:07:00:671]   Then
[5] [Nov 25 11:07:00:676]     
[5] [Nov 25 11:07:00:676]     Execution of Files_redist_cleanup_d
[7] [Nov 25 11:07:00:679]       delete d:\eula*.*
[6] [Nov 25 11:07:00:679]       Delete "d:\eula*.*"
[6] [Nov 25 11:07:00:679]         Search "d:\"
[6] [Nov 25 11:07:00:679]         Search "d:\eula*.*"
[7] [Nov 25 11:07:00:679]       delete d:\install*.*
[6] [Nov 25 11:07:00:679]       Delete "d:\install*.*"
[6] [Nov 25 11:07:00:679]         Search "d:\"
[6] [Nov 25 11:07:00:680]         Search "d:\install*.*"
[7] [Nov 25 11:07:00:680]       delete d:\vc_red.*
[6] [Nov 25 11:07:00:680]       Delete "d:\vc_red.*"
[6] [Nov 25 11:07:00:680]         Search "d:\"
[6] [Nov 25 11:07:00:680]         Search "d:\vc_red.*"
[7] [Nov 25 11:07:00:680]       delete d:\vcredist.bmp
[6] [Nov 25 11:07:00:680]       Delete "d:\vcredist.bmp"
[6] [Nov 25 11:07:00:680]         Search "d:\"
[6] [Nov 25 11:07:00:680]         Search "d:\vcredist.bmp"
[7] [Nov 25 11:07:00:680]       delete d:\.rnd
[6] [Nov 25 11:07:00:680]       Delete "d:\.rnd"
[6] [Nov 25 11:07:00:680]         Search "d:\"
[6] [Nov 25 11:07:00:680]         Search "d:\.rnd"
[7] [Nov 25 11:07:00:680]       delete d:\globdata.ini
[6] [Nov 25 11:07:00:681]       Delete "d:\globdata.ini"
[6] [Nov 25 11:07:00:681]         Search "d:\"
[6] [Nov 25 11:07:00:681]         Search "d:\globdata.ini"
[6] [Nov 25 11:07:00:681]   EndIf
[6] [Nov 25 11:07:00:681] Else
[6] [Nov 25 11:07:00:681]   If
[6] [Nov 25 11:07:00:681]   Then
[6] [Nov 25 11:07:00:681]   EndIf
[6] [Nov 25 11:07:00:681] EndIf
[6] [Nov 25 11:07:00:681] 
[6] [Nov 25 11:07:00:681] ~~~~~~~ End Sub   ~~~~~~~  sub_clean_up
[6] [Nov 25 11:07:00:681] 
[5] [Nov 25 11:07:00:688] comment: all is done but make a reboot after terminating with the script
[6] [Nov 25 11:07:00:688] If
[5] [Nov 25 11:07:00:688]   $INST_AllowReboot$ = "true"   <<< result true
[5] [Nov 25 11:07:00:688]   ($INST_AllowReboot$ = "true")   <<< result true
[6] [Nov 25 11:07:00:688] Then
[5] [Nov 25 11:07:00:690]   
[5] [Nov 25 11:07:00:690]   ExitWindows set to Reboot
[6] [Nov 25 11:07:00:690] EndIf
[1] [Nov 25 11:07:00:690] ___________________
[1] [Nov 25 11:07:00:690] script finished
[1] [Nov 25 11:07:00:690] 5 errors
[1] [Nov 25 11:07:00:690] 9 warnings
[1] [Nov 25 11:07:00:690] 
[1] [Nov 25 11:07:00:690] 
[1] [Nov 25 11:07:00:694] ============  opsi-script Version 4.11.5.14 is regularly exiting. Time 2015-11-25  11:07:00 .

Ich hoffe das hilft irgendwie weiter.

Gruß
Thomas
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Verknüpfung für "software on demand" fehlt

Beitrag von n.wenselowski »

Hi Thomas,

na das ist schonmal was!

Und dann kann ich auch ein wenig Licht ins Dunkel bringen.
Wir haben zwei Scripte, eines für die Konfiguration (seit einiger Zeit hinterlegt als Update-Script) und ein anderes für die Installation.
Bei der Installation über den Configed werden beide ausgeführt, bei service_setup.cmd wird vermutlich nur die Installation, nicht aber die Konfiguration ausgeführt.

Da sollte es dann helfen, wenn anschließend auf dem Client nochmal ein Update ausgeführt wird.


Gruß

Niko

Code: Alles auswählen

import OPSI
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Verknüpfung für "software on demand" fehlt

Beitrag von n.wenselowski »

Hi,

ich habe nochmal mit den Kollegen geredet:
Bei der Installation per Configed wird der winst im Service-Modus ausgeführt und dabei wird Installations- und Update-Script ausgeführt.
Bei der manuellen Installation wird nur das Installationsscript ausgeführt.


Gruß

Niko

Code: Alles auswählen

import OPSI
poly
Beiträge: 11
Registriert: 13 Okt 2011, 09:28

Re: Verknüpfung für "software on demand" fehlt

Beitrag von poly »

Hi Niko,

danke für die Erklärung, damit ist ja nun zumindest die Ursache geklärt.

Bei uns werden alle Clients per service_setup.cmd konfiguriert und eine zweistufige Installation des opsi-client-agents (Setup per Batch + Update per Configed) ist schon ein deutlicher Mehraufwand. Wie müsste service_setup.cmd aussehen wenn auch das Update-Script ausgeführt werden soll, bzw. könnte man das in einer zukünfigen Version wieder mit einbauen. In der Vergangenheit hat das ja alles schon mal in einem Schritt funktioniert.

Gruß
Thomas
Benutzeravatar
ueluekmen
uib-Team
Beiträge: 1939
Registriert: 28 Mai 2008, 10:53

Re: Verknüpfung für "software on demand" fehlt

Beitrag von ueluekmen »

Hi,

man kann in der service_setup.cmd versuchen den winst-Aufruf an zu passen. Da das komplette Paket lokal kopiert wird, müsste auch das Update-Skript da sein. Versuch mal statt:

Code: Alles auswählen

"c:\opsi.org\tmp\opsi\opsi-winst\winst32.exe" /batch c:\opsi.org\tmp\opsi\setup.opsiscript c:\opsi.org\log\opsi-client-agent.log /PARAMETER INSTALL:CREATE_CLIENT:REBOOT

Code: Alles auswählen

"c:\opsi.org\tmp\opsi\opsi-winst\winst32.exe" /scriptfile c:\opsi.org\tmp\opsi\setup.opsiscript;c:\opsi.org\tmp\opsi\config.opsiscript /logfile c:\opsi.org\log\opsi-client-agent.log /batch /PARAMETER INSTALL:CREATE_CLIENT:REBOOT
(Falls noreboot verwendet wird, muss der andere Befehl angepasst werden.)

Müsste so gehen, habe ich aber jetzt nicht versucht. Wenn das so funktioniert, wäre es schön, wenn ein Feedback kommt, damit wir ein Ticket dazu aufmachen können.
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.
http://www.uib.de
poly
Beiträge: 11
Registriert: 13 Okt 2011, 09:28

Re: Verknüpfung für "software on demand" fehlt

Beitrag von poly »

Hi,

... und wieder sind wir einen kleinen Schritt weiter !!!

Die Anpassung der service_setup.cmd funktioniert in der angegebenen Form nicht, offensichtlich gibt es den Parameter '/scriptfile' nicht (mehr).

Der korrekte Befehl lautet:

Code: Alles auswählen

"c:\opsi.org\tmp\opsi\opsi-winst\winst32.exe" c:\opsi.org\tmp\opsi\setup.opsiscript;c:\opsi.org\tmp\opsi\config.opsiscript /logfile c:\opsi.org\log\opsi-client-agent.log /batch /PARAMETER INSTALL:CREATE_CLIENT:REBOOT
Nun wir zwar auch das config-Script ausgeführt, die Verknüpfung für Software-on-demand fehlt aber weiterhin.

Ein Blick in das Logfile 'opsi-client-agent.log' zeigt warum.

Code: Alles auswählen

...
[6] [Dez 04 13:48:45:039] If
[5] [Dez 04 13:48:45:039]   $INST_create_software_on_demand_menue_entry$ = "true"   <<< result true
[6] [Dez 04 13:48:45:039] Then
[5] [Dez 04 13:48:45:040]   
[5] [Dez 04 13:48:45:040]   Execution of opsiservicecall_setOption_addConfigStateDefaults_true
[6] [Dez 04 13:48:45:041]        "method": "backend_setOptions"
[6] [Dez 04 13:48:45:041]     Calling opsi service at https://10.20.2.112:4447
[6] [Dez 04 13:48:45:042]     JSON service request https://10.20.2.112:4447/rpc backend_setOptions
[6] [Dez 04 13:48:45:134]     JSON Bench for backend_setOptions "params":[{"addConfigStateDefaults":true}],"id":1} Start: 13:48:45:041 Time: 00:00:00:093
[6] [Dez 04 13:48:45:340]     JSON result: 
[5] [Dez 04 13:48:45:346]   Set  $INST_ResultList$ = getReturnListFromSection('opsiservicecall_get_configState_software-on-demand.active')
[5] [Dez 04 13:48:45:353]   
[5] [Dez 04 13:48:45:353]   Execution of opsiservicecall_get_configState_software-on-demand.active
[6] [Dez 04 13:48:45:353]        "method": "configState_getObjects"
[6] [Dez 04 13:48:45:353]     Calling opsi service at https://10.20.2.112:4447
[6] [Dez 04 13:48:45:354]     JSON service request https://10.20.2.112:4447/rpc configState_getObjects
[6] [Dez 04 13:48:45:418]     JSON Bench for configState_getObjects "params":[[],{"configId":"software-on-demand.activ Start: 13:48:45:353 Time: 00:00:00:065
[6] [Dez 04 13:48:45:575]     JSON result: []
[6] [Dez 04 13:48:45:581]       retrieving strings from getReturnListFromSection [switch to loglevel 7 for debugging]
[7] [Dez 04 13:48:45:581]           (string   0)[]
[7] [Dez 04 13:48:45:581]           
[6] [Dez 04 13:48:45:581]   If
[6] [Dez 04 13:48:45:587]         retrieving strings from $INST_ResultList$ [switch to loglevel 7 for debugging]
[7] [Dez 04 13:48:45:587]             (string   0)[]
[7] [Dez 04 13:48:45:587]             
[6] [Dez 04 13:48:45:587]         retrieving strings from SplitString [switch to loglevel 7 for debugging]
[7] [Dez 04 13:48:45:587]             (string   0)[]
[7] [Dez 04 13:48:45:587]             
[3] [Dez 04 13:48:45:587]     Stringlist list SplitString(TakeString(0,$INST_ResultList$), '"values":[')), ']')) = "true") has 1 elements. And the effective list index 1 is out of bounds in takeString function ! Use count() before takestring() to avoid this problem.
[6] [Dez 04 13:48:45:587]         retrieving strings from SplitString [switch to loglevel 7 for debugging]
[7] [Dez 04 13:48:45:587]             (string   0)
[7] [Dez 04 13:48:45:587]             
[5] [Dez 04 13:48:45:587]     TakeString(0,SplitString(TakeString(1,SplitString(TakeString(0,$INST_ResultList$), '"values":[')), ']')) = "true"   <<< result false
[5] [Dez 04 13:48:45:588]     (TakeString(0,SplitString(TakeString(1,SplitString(TakeString(0,$INST_ResultList$), '"values":[')), ']')) = "true")   <<< result false
[6] [Dez 04 13:48:45:588]   Then
[6] [Dez 04 13:48:45:588]   EndIf
[6] [Dez 04 13:48:45:588] Else
[6] [Dez 04 13:48:45:588] EndIf
[6] [Dez 04 13:48:45:588] Section ending since next line is starting with "["
[6] [Dez 04 13:48:45:588] 
[6] [Dez 04 13:48:45:588] ~~~~~~~ End Sub   ~~~~~~~  sub "c:\opsi.org\tmp\opsi\subconfig.opsiscript"
[6] [Dez 04 13:48:45:588] 
...
Die Stringliste $INST_ResultList$ ist leer und kann somit nicht ausgewertet werden.

Im Script 'subconfig.opsiscript' wird folgender OPSI-Servicecall aufgerufen:

Code: Alles auswählen

[opsiservicecall_get_configState_software-on-demand.active]
"method": "configState_getObjects"
"params": [
	'[]',
	'{"configId":"software-on-demand.active","objectId":"%opsiserviceUser%"}',
]
Offensichtlich ist die Variable %opsiserviceUser%, welche dem opsiservicecall als objectId übergeben wird an dieser Stelle nicht bekannt bzw. leer.

Ich habe zum Testen das Script 'subconfig.opsiscript' geändert und statt %opsiserviceUser% den full qualified name des betroffenen Clients angegeben. Damit funktioniert alles einwandfrei, aber das ist natürlich keine Lösung.
Es müsste vorher irgendwie die Variable %opsiserviceUser% richtig gesetzt werden, dann sollte meiner Meinung nach alles richtig funktionieren.

Gibt es hierfür eine Lösung?

Gruß
Thomas
Antworten