我有以下代码来获取在某台计算机上运行的所有Windows服务。如果机器是我正在运行的机器,它工作正常,但如果它是一台远程机器,我得到一个'拒绝访问'异常,因为我没有传递用户名/密码。
我的问题是,我如何/在哪里传递用户名/密码?
static void Main(string[] args)
{
bool filter;
string machineName = "mymachine";
string objPath = String.Format("\\\\{0}\\root\\cimv2:Win32_Service",machineName);
ManagementClass servicesMC = new ManagementClass(new ManagementPath(objPath));
Dictionary<string, string> ServicesDict = new Dictionary<string, string>();
List<string> Aggregate = new List<string>();
foreach (ManagementObject service in servicesMC.GetInstances())
{
//Console.WriteLine(service.GetPropertyValue("Name"));
}
答案 0 :(得分:1)
我没有运行这个,因为我现在不在网络上,但这应该有效:
ConnectionOptions theConnection = new ConnectionOptions();
theConnection.Username = "username";
theConnection.Password = "password";
ManagementScope scope = new ManagementScope(objPath, theConnection);
ManagementClass servicesMC = new ManagementClass(scope, new ManagementPath("Win32_Service"), new ObjectGetOptions());