停止或开启系统服务-续(远程调用)
2004-08-02 10:21
417 查看
using System; using System.Management; namespace ArLi.CommonPrj { public class Service_WMI { public static readonly System.Version myVersion = new System.Version(1,1); private ManagementBaseObject iObj = null; private ManagementBaseObject oObj = null; private ManagementClass mc = new ManagementClass(@"//arli/Win32/Service"); private readonly ManagementObjectCollection moc; public Service_WMI(){ moc = mc.GetInstances(); } /// /// 远程WMI 构造 /// /// 计算机名 /// 用户名,域用户可用 username@domain /// 密码 public Service_WMI(string remoteComputerName, string userName, string passWord) { moc = GetServiceCollection(remoteComputerName, userName, passWord); } private ManagementObjectCollection GetServiceCollection(string remoteComputerName, string userName, string passWord) { ManagementObjectCollection returnWMIcollection = null; ConnectionOptions co = new ConnectionOptions(); co.Username = userName; co.Password = passWord; System.Management.ManagementScope ms = new System.Management.ManagementScope("////" + remoteComputerName + "//root//cimv2", co); System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_Service"); ManagementObjectSearcher query = new ManagementObjectSearcher(ms,oq); returnWMIcollection = query.Get(); return returnWMIcollection; } /// /// 查询服务模式 /// /// 要查询的服务,为null 表示返回所有已禁用服务 public string GetStartMode(string serviceName) { string s=""; foreach(ManagementObject mo in moc) { if (serviceName != null) { //服务如果不为null if (((string)mo["Name"]).ToUpper() == serviceName.ToUpper()) { return (string)mo["StartMode"]; } } if ((string) mo["StartMode"] == "Disabled") { s += mo["Name"].ToString() + "/r/n"; //自己改成想要的格式 //你可以用displayname,上面的是ServiceName,下面这个是DisplayName //s += mo["DisplayName"].ToString() + "/r/n"; }; } return s; } /// /// 设置模式 /// /// 服务名 /// 模式,比如:Boot/System/Automatic/Manual/Disabled /// 操作完成 1,否则 0 public int ChangeTo(string serviceName, string startMode) { foreach(ManagementObject mo in moc) { //服务名存在 if (((string)mo["Name"]).ToUpper() == serviceName.ToUpper()) { // 如果服务已经是指定模式则返回 if ((string) mo["StartMode"] == startMode) return 0; // 设置服务模式 iObj = mo.GetMethodParameters("ChangeStartMode"); iObj["StartMode"] = startMode; oObj = mo.InvokeMethod("ChangeStartMode", iObj, null); return 1; } } return 0; } } }
相关文章推荐
- Android - 绑定服务调用服务里面的方法,start/bind开启服务的比较,混合方式开启服务,本地服务,远程服务,系统服务,录音API
- SSH远程访问 : 开启Centos系统的SSH服务
- 获取系统隐藏API远程调用服务方法-挂断电话
- 使用AIDL调用远程服务设置系统时间
- MFC系统服务开启停止代码
- win8.1系统电脑如何开启远程登录服务?win8.1系统开启远程登录服务的设置教程
- ubuntu开启ssh服务让crt能远程通过22端口连接系统
- 停止或开启系统服务
- ubuntu开启ssh服务让crt能远程通过22端口连接系统
- android 学习笔记9-服务 启动停止 调用服务方法 远程服务 AIDL进程通信
- Android -- service的开启方式, start开启和绑定开启服务,调用服务的的方法, aidl调用远程服务
- Android TV 添加系统服务,通过Binder机制从APK对其进行跨进程远程调用
- Android -- service的开启方式, start开启和绑定开启服务,调用服务的的方法, aidl调用远程服务
- 系统远程服务开启不了
- 如何开启Centos6.4系统的SSH服务
- 远程服务开启必备服务
- win7下如何开启远程桌面服务
- Spring Boot 中使用Feign作为HTTP客户端调用远程HTTP服务
- Windows 7 系统中开启 ASP.NET State Service 服务的方法
- Solaris系统中关闭和开启系统服务ftp,telnet,ssh,sendmail