opsiservicecall im WINST-Skript

Antworten
Anojan
Beiträge: 22
Registriert: 19 Mär 2014, 09:21

opsiservicecall im WINST-Skript

Beitrag von Anojan »

Hallo,

ich habe bereits erfolgreich mehrere opsi-admin Methoden in WINST-Skripte eingebaut.

Doch bei folgender Methode, weiß ich nicht, wie ich diese per WINST zum Laufen kriege.

Als Aufruf im Terminal direkt auf dem OPSI-Server klappt es und ich erhalte die gewünschten Ergebnisse:

opsi-admin -d method auditSoftwareOnClient_getHashes '[]' '{ clientId":"testclient.testdomain.de"}'

Wie schreibe ich diesen Befehl nun im WINST-Skript? Ich habe folgende Sektion:

[opsiservicecall_auditSoftwareOnCLient]
"method": "auditSoftwareOnClient_getHashes"
"params": [

'[]' '{"clientId":"%HostID%"}'

]

Ich glaube im Teil "params" habe ich einen Syntaxfehler. Könnt ihr mir bitte helfen oder wird diese Methode nicht von WINST unterstützt?

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

Re: opsiservicecall im WINST-Skript

Beitrag von n.wenselowski »

Guten Morgen Anojan,

es sollte funktionieren, wenn du nach '[]' noch ein Komma machst.


Viele Grüße

Niko

Code: Alles auswählen

import OPSI
Anojan
Beiträge: 22
Registriert: 19 Mär 2014, 09:21

Re: opsiservicecall im WINST-Skript

Beitrag von Anojan »

Hallo Niko,
im WINST siehts nun so aus:

[opsiservicecall_auditSoftwareOnClient]
"method": "auditSoftwareOnClient_getHashes"
"params": [

'[]', '{"clientId":"%HostID%"}'

]




ich erhalte aber folgenden Fehler im instlog:

[5] [Okt 10 10:07:12:433] [testsoftware] Execution of opsiservicecall_auditSoftwareOnClient
[6] [Okt 10 10:07:12:433] [testsoftware] "method": "auditSoftwareOnClient_getHashes"
[6] [Okt 10 10:07:12:433] [testsoftware] Calling opsi service at https://10.10.3.198:4447
[6] [Okt 10 10:07:12:434] [testsoftware] JSON service request https://10.10.3.198:4447/rpc auditSoftwareOnClient_getHashes
[6] [Okt 10 10:07:12:487] [testsoftware] JSON Bench for auditSoftwareOnClient_getHashes "params":["[]"],"id":1} Start: 10:07:12:433 Time: 00:00:00:054
[3] [Okt 10 10:07:12:489] [testsoftware] Error: retrieveJSONObject --- opsi service problem ----> {"message":"(1054, \"Unknown column '[]' in 'field list'\")","class":"OperationalError"}
[3] [Okt 10 10:07:12:489] [testsoftware] Error: -> {"message":"(1054, \"Unknown column '[]' in 'field list'\")","class":"OperationalError"}
[6] [Okt 10 10:07:12:489] [testsoftware] retrieving strings from getReturnListFromSection [switch to loglevel 7 for debugging]
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: opsiservicecall im WINST-Skript

Beitrag von n.wenselowski »

Hallo Anojan,

das Problem muss noch irgendwo anders liegen.
Anojan hat geschrieben:ich erhalte aber folgenden Fehler im instlog:

