Dynamische Filter

Alle Fragen rund Antworten rund um die ACMP Client Commands und Container
Antworten
HDTewes
Beiträge: 21
Registriert: Mi Jun 26, 2013 1:43 pm

Hallo,
ich arbeite fast ausschließlich über Container und dynamische Filter.
Ich habe zu jedem Softwarepaket einen Container erstellt und möchte dynamisch alle PC’s in den Container aufnehmen,
die
a) Nicht mein Domänen-Controller sind (Computername <> ‚ACMP-DC‘)
und
b) Die gesuchte Software nicht installiert haben
oder
c) Die gesuchte Software installiert haben, aber nicht in der entsprechenden Version.

Ich bekomme es hin, dass die Rechner aufgenommen werden, die die Software in einer falschen Version installiert haben:
ODER (nichts)
UND (MSI Install Name nicht = „Adobe Flash Player 11 Plugin)
(MSI Software Version nicht = „11.9.900.152“)
NICHT (Computer Name nicht = „ACMP-DC“)

Leider tauchen dann Rechner nicht auf, welche den Flash Player noch gar nicht installiert haben.

Wie muss ich den Filter aufbauen?

Mit freundlichen Grüßen
Hans-Dieter Tewes
Hans-Dieter Tewes
Ruhr-Universität Bochum
IT.SERVICES
Universitätsstraße 150
44801 Bochum
Tel.: +49 (0)234 / 32-2 80 98

[mailto=]hans-dieter.tewes@ruhr-uni-bochum.de[/mailto]
RKorth
Beiträge: 15
Registriert: Do Mär 08, 2007 5:10 pm

Hallo,

diese Logik ist im BoolTree (so nennen wir die GUI, in der man die Filterlogik hinterlegt) nur sehr schwer abzubilden. Manche Abfragen können damit nicht optimal abgebildet werden, manche komplexe Abfragen gar nicht. Der BoolTree ist für Standardabfragen die komfortable Art, schnell zu Ergebnissen zu kommen. Wir arbeiten noch an einer allgemeinen Lösung, die aber niemals so optimal und performant sein kann wie eine individuell angepasste SQL Query. Aber kein Grund, Sand in den Kopf zu stecken ;-)
ACMP stellt Ihnen in den Queries und Containerfiltern einen starken Gefährten in Gestalt der "Advanced Query" zur Seite. Damit ist man in der Lage, alles abzufragen, was das Datenbankherz begehrt (und sogar optimal und individuell).
Tun Sie folgendes:
- Gehen sie in Ihren dynamischen Container
- Wählen Sie als "Filter mode" "Advanced filter/Erweiterter Filter)" statt "Standard filter"
- Wählen Sie den Tab "SQL" aus (nicht "Builder" / "Assistent")
- Klicken Sie den etwas unscheinbar dreinblickenden Button "Edit SQL" (das Bleistiftsymbol)
- kopieren Sie das unten folgende SQL Statement in den Editor und klicken Sie auf weiter. Es folgt ein Snytaxcheck und eine Plausibilitätsvorschau. Klicken Sie danach auf Finish. Danach können Sie eine Neuberechnung der dynamischen Filter anstoßen.
Ich denke, dass das Ergebnis Ihre gesuchte Lösung ist.
Die Clients, die just zum Zeitpunkt der Neuberechnung neu registriert werden, sollte man (muss man aber nicht) einer Best Practise folgend ausschließen, indem man deren ComputerName "[INITIALIZING]" explizit herausfiltert.
Lieben Gruß aus Soest
Robert Korth

Code: Alles auswählen

SELECT c.ClientID, c.computername
FROM CLT_CLIENTS c
WHERE
	(c.ComputerName != 'ACMP-DC')
	and
	(c.ComputerName != '[INITIALIZING]')		
	and
	not exists ( 
						SELECT cmsi.clientid 
						FROM 
							[CLT_SW_MSI] cmsi INNER JOIN [SYS_SW_MSI] smsi
								ON (cmsi.clientid = c.ClientID) and (cmsi.SWMSIID = smsi.SWMSIID)
						WHERE 
							(smsi.[name] = 'Adobe Flash Player 11 Plugin')
							and 
							(smsi.VERSIONSTRING = '11.9.900.152')
						)
HDTewes
Beiträge: 21
Registriert: Mi Jun 26, 2013 1:43 pm

Vielen Dank für die schnelle Antwort.
Genau das habe ich gesucht. Ich habe es sofort ausprobiert und es klappt super.
Mit freundlichen Grüßen
Hans-Dieter Tewes
Hans-Dieter Tewes
Ruhr-Universität Bochum
IT.SERVICES
Universitätsstraße 150
44801 Bochum
Tel.: +49 (0)234 / 32-2 80 98

[mailto=]hans-dieter.tewes@ruhr-uni-bochum.de[/mailto]
Antworten