• C#远程共享文件路径访问


     public class Win32ServiceManager
        {
            private string strPath;
            private ManagementClass managementClass;
            public Win32ServiceManager()
                : this(".", null, null)
            {
            }
            /// <summary>
            /// 远程连接建立
            /// </summary>
            /// <param name="host"></param>
            /// <param name="userName"></param>
            /// <param name="password"></param>
            public Win32ServiceManager(string host, string userName, string password)
            {
                this.strPath = "\\" + host + "\root\cimv2:Win32_Service";
                this.managementClass = new ManagementClass(strPath);
                if (userName != null && userName.Length > 0)
                {
                    ConnectionOptions connectionOptions = new ConnectionOptions();
                    connectionOptions.Username = userName;
                    connectionOptions.Password = password;
                    ManagementScope managementScope = new ManagementScope("\\" + host + "\root\cimv2", connectionOptions);
                    this.managementClass.Scope = managementScope;
                }
            }
            // 验证是否能连接到远程计算机
            public static bool RemoteConnectValidate(string host, string userName, string password)
            {
                ConnectionOptions connectionOptions = new ConnectionOptions();
                connectionOptions.Username = userName;
                connectionOptions.Password = password;
                ManagementScope managementScope = new ManagementScope("\\" + host + "\root\cimv2", connectionOptions);
                try
                {
                    managementScope.Connect();
                }
                catch
                {
                }
                return managementScope.IsConnected;
            }
            // 获取指定服务属性的值
            public object GetServiceValue(string serviceName, string propertyName)
            {
                ManagementObject mo = this.managementClass.CreateInstance();
                mo.Path = new ManagementPath(this.strPath + ".Name="" + serviceName + """);
                return mo[propertyName];
            }
            // 获取所连接的计算机的所有服务数据
            public string[,] GetServiceList()
            {
                string[,] services = new string[this.managementClass.GetInstances().Count, 4];
                int i = 0;
                foreach (ManagementObject mo in this.managementClass.GetInstances())
                {
                    services[i, 0] = (string)mo["Name"];
                    services[i, 1] = (string)mo["DisplayName"];
                    services[i, 2] = (string)mo["State"];
                    services[i, 3] = (string)mo["StartMode"];
                    i++;
                }
                return services;
            }
            // 获取所连接的计算机的指定服务数据
            public string[,] GetServiceList(string serverName)
            {
                return GetServiceList(new string[] { serverName });
            }
            // 获取所连接的计算机的的指定服务数据
            public string[,] GetServiceList(string[] serverNames)
            {
                string[,] services = new string[serverNames.Length, 4];
                ManagementObject mo = this.managementClass.CreateInstance();
                for (int i = 0; i < serverNames.Length; i++)
                {
                    mo.Path = new ManagementPath(this.strPath + ".Name="" + serverNames[i] + """);
                    services[i, 0] = (string)mo["Name"];
                    services[i, 1] = (string)mo["DisplayName"];
                    services[i, 2] = (string)mo["State"];
                    services[i, 3] = (string)mo["StartMode"];
                }
                return services;
            }
            // 停止指定的服务
            public string StartService(string serviceName)
            {
                string strRst = null;
                ManagementObject mo = this.managementClass.CreateInstance();
                mo.Path = new ManagementPath(this.strPath + ".Name="" + serviceName + """);
                try
                {
                    if ((string)mo["State"] == "Stopped")//!(bool)mo["AcceptStop"]
                        mo.InvokeMethod("StartService", null);
                }
                catch (ManagementException e)
                {
                    strRst = e.Message;
                }
                return strRst;
            }
        }

  • 相关阅读:
    素数
    java线程和线程池的使用
    Android SnackBar:你值得拥有的信息提示控件
    Java读取数据库数据生成柱状图
    hdu 2255奔小康赚大钱 KM算法模板
    Codeforces 446C —— DZY Loves Fibonacci Numbers(线段树)
    设计模式_门面模式
    hdu 1811 Rank of Tetris 并查集+拓扑排序
    使用openstack的虚拟机模版注意事项
    【JAVA】merge two array by order
  • 原文地址:https://www.cnblogs.com/jeffry/p/5749636.html
Copyright © 2020-2023  润新知