Установка msi на удаленный компьютер (ManagementException «Не найдено») - PullRequest
1 голос
/ 09 июня 2011

В настоящее время я пытаюсь установить msi на удаленный компьютер с помощью WMI, и я столкнулся с небольшой проблемой, которую не могу понять.

Когда я используюследующий код подключения WMI к локальному компьютеру, с которого он запущен, работает нормально.Но когда я изменяю соединение с удаленным компьютером, он генерирует исключение ManagementException на

    object res = installer.InvokeMethod("Install", methodArgs);

с сообщением «Не найдено».

Я проверил, что оба соединения WMI с удаленнымкомпьютер работает нормально, и что MSI-файл расположен правильно.

try
{
    ManagementClass installer = new ManagementClass(scope, new ManagementPath("Win32_Product"), new ObjectGetOptions());

    object[] methodArgs = { @"C:\Deploy\Deploy.msi", @"TARGETDIR=C:\", true };
    object res = installer.InvokeMethod("Install", methodArgs);

    if ((UInt32)res != 0)
        throw new Exception("Install error " + res.ToString());
    else                                                       
        project.Log(Level.Info, "Succesfully installed {0}", msi);
}
catch (Exception ex)
{
    project.Log(Level.Error, ex.ToString());  
}

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 10 июня 2011

Я понял это;

На машине, на которую я пытался установить, был запущен Server 2003, на котором по умолчанию не установлен поставщик установки Windows.( ссылка )

Я изменил конечный компьютер на тот, на котором установлена ​​Windows 7, и он отлично работал.

1 голос
/ 09 июня 2011

Я помню, что мне пришлось использовать приведенный ниже формат, чтобы запустить процесс:

ManagementClass theClass = new ManagementClass(@"\\server\root\cimv2:Win32_Process");
...