zoukankan      html  css  js  c++  java
  • 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;
            }
        }

  • 相关阅读:
    Nginx流量拷贝
    Nginx基于站点目录和文件的URL访问控制
    Nginx禁止ip访问或非法域名访问
    Nginx动静分离
    Nginx隐藏式跳转(浏览器URL跳转后保持不变)
    Harbor镜像仓库(含clair镜像扫描)
    Pod的QoS服务质量等级
    Pod容器应用"优雅发布"
    Pod容器自动伸缩(HPA) 测试
    NFS双机热备高可用环境
  • 原文地址:https://www.cnblogs.com/jeffry/p/5749636.html
Copyright © 2011-2022 走看看