[5] [Okt 10 10:07:12:433] [testsoftware] Execution of opsiservicecall_auditSoftwareOnClient
[6] [Okt 10 10:07:12:433] [testsoftware] "method": "auditSoftwareOnClient_getHashes"
[6] [Okt 10 10:07:12:433] [testsoftware] Calling opsi service at https://10.10.3.198:4447
[6] [Okt 10 10:07:12:434] [testsoftware] JSON service request https://10.10.3.198:4447/rpc auditSoftwareOnClient_getHashes
[6] [Okt 10 10:07:12:487] [testsoftware] JSON Bench for auditSoftwareOnClient_getHashes "params":["[]"],"id":1} Start: 10:07:12:433 Time: 00:00:00:054
[3] [Okt 10 10:07:12:489] [testsoftware] Error: retrieveJSONObject --- opsi service problem ----> {"message":"(1054, \"Unknown column '[]' in 'field list'\")","class":"OperationalError"}
[3] [Okt 10 10:07:12:489] [testsoftware] Error: -> {"message":"(1054, \"Unknown column '[]' in 'field list'\")","class":"OperationalError"}
[6] [Okt 10 10:07:12:489] [testsoftware] retrieving strings from getReturnListFromSection [switch to loglevel 7 for debugging]
Da fehlen Parameter, würde ich sagen.

Ansonsten klappt der von dir gezeigte Code, hier mal testweise zusammen gesteckt in ein Mini-Script:

Code: Alles auswählen

[Actions]
DefVar $out$
DefStringList $ResultList$

set $ResultList$ = getReturnListFromSection('opsiservicecall_auditSoftwareOnClient')
Comment "We are done with the request."
set $out$ = composeString($ResultList$, " ")


[opsiservicecall_auditSoftwareOnClient]
"method": "auditSoftwareOnClient_getHashes"
"params": [
        '[]', 
        '{"clientId": "%HostID%"}'
]



Gruß

Niko

Code: Alles auswählen

import OPSI
Anojan
Beiträge: 22
Registriert: 19 Mär 2014, 09:21

Re: opsiservicecall im WINST-Skript

Beitrag von Anojan »

Hallo Niko,

der Aufruf klappt ja, wenn ich ihn per Terminal ausführe. Das heißt, es fehlen keine Parameter.

Ich habe mal das Log-Level vom WINST-Skript auf 9 gesetzt. Man sieht dass er die Parameter richtig übernimmt, aber am Ende mit Error abbricht. Hier das Logging:

