Seite 1 von 1
Host Parameter aus Winst Script ändern
Verfasst: 12 Nov 2021, 12:57
von magicalUnicorn
Hallo Zusammen,
ich würde gerne für eine Bestimmte Gruppe von Rechnern auf dem Server Host-Parameter anpassen. Allerdings traue ich meinen Hiwis nicht wirklich zu, das ganze ordentlich und sorgfältig zu machen, weswegen ich das ganze als per OPSI-Paket lösen wollte.
Ich bin dabei
hier auf folgendes gestoßen:
Code: Alles auswählen
[opsiServiceCall_set_Connection_Active]
"method": "setGeneralConfigValue"
"params": [
"opsiclientd.event_net_connection.active",
"true",
"%hostId%"
]
Das scheint aber in der Form nicht mehr zu funktionieren und aus dieversen Dokus und Handbüchern bin ich dem Ziel leider auch nicht näher gekommen. Weiß einer zufällig wie das geht?
Re: Host Parameter aus Winst Script ändern
Verfasst: 12 Nov 2021, 13:25
von mattiasmab
Hier mal ein Ausschnitt aus dem Paket
opsi-wan-config-on/off:
Code: Alles auswählen
[Actions]
requiredWinstVersion >= "4.12.1.5"
DefVar $ProductId$
DefVar $cfgStateO$
DefVar $cfgStateArray$
Defstringlist $jsonObjList$
set $cfgStateO$ = "{}"
set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "type", "ConfigState")
;set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "configId", "opsiclientd.event_timer.active")
; Für dein Anliegen laut deinem Code geändert in:
set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "configId", "opsiclientd.event_net_connection.active")
set $cfgStateO$ = jsonAsObjectSetValueByKey($cfgStateO$, "values", "[true]")
;set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "objectId", "%opsiserviceUser%")
; Geändert in hostid - bei einem test bei mir ist opsiserveruser leer
set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "objectId", "%hostid%")
set $jsonObjList$ = addtolist($jsonObjList$, $cfgStateO$)
set $cfgStateArray$ = jsonStringListToJsonArray($jsonObjList$)
markErrorNumber
OpsiServiceCall_configState_updateObjects
if errorsOccuredSinceMark > 0
isFatalError
endif
;ExitWindows /Reboot
[OpsiServiceCall_configState_updateObjects]
"method": "configState_updateObjects"
"params": [
'$cfgStateArray$',
]
Re: Host Parameter aus Winst Script ändern
Verfasst: 12 Nov 2021, 13:47
von magicalUnicorn
Hui da muss ich erstmal gucken, dass ich das verstehe. Auf den ersten Blick erschlägt mich das schon ziemlich, vor allem weil ich einige Parameter anpacken müsste

Re: Host Parameter aus Winst Script ändern
Verfasst: 12 Nov 2021, 14:31
von ThomasT
Kannst du vielleicht einmal genau darlegen, was du ändern willst? Also welche "HostParameter" du genau ändern willst und warum.
Re: Host Parameter aus Winst Script ändern
Verfasst: 13 Nov 2021, 17:43
von mattiasmab
magicalUnicorn hat geschrieben: ↑12 Nov 2021, 13:47
Hui da muss ich erstmal gucken, dass ich das verstehe. Auf den ersten Blick erschlägt mich das schon ziemlich, vor allem weil ich einige Parameter anpacken müsste
Als einfache Variante des Codes habe ich das mal direkt zusammengeschrieben - ohne das dynamische Array.
Code: Alles auswählen
[OpsiServiceCall_set_Connection_Active]
"method": "configState_create"
"params": [
"opsiclientd.event_net_connection.active",
"%hostId%",
"true"
]
Die Methode setGeneralConfigValue existiert auf jeden Fall noch, aber ich konnte damit per OPSI-Script auch keine Änderung erzeugen. Die selbe Änderung des selben Wertes durch diese Methode durch `opsi-admin -dic` auf dem Server direkt hingegen ging. Leider bringen mich die Logs auch nicht weiter, warum es per WINST nicht will. Die ACLs scheinen es zumindest nicht zu verhindern, wenn ich das richtig sehe... Mit obigem Befehl geht es auf jeden Fall, da es direkt configState_create nutzt (was wiederum createObject und somit wiederum insertObject).
Wichtig bei dieser Methode ist allerdings, dass der Host-Parameter auf dem ConfigServer bereits existiert - notfalls zuvor per configEd oder API anlegen (z.B: `opsi-admin -d method config_createUnicode opsiclientd.event_gui_startup.working_window`)
Re: Host Parameter aus Winst Script ändern
Verfasst: 15 Nov 2021, 08:23
von magicalUnicorn
ThomasT hat geschrieben: ↑12 Nov 2021, 14:31
Kannst du vielleicht einmal genau darlegen, was du ändern willst? Also welche "HostParameter" du genau ändern willst und warum.
Ich möchte unter anderem folgende Host-Parameter ändern: opsiclientd.event_gui_startup.active, opsiclientd.event_gui_startup{user_logged_in}.active, opsiclientd.event_net_connection.active und opsiclientd.event_timer.active.
WIe an der Auswahl der HostParameter eventuell erkenntlich, geschieht die Änderung für die WAN-Erweiterung, welche wir auf einigen Clients (aber bei weitem nicht allen) ausrollen wollen. Damit die Host-Parameter nicht jedes mal wenn ein weiterer Client die WAN-Erweieterung erhält manuell zugewiesen werden müssen, hab ich die Option das über ein Winst Script zu machen für die einfachste Lösung gehalten.
Man kann zwar die Host-Parameter für eine ganze Gruppe ändern, allerdings übernehmen dann Clients, die neu zu dieser Gruppe hinzugefügt werden dann ja nicht die Config.
Re: Host Parameter aus Winst Script ändern
Verfasst: 15 Nov 2021, 11:37
von mattiasmab
Auch wenn ich den Unterschied zwischen einem zugewiesenen Paket zum Setzen der Parameter und auf dem Client-Reiter einem Kaken-Setzen nicht verstehe, gibt es genau dafür die Pakete opsi-wan-config-on bzw. opsi-wan-config-off von UIB selbst.