Изменить код для выполнения операций на удаленных серверах - PullRequest
0 голосов
/ 25 октября 2010

Я написал следующий код для изменения учетной записи пользователя и пароля, связанных со службой Windows.Как я могу изменить этот код, чтобы иметь возможность выполнять ту же операцию в удаленной системе?

static void Main(string[] args)
        {
            string serviceName = "DummyService";
            string username = ".\\Service_Test2";
            string password = "Password1";

            ServiceController sc = new ServiceController(serviceName);

            Console.WriteLine(sc.Status.ToString());

            if (sc.Status == ServiceControllerStatus.Running)
            {
                sc.Stop();
            }
            Thread.Sleep(2000);
            sc.Refresh();
            Console.WriteLine(sc.Status.ToString());

            string objPath = string.Format("Win32_Service.Name='{0}'", serviceName);
            using (ManagementObject service = new ManagementObject(new ManagementPath(objPath)))
            {
                object[] wmiParams = new object[11];
                wmiParams[6] = username;
                wmiParams[7] = password;
                service.InvokeMethod("Change", wmiParams);
            }

            Thread.Sleep(2000);

            Console.WriteLine(sc.Status.ToString());

            if (sc.Status == ServiceControllerStatus.Stopped)
            {
                sc.Start();
            }
            Thread.Sleep(2000);
            sc.Refresh();
            Console.WriteLine(sc.Status.ToString());

        }

1 Ответ

2 голосов
/ 25 октября 2010
  1. Использование Перегрузка конструктора ServiceController , позволяющая указать целевое имя машины

  2. Изменить путь объекта WMI, чтобы включить целевой сервер.

        new ManagementPath(
        "\\\\ComputerName\\root" +
        "\\cimv2:Win32_Service.Name='{0}'");
    
  3. Убедитесь, что у вашего пользователя / пароля достаточно прав на целевом компьютере, измените их, если нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...