[5] [Okt 10 14:39:01:708] [testsoftware] Set $SoftwareList$ = getReturnListFromSection("opsiservicecall_auditSoftwareOnClient")
[5] [Okt 10 14:39:01:708] [testsoftware]
[5] [Okt 10 14:39:01:708] [testsoftware] Execution of opsiservicecall_auditSoftwareOnClient
[8] [Okt 10 14:39:01:708] [testsoftware] Parsing: getparam: []
[8] [Okt 10 14:39:01:708] [testsoftware] Parsing: getparam: {"clientId":"testclient.testdomain.de"}
[6] [Okt 10 14:39:01:708] [testsoftware] "method": "auditSoftwareOnClient_getHashes"
[6] [Okt 10 14:39:01:708] [testsoftware] Calling opsi service at https://10.10.3.198:4447
[9] [Okt 10 14:39:01:708] [testsoftware] Parameters in OpsiMethodCall: []
[9] [Okt 10 14:39:01:708] [testsoftware] Parameters in OpsiMethodCall: {"clientId":"testclient.testdomain.de"}
[9] [Okt 10 14:39:01:708] [testsoftware] Putting to TSuperArray with: "[]"
[9] [Okt 10 14:39:01:708] [testsoftware] Creating TSuperObject with: {"clientId":"testclient.testdomain.de"}
[9] [Okt 10 14:39:01:708] [testsoftware] got omc.jsonUrlString: {"method":"auditSoftwareOnClient_getHashes","params":["[]",{"clientId":"testclient.testdomain.de"}],"id":1}
[9] [Okt 10 14:39:01:708] [testsoftware] got Furl: https://10.10.3.198:4447/rpc
[6] [Okt 10 14:39:01:709] [testsoftware] JSON service request https://10.10.3.198:4447/rpc auditSoftwareOnClient_getHashes
[9] [Okt 10 14:39:01:709] [testsoftware] Putting to TSuperArray with: "[]"
[9] [Okt 10 14:39:01:709] [testsoftware] Creating TSuperObject with: {"clientId":"testclient.testdomain.de"}
[8] [Okt 10 14:39:01:709] [testsoftware] JSON service request Furlhttps://10.10.3.198:4447/rpc
[8] [Okt 10 14:39:01:709] [testsoftware] JSON service request str{"method":"auditSoftwareOnClient_getHashes","params":["[]",{"clientId":"testclient.testdomain.de"}],"id":1}
[9] [Okt 10 14:39:01:801] [testsoftware] Putting to TSuperArray with: "[]"
[9] [Okt 10 14:39:01:801] [testsoftware] Creating TSuperObject with: {"clientId":"testclient.testdomain.de"}
[9] [Okt 10 14:39:01:801] [testsoftware] Putting to TSuperArray with: "[]"
[9] [Okt 10 14:39:01:801] [testsoftware] Creating TSuperObject with: {"clientId":"testclient.testdomain.de"}
[6] [Okt 10 14:39:01:801] [testsoftware] JSON Bench for auditSoftwareOnClient_getHashes "params":["[]",{"clientId":"testclient.optimal-s Start: 14:39:01:708 Time: 00:00:00:093
[9] [Okt 10 14:39:01:801] [testsoftware] Putting to TSuperArray with: "[]"
[9] [Okt 10 14:39:01:801] [testsoftware] Creating TSuperObject with: {"clientId":"testclient.testdomain.de"}
[8] [Okt 10 14:39:01:801] [testsoftware] JSON Call: {"method":"auditSoftwareOnClient_getHashes","params":["[]",{"clientId":"testclient.testdomain.de"}],"id":1} Time: 00:00:00:093
[3] [Okt 10 14:39:01:804] [testsoftware] Error: retrieveJSONObject --- opsi service problem ----> {"message":"(1054, \"Unknown column '[]' in 'field list'\")","class":"OperationalError"}
[3] [Okt 10 14:39:01:804] [testsoftware] Error: -> {"message":"(1054, \"Unknown column '[]' in 'field list'\")","class":"OperationalError"}
[6] [Okt 10 14:39:01:804] [testsoftware] retrieving strings from getReturnListFromSection [switch to loglevel 7 for debugging]
[7] [Okt 10 14:39:01:804] [testsoftware] (string 0)-> {"message":"(1054, \"Unknown column '[]' in 'field list'\")","class":"OperationalError"}
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: opsiservicecall im WINST-Skript

Beitrag von d.oertel »

Hi,

das handling der opsi4 Methoden im opsi-winst ist teilweise schwierig und teilweise unmöglich.

Eine Erweiterung der Methoden hierfür steht seit langem auf der todo Liste.

Was willst Du genau erfragen um letztendlich was damit zu erreichen ?

gruß
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Anojan
Beiträge: 22
Registriert: 19 Mär 2014, 09:21

Re: opsiservicecall im WINST-Skript

Beitrag von Anojan »

Hallo,

ich möchte bei den Clients nach erfolgter swaudit per auditSoftwareOnClient_getHashes herauskriegen, ob die Software auf dem Client vorhanden ist und anschließend im configed per Methode setProductState bzw. setProductActionRequest den Installationsstatus bzw. die Produktaktion "setup" setzen.



Danke und Gruß
Anojan
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: opsiservicecall im WINST-Skript

Beitrag von d.oertel »

Hi,

ok - wenn ich sowas machen wollte würde ich wie folgt vorgehen:

Die swaudit Daten kommen ja aus dem Uninstall Zweig der Registry
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
da kannst Du die Informationen direkt aus lesen ( ein Blick in das swaudit script kann hilfreich sein)

und damit kannst Du weitermachen.

gruß
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Anojan
Beiträge: 22
Registriert: 19 Mär 2014, 09:21

Re: opsiservicecall im WINST-Skript

Beitrag von Anojan »

Hi,

ich habe es nun wie von dir vorgeschlagen gemacht und es funktioniert.

Danke für den Tip.

Gruß
Anojan
Antworten