Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
ich habe das Problem, dass bei vielen Rechnern bei uns WoL nicht oder nicht korrekt funktioniert und daher der wöchentliche Virenscan nachts nicht durchgeführt werden kann.
Daher dachte ich mir, ich baue ein Opsi-Paket, was diese Suche manuell ausführt. Das Paket würde dann auf always stehen und innerhalb des Skriptes wird auf Uhrzeit und Datum geprüft. Wird der Rechner Donnerstag zwischen 15 und 22 Uhr heruntergefahren, startet die Suche.
Jetzt habe ich das Problem, dass bei einem Rechnerstart in dieser Zeit natürlich auch ein Scan angestoßen würde, was nicht gewollt ist.
Gibt es da eine Möglichkeit, zu erkennen, ob Opsi beim Booten oder beim Shutdown gestartet wird?
Einfachste Möglichkeit für meine Begriffe wäre, wenn die opsiclient_shutdown_starter.exe eine entsprechende Variable setzt, wenn Opsi durch sie gestartet wird.
Ich hatte dieses Skript als Batchdatei über die Registry in den Shutdownprozess eingebunden, so wie es die on_shutdown_install Funktion von Opsi auch macht. Problem dabei war nur, dass dieses Skript teilweise einfach abgebrochen wurde und dass man nicht sieht, warum Windows so lange benötigt um herunterzufahren.
Gruß
- n.wenselowski
- Ex-uib-Team
- Beiträge: 3194
- Registriert: 04 Apr 2013, 12:15
Re: Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
ungetestete Idee: die Methode isEventRunning am Client zu nutzen um zu prüfen, ob gerade das gewünschte Event aktiv ist.
Viele Grüße
Niko
Code: Alles auswählen
import OPSI
Re: Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
Mal schauen. Danke erstmal für die Anregung.
Re: Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
Hat das was mit dem Satz im Handbuch zu tun: "Die opsiservicecall Sektionen sind für opsi 3.x Methoden entwickelt worden und für die opsi 4.x Methoden häufig nicht verwendbar."?
Edit: Der Vollständigkeit halber mal die entsprechenden Aufrufe im Skript:
Code: Alles auswählen
set $list1$ = getReturnListFromSection("opsiservicecall_Shutdown_Detection")
[opsiservicecall_Shutdown_Detection]
"method":"isEventRunning"
"params":[]
Code: Alles auswählen
(144) [5] [Aug 09 13:01:17:527] [kaspersky-scan] Execution of opsiservicecall_Shutdown_Detection
(145) [6] [Aug 09 13:01:17:527] [kaspersky-scan] "method": "isEventRunning"
(146) [6] [Aug 09 13:01:17:527] [kaspersky-scan] Calling opsi service at https://172.16.0.30:4447
(147) [6] [Aug 09 13:01:17:527] [kaspersky-scan] JSON service request https://172.16.0.30:4447/rpc isEventRunning
(148) [6] [Aug 09 13:01:17:577] [kaspersky-scan] JSON Bench for isEventRunning "params":[],"id":1} Start: 13:01:17:527 Time: 00:00:00:050
(149) [3] [Aug 09 13:01:17:631] [kaspersky-scan] Error: retrieveJSONObject --- opsi service problem ----> {"message":"Opsi rpc error: Method 'isEventRunning' is not valid","class":"OpsiRpcError"}
(150) [3] [Aug 09 13:01:17:631] [kaspersky-scan] Received (first 512): {"id": 1, "result": null, "error": {"message": "Opsi rpc error: Method 'isEventRunning' is not valid", "class": "OpsiRpcError"}}
(151) [3] [Aug 09 13:01:17:631] [kaspersky-scan] Error: -> {"message":"Opsi rpc error: Method 'isEventRunning' is not valid","class":"OpsiRpcError"}
(152) [6] [Aug 09 13:01:17:632] [kaspersky-scan] retrieving strings from getReturnListFromSection [switch to loglevel 7 for debugging]
Re: Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
kleines Missverständnis. Du kannst die Abfrage nicht über den opsi-Server machen, sondern du musst die Abfrage in an den Webservice vom Client schicken.
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
Re: Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
Ein Problem mit der Infoseite habe ich: Ich kann diese nicht auf jedem Client öffnen. Ich verwende den Nutzer admin, der funktioniert auch nachweislich auf einer meiner Testmaschinen. Auf der nächsten funktioniert der wiederum nicht. Es werden nach dem Eingeben einfach die Zugangsdaten aus dem Loginfenster gelöscht.
Ich habe ein Property erstellt, damit ich die Abfrage nach dem Shutdown auch abschalten kann. Falls jemand Interesse an meiner Umsetzung hat, habe ich unten die entsprechenden Teile des Skripts hinzugefügt.
Code: Alles auswählen
DefVar $ServiceCallList$
DefVar $ShutdownDetection$
DefVar $Installationsmodus$
Set $Installationsmodus$ = GetProductProperty("Such-Modus","Beim Shutdown")
if ($Installationsmodus$ = "Beim Shutdown")
set $ServiceCallList$ = getReturnListFromSection("opsiservicecall_Shutdown_Detection /opsiclientd")
set $ShutdownDetection$ = takeString(0, $ServiceCallList$)
endif
if ($Installationsmodus$ = "Immer")
Set $ShutdownDetection$ = "true"
endif
if ($ShutdownDetection$ = "true")
Alle Anweisungen für die Virensuche
else
Comment "Kein Shutdown, daher wird keine Virensuche durchgefuehrt."
endif
[opsiservicecall_Shutdown_Detection]
"method":"isEventRunning"
"params":[
'on_shutdown',
]
Re: Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
Das ist in soweit normal, mit admin meinst du wahrscheinlich einen opsiadmin. Das funktioniert nicht. Entweder du loggst dich mit fqdn vom client als user und opsi-Hostkey vom Client als Passwort ein oder du kannst einen User nehmen, der Mitglied in der lokalen Administratoren Gruppe ist. Alles andere funktioniert nicht, auch Domainadmins gehen hier nicht.andré hat geschrieben:Ein Problem mit der Infoseite habe ich: Ich kann diese nicht auf jedem Client öffnen. Ich verwende den Nutzer admin, der funktioniert auch nachweislich auf einer meiner Testmaschinen. Auf der nächsten funktioniert der wiederum nicht. Es werden nach dem Eingeben einfach die Zugangsdaten aus dem Loginfenster gelöscht.
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
- n.wenselowski
- Ex-uib-Team
- Beiträge: 3194
- Registriert: 04 Apr 2013, 12:15
Re: Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
freut mich, dass du ein Ergebnis hast!
Mir ist auch nichts bekannt, wie man das ordentlich unterscheiden kann. Es sieht leider beides gleich aus.andré hat geschrieben:Den Shutdown erkenne ich damit, nur den Reboot kann ich damit leider nicht unterscheiden.
Viele Grüße
Niko
Code: Alles auswählen
import OPSI
Re: Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
Genau, ich bin davon ausgegangen, dass ich einen der opsi-Administratorenaccounts nutzen kann. Wenn ich einen lokalen Account nehmen muss, weiß ich Bescheid, dann passt das.ueluekmen hat geschrieben:Das ist in soweit normal, mit admin meinst du wahrscheinlich einen opsiadmin. Das funktioniert nicht. Entweder du loggst dich mit fqdn vom client als user und opsi-Hostkey vom Client als Passwort ein oder du kannst einen User nehmen, der Mitglied in der lokalen Administratoren Gruppe ist. Alles andere funktioniert nicht, auch Domainadmins gehen hier nicht.
Das ist schade, aber alleine die Tatsache, dass ich das Paket beim normalen Boot nicht ausführen lassen kann, hilft schon extrem viel.n.wenselowski hat geschrieben:Mir ist auch nichts bekannt, wie man das ordentlich unterscheiden kann. Es sieht leider beides gleich aus.
Danke euch für die Hilfe!
Re: Erkennung/Unterscheidung von Shutdown und Bootvorgang möglich?
auf der suche nach einemn weg abzufragen welches Event gerade ausgeführt wird bin ich auf diese Lösung gestoßen.
Anstatt des shutdown Events möchte ich gerne entweder on_demand und gui_startup abfragen oder alternativ einen von mir erstelltes timer event.
Wenn ich die Abfrage aber z.B. auf on_demand ummodele, bekomme ich immer false geliefert obwohl ich das Testpaket per on_demand ausführe.
Hat jemand eine Ahnung was ich falschmache?
Code: Alles auswählen
[opsiservicecall_OnDemand_Detection]
"method":"isEventRunning"
"params":[
'on_demand',
]