Using SCCM and WMI to retrieve Font information

Solution 1:

I've done something similar, but with Altiris rather than SCCM. (I imagine you could also run it through Group Policy.) Not using WMI, but just scripting. What I would have done:

  1. Create a network share. Give the user who'll be running the script (System Center Management service user, whatever) write access to the share.
  2. Modify the script so that the file written to is the computer name (strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" ))
  3. Use Log Parser to spit the data into something more readable (SQL?)

On the other hand, it looks like you can do custom software reporting for SCCM by file type, so it might be easier to just have it collect files with the extension .fon and .ttf in the %windir%\fonts directory. This is basically what someone suggested on TechNet.

Good luck!

Solution 2:

You can use the Win32_FontInfoAction class to retrieve information on installed fonts that have been registered at the same time that the associated software element was installed. I highlighted that definition b/c the class is blank on my machine, presumably b/c I have not installed any fonts. However, I'll answer this question as it might work for you:

I would run a report to determine which fonts are installed by querying that class on each computer. If you decide to just run a query, as opposed to a report, you can easily turn that query into a new collection with some copy pasta and a few changes, like what particular fonts are out of license, once you see how they appear in the wmi repo.

https://msdn.microsoft.com/en-us/library/aa394150(v=vs.85).aspx