我目前正在尝试使用 WMI 在远程计算机上安装 msi,但遇到了一些我无法弄清楚的问题。
当我在运行它的本地计算机的 WMI 连接上使用以下代码时,它工作正常。但是,当我更改与远程计算机的连接时,它会抛出 ManagementException
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());
}
有什么想法吗?
最佳答案
我想通了;
我尝试安装的机器运行的是 Server 2003,默认情况下没有安装 Windows Install Provider。 ( link )
我将目标计算机更改为运行 Windows 7 的计算机,它运行良好。
关于c# - 在远程计算机上安装 msi (ManagementException "Not found"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6295153/