Tag: servicecontroller

C#查询Windows服务

我一直在使用查询在远程服务器上运行的Windows服务的应用程序,并将机器名称,服务名称和状态写入数据库。 但是,我想尝试捕获启动类型(自动,手动,禁用)。 我使用的服务控制器没有启动类型的任何选项,因此我开始考虑使用管理类。 这个类看起来像我有我需要的一切,但我不知道如何使用它对我的遥控器服务器。 对于服务控制器,我这样做: ServiceController[] services = ServiceController.GetServices(serverIP); foreach (ServiceController service in services) { var machine = service.MachineName; var displayName = service.DisplayName; var status = service.Status; } 我为Management类尝试了这个: ManagementClass class1 = new ManagementClass(serverIP + “\\” + “Win32_Service”); foreach (ManagementObject ob in class1.GetInstances()) { var machine = serverIP; var displayName = ob.GetPropertyValue(“Description”); var name = […]

远程计算机上的C#服务状态

我是一名专家程序员,因此,我不知道我在做什么:) 严肃地说; 不,我不是专家。 我确实有问题,不知道如何解决它。 好消息是,我(我想)知道问题是什么,我希望有人可以提供帮助。 这是问题的概要。 我在C#中创建一个表单,它将为我做一些服务器和数据库管理任务。 我有一个按钮,当点击时,应该在“y”服务器上返回“x”服务的服务状态。 状态将在屏幕上打印到文本框。 这是我的代码: private void button2_Click(object sender, EventArgs e) { string fs = “Service X Status = “; string mr = “Service A Status = “; string qp = “Service B Status = “; string sp = “Spooler Service Status = “; ServiceController fssc = new ServiceController(“xService”, “yServer”); […]

如何使用ServiceController远程控制Windows服务?

我正在尝试控制安装在远程计算机中的Windows服务。 我正在使用ServiceController类。 我有这个: ServiceController svc = new ServiceController(“MyWindowsService”, “COMPUTER_NAME”); 有了这个,我可以得到这样的Windows服务的状态: string status = svc.Status.ToString(); 但我无法控制Windows服务(通过执行svc.Start();或svc.Stop(); )。 我得到以下exception: 无法在计算机’COMPUTER_NAME’上打开Servicexxx服务 这是正常的,我想这与访问权限有关。 但是怎么样? 我看过谷歌但没找到我想要的东西。 但是我经常阅读与假冒相关的内容,但我不知道这意味着什么。 注意:本地和远程计算机都运行Win XP Pro。

Windows 7中的ServiceController权限

我有一个由服务和可执行文件组成的应用程序。 本质上,它是一个表单应用程序,负责在特定情况下启动和停止服务。 在Windows XP上,应用程序使用以下代码管理这个: ServiceController controller = new ServiceController(); controller.MachineName = “.”; controller.ServiceName = “XXXXXXXXXX”; controller.Stop(); controller.WaitForStatus(ServiceControllerStatus.Stopped, new TimeSpan(0, 0, 10)); controller.Start(); 但是在Windows 7上,即使我以管理员身份启动了应用程序,我也会遇到以下exception: System.InvalidOperationException: Cannot open XXXXXXXXXXXXX service on computer ‘.’. —> System.ComponentModel.Win32Exception: Access is denied — End of inner exception stack trace — at System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess) at System.ServiceProcess.ServiceController.Start(String[] args) at System.ServiceProcess.ServiceController.Start() 有什么我可以通过编程方式解决这个问题吗?