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;
        }
    }

原文地址:https://www.cnblogs.com/jeffry/p/5749636.html