Uninstall working but returning an error in PS Console

Hello Folks,

I just started using Powershell for the first time last week. I’m the only one in my office that knows has started to use Powershell and I need to be able to do a lot with it in a short amount of time.

Today I got Powershell working so that I could start a new pssession with a remote computer (so satisfying when it finally worked :slight_smile: ). I wanted to start out by just uninstalling a test version of an application so that I can reinstall the latest version. I got the application uninstalled but Powershell returned an error and I don’t know why and it’s bothering me.

So… here are my steps:
1. I entered my PSSession with my test computer:

Enter-PSSession JosiahTest -Credential JosiahTest\johnnydepp
  1. I created a variable called $app and assigned that variable to the result of a WmiObject -Class Win32_Product query:
$app = Get-WmiObject -Class Win32_Product -Filter "Name LIKE 'AppUnderTest%'"
  1. I realized that while I did successfully get the application I was looking for I forgot to uninstall it so I did this:
$app = Get-WmiObject -Class Win32_Product -Filter "Name LIKE 'AppUnderTest%'" $app.Uninstall()
  1. I waited for awhile, the script seemed to be working, I was refreshing my ‘Add or Remove’ programs window on my test system and much to my satisfaction the AppUnderTest was removed! Unfortunately about a minute later Powershell returned this:
Get-WmiObject : Invalid query
At line:1 char:21
+ $app = Get-WmiObject <<<<  -Class Win32_Product -Filter "Name LIKE 'AppUnderTest%'"
    + CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], ManagementExc
    + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Comma

I feel like I was so close, then I got an error… What have I done wrong? It looks like a valid query, it uninstalled the program, but for some reason I still got an error.

Not a terribly useful error.

Try doing this without Remoting, if you can. Get-WmiObject is capable of connecting to a remote computer. Pipe the result to Invoke-WmiMethod, giving it method name Uninstall. That might remove a layer or two and get a better error message, if nothing else.

I tried to pipe the result to Invoke-WmiMethod like this:

$app = Get-WmiObject -Class Win32_Product -Filter "Name LIKE 'AppUnderTest%'" | Invoke-WmiMethod $app.Uninstall()

I got a prompt asking me for a WmiMethod, I entered “Uninstall”

The command completed without error but my app was not uninstalled. I have a feeling I’m not piping it correctly.