C# 在远程计算机上安装msi(ManagementException“未找到”)

C# 在远程计算机上安装msi(ManagementException“未找到”),c#,exception,windows-installer,wmi,C#,Exception,Windows Installer,Wmi,我目前正在尝试使用WMI在远程计算机上安装msi,但遇到了一个我无法解决的问题 当我在与运行它的本地计算机的WMI连接上使用以下代码时,它工作正常。但是,当我更改与远程计算机的连接时,它会在 object res = installer.InvokeMethod("Install", methodArgs); 显示消息“未找到” 我已验证到远程计算机的WMI连接是否正常工作,以及msi文件是否正确定位 try { ManagementClass installer = new

我目前正在尝试使用WMI在远程计算机上安装msi,但遇到了一个我无法解决的问题

当我在与运行它的本地计算机的WMI连接上使用以下代码时,它工作正常。但是,当我更改与远程计算机的连接时,它会在

    object res = installer.InvokeMethod("Install", methodArgs);
显示消息“未找到”

我已验证到远程计算机的WMI连接是否正常工作,以及msi文件是否正确定位

try
{
    ManagementClass installer = new ManagementClass(scope, new ManagementPath("Win32_Product"), new ObjectGetOptions());

    object[] methodArgs = { @"C:\Deploy\Deploy.msi", @"TARGETDIR=C:\", true };
    object res = installer.InvokeMethod("Install", methodArgs);

    if ((UInt32)res != 0)
        throw new Exception("Install error " + res.ToString());
    else                                                       
        project.Log(Level.Info, "Succesfully installed {0}", msi);
}
catch (Exception ex)
{
    project.Log(Level.Error, ex.ToString());  
}

有什么想法吗?

我记得我必须使用以下格式启动流程:

ManagementClass theClass = new ManagementClass(@"\\server\root\cimv2:Win32_Process");

我记得我必须使用以下格式启动流程:

ManagementClass theClass = new ManagementClass(@"\\server\root\cimv2:Win32_Process");
我已经弄明白了

我尝试安装的计算机运行的是Server 2003,默认情况下没有安装Windows安装提供程序。()

我把目标机器换成了一台运行Windows7的机器,它工作得很好。

我已经弄明白了

我尝试安装的计算机运行的是Server 2003,默认情况下没有安装Windows安装提供程序。()


我已将目标计算机更改为运行Windows 7的计算机,并且工作正常。

远程计算机上的C:\Deploy\Deploy.msi上是否存在该文件?是的,我已验证该文件的位置是否正确。确定,通常的原因是忘记安装实际上在远程机器上运行,因此文件必须在远程机器上,而不是启动文件的机器上。你的代码没有任何问题,我自己也用过类似的东西。是否可以尝试检查远程计算机上的事件日志,并更改安装以创建一个日志文件,以提供进一步的线索。远程计算机上的C:\Deploy\Deploy.msi上是否存在该文件?是的,我已验证该文件的位置是否正确。确定,通常的原因是忘记安装实际上在远程机器上运行,因此文件必须在远程机器上,而不是启动文件的机器上。你的代码没有任何问题,我自己也用过类似的东西。您是否可以尝试检查远程计算机上的事件日志,并更改安装以创建日志文件,从而提供进一步的线索。