您的位置:首页 > 其它

停止或开启系统服务-续(远程调用)

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; } } }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: