That kind of information is not available through the Get-VMGuest cmdet I'm afraid.
You can use the Invoke-VMScript cmdlet to start a script inside the guest OS, and query the required information from there.
For Windows boxes you can use WMI to get the Service Pack
Get-WmiObject win32_operatingsystem | Select-Object Name,ServicePackMajorVersion,ServicePackMinorVersion
Or the following cmdlet to get the patches.
For *nix boxes it depends on the *niox flavour what to use. For a SLES box you could for example use
For an application list it is similar.
On Windows boxes you can do
Get-WmiObject -Class Win32_Product
On *nix boxes you can consider doing a