You’d need to test by running the relevance on a client where you expect both clauses to return True. There are several ways to test relevance on the endpoints -
- Interactively, by downloading and installing the Fixlet Debugger from software.bigfix.com
- Interactively, by using the ‘qna.exe’ in the BES Client directory
- Remotely, by using the Fixlet Debugger on your administrative workstation, to do remote evaluation against your target machines. This uses the Client Query API; you’ll be prompted for credentials to connect to the BigFix Server, and for the computer name or computer ID on which you want the relevance to execute. The query is sent to the root server, distributed to the client, and a response is returned to you remotely.
- Using the Query app in WebUI.
Looking at your relevance, I suspect the problem is in your second query. First you’ll want to check what results are actually being found on the endpoint, before you try to filter those results or check the existence of your expected result. Try
(values "DisplayName" of it, values "DisplayVersion" of it) of (key of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Novell Client for Windows " of ( x32 registry; (if exists x64 registry then x64 registry else nothing) )
This should provide a list of all of the DisplayName and DisplayVersion values that are found by the registry query.
I’m not familiar with this registry key, so if there are no results returned from this query, I’d start working up from there -
keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Novell Client for Windows " of ( x32 registry; (if exists x64 registry then x64 registry else nothing) )
If this also does not return a result, check whether "Novell Client for Windows " exists, is spelled correctly, and does it really have a trailing space on it before closing the doublequotes?
names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of ( x32 registry; (if exists x64 registry then x64 registry else nothing) )
Once you find the DisplayName and DisplayVersion values that you’re looking for, there’s also a problem in this conversion
value "DisplayVersion" of it as string as version = "2 SP4 (IR13)" as version
There’s nothing in that string that looks like a version number (which is what the ‘as version’ cast expects, at least two numbers in X.Y format).
q: "2 SP4 (IR13)" as version
E: Singular expression refers to nonexistent object.
You’d either have to do string comparisons on that, instead of version comparisons, or find a different value in the registry that you can treat as a version.