In the future include any code you've tried, even if it doesn't work! Just listing the names of the commands you tried isn't very useful as we can't see what you're doing so have to guess. You've had comments and an answer that wasn't relevant because of this.
Now you've finally shown your code (I've edited your answer to include it as it was hidden in a comment), I can see that you're only checking one of the two Uninstall key locations.
On a 64bit OS (most computers these days) there are two places for these:
HKLM:\SOFTWARE\Microsoft [..]
HKLM:\SOFTWARE\Wow6432Node\Microsoft [..]
Here's an example on how to search them for firefox:
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
$app = Get-ChildItem -Path $RegPath | Get-ItemProperty | Where-Object {$_.DisplayName -match "firefox" }
You can then execute either $app.QuietUninstallString or $app.UninstallString - you may not have both available it depends on the application.
regeditand use 'find' in that key.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Then look for an entry calledUninstallString. If the app was installed using a .MSI file, the UninstallString will look like this:MsiExec.exe /I {<GUID>}. In that case, change the string toMsiExec.exe /X {<GUID>}. (In a cmd box typemsiexec.exe /?for all other options). The Uninstall string could also point to an .EXE file. Read here how to run a command in PS.get-wmiobjectandget-itemproperty, we could see if you've simply made a mistake rather than having to guess what you're doing or what's wrong... always include code in your questions, even if it doesn't work it helps us know what you're trying to do :)Get-WmiObject -Class Win32_Product | Where-Object { $_.PackageName -like "*yourPgkName*" }?