When running this custom rule, it always returns false. The value of (Default) is 65.0.2. Everything I am reading is saying this should work, but I am not sure why it is not - we are wondering if its the nested (Default) because the whole statement is in parenthesis or if the validation detection is not smart enough to detect build numbers (ie. 65.0.2 is greater than 64).

Thats actually precisely why we have a OR switch - we check both the 32 and 64 bit locations. If one doesn't exist, wouldn't that be false by default for that key when it is checked or is "blank/null" interpreted differently?

If we run the statements independently they do work though on this front - we were just hoping to have the same inventory rule for 1 software catalog item instead of 2.

I see - so in that case both would still be true on a 64-bit OS, but on a 32-bit it would be true/false, so the OR statement should still work in theory though, correct? I am assuming OR means either Statement1=True OR Statement2=True.

you should be able to get away with:
(HKLM64\SOFTWARE\Mozilla\Mozilla Firefox,(Default),64)or(HKLM\SOFTWARE\Mozilla\Mozilla Firefox,(Default),64)
because on the 64 bit machine the first will return and the second will redirect to syswow due to the 32bit client. but the second will return on a 32bit machine correctly

0

Thats what we were thinking, but when this command runs on a 32 or 64 bit os it always returns False (we can see it in the KUSER logs where it evaluates the statement):

RegistryValueGreaterThan(HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox,(Default),64) OR

It won't work because 65.0.2 isn't a number value, thus it can't be compared to a number. For comparing version "numbers" it is best to use smart labels that leverage the software information which the SMA has already collected.