Custom Inventory on 5.4.10622
So I'm testing the latest agent, and I've lost all of my custom inventory except one. I still have 5.3.53177 machines running these correctly.
Examples:
ShellCommandTextReturn(cmd.exe /c type C:\PROGRA~1\WinMagic\SecureDoc-NT\UserData\sdjob.log) RegistryValueReturn(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine, Distinguished-Name,TEXT) RegistryValueReturn(HKLM64\SOFTWARE\UTSW\Managed Workstation, WorkstationType, Text) RegistryValueReturn(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer,Version,NUMBER) RegistryValueReturn(HKEY_LOCAL_MACHINE\SYSTEM\UTSW,Greaseboard,TEXT)
This is the only one that is working.
RegistryValueReturn(HKEY_LOCAL_MACHINE\SYSTEM\Setup,CloneTag,TEXT)
When checking the logs all I see is a syntax error. Not sure what the error is though? I thought at first it was a space issue, but after testing that they're still not working. Surely I can't be the only one seeing this?
Error Log:
[Fri May 10 08:49:48 2013] [CDeployController::ExecuteCustomInventoryRule] issuing rule [RegistryValueReturn(HKEY_LOCAL_MACHINE\SYSTEM\UTSW,Greaseboard,TEXT) ;] [Fri May 10 08:49:48 2013] [parser] syntax error line 1, at token [RegistryValueReturn(HKEY_LOCAL_MACHINE\SYSTEM\UTSW,Greaseboard,TEXT)] [Fri May 10 08:49:48 2013] syntax error --- { RegistryValueReturn(HKEY_LOCAL_MACHINE\SYSTEM\UTSW,Greaseboard,TEXT)
Answers (3)
There's a bug in 5.4 that if one rule has a syntax error, the ones that come after it fail even though it's a correct argument. It's fixed in 5.5 which is due later this year.
This might help: http://www.kace.com/support/resources/kb/article/Custom-Inventory-or-File-Synchronization-Stops-Working
Comments:
-
That looks about right. That would explain why the one was working. There was a custom rule that was looking for FileExists that was running right after my only working custom inventory. Looks like after it was corrected, and another update ran it's working. - dugullett 11 years ago
-
One other thing. Shouldn't this work? It's throwing up an error.
FileExists(c:\windows\fonts\ocra.ttf) OR
FileExists(c:\windows\fonts\ocrb.ttf) - dugullett 11 years ago-
Offhand, I'd say both arguments probably need to be in the same line separated by the OR statement. - jknox 11 years ago
-
You're on a roll today. That's what it was. You should take the rest of the day off. - dugullett 11 years ago
-
Line breaks should work if you're running 5.4.76847/5.4.76848 server and 5.4.10622 agents. CIRs are still finicky though (especially with white space), so I'd recommend keeping everything on one line for simplicity's sake. - airwolf 11 years ago
-
The syntax errors in that log elude to an issue with trailing white space. CIRs don't like extra white space. There is a bug that causes all rules to fail after the first failure, but I'd have to see the full log to determine if that is the case in this situation. - airwolf 11 years ago
-
That's what it was. With 160 of them it's hard not to fat finger. I've got them corrected, and everything is working now. - dugullett 11 years ago
I have 5.4.10622 auto updated to ours and these are the custom entires I have and they are all working
FileExists(C:\Program Files (x86)\Microsoft Office\Office14\winword.exe)
ShellCommandTextReturn(c:\windows\system32\wbem\WMIC.exe PROCESS where (commandline like "%%AppDat%%") get commandline)
FileExists(C:\Program Files\Dell\CCTK\X86\f13pwok.txt)
RegistryValueGreaterThan(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer, svcVersion, 10.0)
RegistryValueEquals(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer,svcKBNumber,KB2809289)