You can filter by EventID to see specific types of events. There are many Windows Installer Event IDs corresponding to different sorts of actions. 1033 indicates a product was installed, 1034 indicates a product was uninstalled.
For Windows Installer you can also filter by Source. MsiInstaller is the source for all Windows Installer events.
InstallShield tends to be a wrapper for MSI scripts, so it would generally have the same event IDs. However, other installer packages will generally not use the same EventIDs. For any installer you'll need to find the appropriate event ids it uses (if any).
UPDATE details:
Oh, and those are all found in the event viewer under Application.
UPDATE response:
The Windows Event IDs do not change from OS to OS as these are determined by the application. In this case, Windows Installer.
I tested on my XP box and a 2003 server and they both used 1033 for install and 1034 for uninstall.
You may try installing a windows update patch or similar. Something small, like a root certificate update or the like. Then check the event logs for corresponding entries. This will allow you to see if the logs have been cleared since the last install.
UPDATE further details, alternate IDs:
There is a plethora of information online regarding event IDs, including lists of all possible EventIDs for MSI Installers. Looking briefly I'm not really sure what the difference is between 1033/1034 and 11707/11708 IDs. MS documentation seems to show that the two different types indicate the same thing, namely the successful install or uninstall, but contain different sorts of information.
Here's what I ended up doing. It searches the value of several event properties for the text and shows them on the console:
$search = "hyper"
Get-EventLog -LogName system -after (Get-Date).AddDays(-1) | Where-Object { $_.Category.ToLower().Contains($search.ToLower()) -or $_.Message.ToLower().Contains($search.ToLower()) -or $_.Source.ToLower().Contains($search.ToLower())} | Format-Table -AutoSize -Wrap
Example Output:
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
4751 Aug 10 09:13 Information Microsoft-Windows... 23 NIC /DEVICE/{FD82EC81-DC0D-4655-B606-0AA9AF08E6CC} (Friendly Name: Microsoft Hyper-V Network Adapter) is now operational.
4750 Aug 10 09:13 Information Microsoft-Windows... 11 The description for Event ID '11' in Source 'Microsoft-Windows-Hyper-V-Netvsc' cannot be found. The local computer may not have the necessary registr...
4749 Aug 10 09:13 Information Microsoft-Windows... 24 NIC /DEVICE/{FD82EC81-DC0D-4655-B606-0AA9AF08E6CC} (Friendly Name: Microsoft Hyper-V Network Adapter) is no longer operational.
I'm new to powershell so it might not be the best way but it works. I hope it will save someone else some time.
Best Answer
Nirsoft's MyEventViewer is an alternative to the MS Event Viewer. It takes some time to open and sort all events (~80 seconds to load 100,000 events on my PC), it eventually displays them all. It has sort and find capabilities, so it should save you from carpal tunnel issues.
Edit: developer's recommended tool is now FullEventLogView. From the website: