Reputation: 18147
In our Virtual machines , we will look into what are the application installed/Uninstalled in the particular day
Is there any way to find it automatically?
Upvotes: 0
Views: 555
Reputation: 943
The Win32_Product class is very slow to query. Filter as much as you can.
$computername="SomeServer"
$apps=get-wmiobject win32_product -filter "installdate='20120206'" -computer $computername
Upvotes: 1
Reputation: 60910
To get list of application installed by msiexec in a specific day use this:
$strComputer = "."
$colItems = get-wmiobject -class "Win32_Product" -namespace "root\CIMV2" -computername $strComputer
$colitems | ? { $_.installdate -eq "yyyymmdd" }| select name
this for all installed applications an Microsoft KBs (needs filtering by date):
$Keys = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall
$Items = $keys |foreach-object {Get-ItemProperty $_.PsPath}
$items | select displayname , "(default)" , installdate
For the unistalled applications you need to query the application events logs
from source "MsiInstaller
" or a 'string search' of "uninstall" in the description of the event.
Upvotes: 1
Reputation: 126722
I don't think you can find information on uninstalled applications but you can get some information from the registry (with WMI you can get only MSI packages):
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*\' | Select-Object DisplayName,InstallDate,Publisher
Upvotes: 1
Reputation: 1941
The WMI interface should work for this. Use the command line: wmic product
Here's a blog article that describes it in more detail and how to obtain the result as a .csv file.
Upvotes: 1