WMI无效类错误(尝试卸载远程PC上的软件)

所有,我试图远程卸载软件,它在测试机器上工作正常,但我在生产服务器中遇到了问题。 测试机我用过windows xp,windows 2003服务器,

制作机器:windows server 2003。

可能是这个错误的原因,任何帮助将不胜感激。 如果您有任何其他方法可以在远程PC上取消软件,请分享。

public void Uninstallwithguid(string targetServer, string product,string guid, string version) { this.Project.Log(Level.Info, "Starting Uninstall " ); this.Project.Log(Level.Info, "targetServer :" + targetServer ); this.Project.Log(Level.Info, "product :" + product ); this.Project.Log(Level.Info, "guid :" + guid ); this.Project.Log(Level.Info, "version :" + version ); System.Management.ConnectionOptions connoptions = new System.Management.ConnectionOptions(); connoptions.Impersonation = System.Management.ImpersonationLevel.Impersonate; connoptions.Timeout = new TimeSpan(0, 0, 10); // 10 seconds System.Management.ManagementScope scope = new System.Management.ManagementScope(@"\\" + targetServer + @"\root\cimv2", connoptions); scope.Connect(); System.Management.ObjectGetOptions objoptions = new System.Management.ObjectGetOptions(); string test = @"\\" + targetServer + @"\root\cimv2"; string objPath = string.Format("Win32_Product.IdentifyingNumber='{0}',Name='{1}',Version='{2}'",guid, product, version); System.Management.ManagementPath path = new System.Management.ManagementPath(objPath); System.Management.ManagementObject moobj = new System.Management.ManagementObject(scope, path, null); UInt32 res1 = 0; try { res1 = (UInt32)moobj.InvokeMethod("Uninstall", null); } catch(Exception ex) { this.Project.Log(Level.Error, ex.ToString()); throw ex; } if (res1 != 0) { this.Project.Log(Level.Error, "Uninstall error " + res1.ToString()); throw new Exception("Uninstall error " + res1.ToString()); } } 

错误说明:

System.Management.ManagementException:System.Management.ManagementObject.GetMethodParameters上的System.Management.ManagementObject.get_ClassPath()处的System.Management.ManagementObject.Initialize(Boolean getObject)处的System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)中的无效类。 (String methodName,ManagementBaseObject&inParameters,IWbemClassObjectFreeThreaded&inParametersClass,IWbemClassObjectFreeThreaded&outParametersClass)在System.Management.ManagementObject.InvokeMethod(String methodName,Object [] args)

默认情况下,Win2003没有安装此类 – 您必须从产品光盘手动安装它。