我想在远程计算机上安装MSI软件包。 本地和远程计算机都是域名“adn.lan” 的成员,并且我作为连接参数传递的用户/密码具有对远程计算机的完全访问权限。 当我设置connection.Authority到“ntdlmdomain:adran.lan”返回参数显示“无效参数”当我离开它,因为null
并使其为说,在connect()
将连接成功,但是当它试图安装包的返回参数显示被解决的包是不可访问的。由WMI进行远程安装的问题:远程计算机无法访问安装软件包
这是我试过的代码。
ConnectionOptions connection = new ConnectionOptions();
//connection.Authority = "ntdlmdomain:adn.lan"; // "kerberos:" + domain + @"\" + machine;
connection.Username = username;
connection.Password = password;
//connection.Impersonation = ImpersonationLevel.Identify ;
connection.Authentication = AuthenticationLevel.Packet;
ManagementScope scope = new ManagementScope("\\\\RemoteMachineName\\root\\CIMV2", connection);
scope.Connect();
ManagementPath p = new ManagementPath("Win32_Product");
ManagementClass classInstance = new ManagementClass(scope, p, null);
ManagementBaseObject inParams = classInstance.GetMethodParameters("Install");
inParams["AllUsers"] = true;
inParams["Options"] = string.Empty;
inParams["PackageLocation"] = "\\\\LocalMachineName\\Share\\Prescription.msi";
ManagementBaseObject outParams = classInstance.InvokeMethod("Install", inParams, null);
string retVal = outParams["ReturnValue"].ToString();
当我设置theconnection.Impersonation
到身份的结果将是“访问被拒绝”。
现在我决定将MSI软件包复制到远程机器,然后从本地解决文件路径以解决问题但我仍然对获得更好的解决方案感兴趣。 – 2011-05-24 07:59:58