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.



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) 


This is the only one that is working. 


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 --- { 




Answer Summary:
0 Comments   [ - ] Hide Comments


Please log in to comment

Community Chosen Answer



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

Answered 05/10/2013 by: jknox
Red Belt

  • 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.
    • One other thing. Shouldn't this work? It's throwing up an error.

      FileExists(c:\windows\fonts\ocra.ttf) OR
      • Offhand, I'd say both arguments probably need to be in the same line separated by the OR statement.
      • You're on a roll today. That's what it was. You should take the rest of the day off.
      • 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.
  • 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.
    • 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.
Please log in to comment
Answer this question or Comment on this question for clarity



cut and pasted your one in and works fine.

RegistryValueReturn(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer,Version,NUMBER)

others are also comong in

Answered 05/10/2013 by: SMal.tmcc
Red Belt

Please log in to comment

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)

Answered 05/10/2013 by: SMal.tmcc
Red Belt

  • I will try RegistryValueReturn(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer,Version,NUMBER) and let you know what happens
    • Yeah when I downgrade back to 5.3.53177, and force an update they all show back up. Very strange.
Please log in to comment