This was the second problem we had to solve. Fresh off a Windows 7 (x64) upgrade one of the apps needs an update (no big deal)

We manage to get the update working via SCCM. However, we now need to seamlessly get the update out to users, kind of immediately.

Users are OK using the Software Center applet to pull down apps. But, how do you get the machine to discover it has new software waiting?? Wait for however long it takes??? Reboot??

So for the techy people, it’s easy enough.

Go to Control Panel
  Select Configuration Manager
          Click the Actions tab

Select 'Machine Policy Retrieval and Evaluation Cycle’ click 'Run Now'
Click OK to confirm the prompt and then click OK to close Configuration Manager

Now communicate this to users.
Bear in mind the different views in Control Panel.... yes you can just type 'Configuration Manager' on the start menu/search, but still, it gets a bit messy, especially putting it in an email to get users to update an app they probably don’t like using anyway.

So, how to do this programmatically?
Internet search engine leads us to:
http://technet.microsoft.com/en-us/library/bb633207.aspx
(Thank you Microsoft)

They also have a script that can do it (follow the link). Excellent, so now how to run the script to get SCCM to realise it has some software to deploy? Use SCCM? Error, loop etc.

Solution, run a scheduled task remotely on the PCs we want to get the software update to. Admittedly not the most graceful solution, however, my clients having not had SCCM for the last few years was quite good at managing without SCCM.
Enter the 'AT' command. You can check that out on your command prompt, essentially it allows you to run the VBS that retrieves the Policy update for the new software on a remote PC. This was 'only' for about 50 machines and they were quite happy doing the group export, get PC name etc (for years they have not had SCCM)

Hint: you need to make sure the script is in a location where the system acc has access to read and ex the script, or write a longer command to define a domain user name to run the script.