Samselvaprabu
Samselvaprabu

Reputation: 18147

How to find what are all the softwares installed/Uninstalled today?

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

Answers (4)

Jeffery Hicks
Jeffery Hicks

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

CB.
CB.

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

Shay Levy
Shay Levy

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

kossmoboleat
kossmoboleat

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

Related Questions