【发布时间】:2014-08-19 09:51:53
【问题描述】:
我首先道歉,因为这似乎是重复的问题。 但是我做了很多谷歌,即使我找到了两个非常相似的,比如:
但不幸的是,它们都不适合我。
我开发了一个在 windows server 2008 R2 标准机器上运行的 windows 服务。
服务运行良好,运行良好。
我的问题是我想制作一个可以在我们的本地网络上运行的桌面应用程序。 在这个应用程序中,我想做一些基本的操作,比如获取服务状态、停止和重启。
这是我的工作。
private void WSControllerForm_Load(object sender, System.EventArgs e)
{
ConnectionOptions options = new ConnectionOptions();
options.Password = "password";
options.Username = "Administrator";
options.Impersonation =
System.Management.ImpersonationLevel.Impersonate;
options.EnablePrivileges = true;
options.Authority = "NTLMDOMAIN:IQ-HOME";
options.Authentication = AuthenticationLevel.PacketPrivacy;
ManagementScope scope =
new ManagementScope(@"\\RTOKEN-SERVER\root\cimv2", options);
scope.Connect(); //checked its connected
// Make a connection to a remote computer.
// Replace the "FullComputerName" section of the
// string "\\\\FullComputerName\\root\\cimv2" with
// the full computer name or IP address of the
// remote computer.
ServiceController service = new ServiceController("Recharger Token", "RTOKEN-SERVER");
service.Refresh();
MessageBox.Show(service.Status.ToString()); //Error raised: {"Cannot open Service Control Manager on computer 'rToken-server'. This operation might require other privileges."}
}
请让我知道我做错了什么? 我应该如何实现我的目标?
注意:我的开发 PC 是 Windows 7 Ultimate,服务基于 Windows Server 2008 R2 Standard。 服务正在网络服务下运行。 (我也改成管理员登录,但没有运气)
谢谢
【问题讨论】:
-
您在域中吗?管理员是您服务器上的本地用户吗?防火墙会阻止吗?
-
@ajg 不,它不是域。管理员是服务器上的管理员。我也打开了防火墙,但没有运气。是的,我确实注意到当防火墙关闭该命令
service.Status.ToString()运行非常快但结果相同。 -
什么是 IQ-HOME?您是否尝试过不使用 options.Authority 行?
-
@ajg IQ-HOME 是工作组。是的,我也尝试过不使用此选项。
-
使用您在上面构建的 ManagementScope 在stackoverflow.com/questions/7117877/… 尝试答案。