WMI error: 0x800700a4 - The @wmi_query could not be executed in the @wmi_namespace provided When trying to create a WMI alert in SQL Server, I received this error on 7 of the ~50 instances I was applying the change to:

SQLServerAgent Error: WMI error: 0x800700a4.
Msg 14511, Level 16, State 1, Procedure sp_verify_alert, Line 304 [Batch Start Line 557]
The @wmi_query could not be executed in the @wmi_namespace provided. Verify that an event class selected in the query exists in the namespace and that the query has the correct syntax.


The 7 instances that got this error were all SQL 2008 R2 and SQL 2012, a mix of Developer and Standard editions. I did not get the error on SQL 2014 or 2016 instances.

I was able to solve the issue in a couple, but not all 7 of the cases. See my answer below.
Fix #1
In some cases I was able to solve the problem by restarting the WMI service "Windows Management Instrumentation", and then re-running the script. This did not help in every case however. 

Fix #2
On both of the SQL 2008 R2 servers, I noticed that the WMI service ("Windows Management Instrumentation") was running as Local System, so I checked to see if it had login rights on the SQL instance. It did indeed already have a login "NT AUTHORITY\SYSTEM", with no particular rights granted to it. I gave it sysadmin temporarily, and was able to run my script successfully. I then removed sysadmin. and my WMI alert continued to work.

Fix #3
Another possible reason is the account that runs the Windows service "Windows Management Instrumentation" is disabled as a SQL login. (If you are running SQL 2012+, look for the login 'NT SERVICE\winmgmt'). (Source: Blog by 'rahmanagoro' )