Приложение C # для подключения удаленного компьютера и запуска пакетного файла с другого сервера с помощью WMI - PullRequest
0 голосов
/ 27 сентября 2019

Проблема заключается в следующем:

  1. В дисководе сервера и D имеется пакетный файл.

  2. Я должен инициироватьтриггер, который может запускать этот пакетный файл на самом компьютере (удаленный компьютер, на котором имеется пакет)

Примечание. Пакет содержит команду, которая запускает приложение на компьютере

Таким образом, я могу запустить командный файл, используя приведенный выше код (используя WMI), но он только запускает процесс cmd.exe и не выполняет команды, приведенные в нем.

Я пробовал с помощью следующего кода.

       var connOptions = new ConnectionOptions
        {
            Impersonation = ImpersonationLevel.Impersonate,
            Authentication = AuthenticationLevel.PacketPrivacy,
            EnablePrivileges = true,
            Username = "abc",
            Password = "xyx",
            //Authority = $"ntlmdomain:{_creds.Domain}"
        };
        connOptions.Impersonation = ImpersonationLevel.Impersonate;
        connOptions.EnablePrivileges = true;
        ManagementScope manScope = new ManagementScope
            (String.Format(@"\\{0}\ROOT\CIMV2", "xx.xx.xx.xx"), connOptions);
        manScope.Connect();
        ObjectGetOptions objectGetOptions = new ObjectGetOptions();
        ManagementPath managementPath = new ManagementPath("Win32_Process");
        ManagementClass processClass = new ManagementClass
            (manScope, managementPath, objectGetOptions);
        ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
        inParams["CommandLine"] = @"d:\\abc\\google.bat"; 
        ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);
        Console.WriteLine("Creation of the process returned: " + outParams["returnValue"]);
        Console.WriteLine("Process ID: " + outParams["processId"]);
...