Использование WMI для удаления программ - PullRequest
0 голосов
/ 06 марта 2010

Я хочу удалить программу с помощью WMI, но получаю эту ошибку: «Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))». Установка работала без проблем, используя те же ConnectionOptions. Есть ли вероятность, что у Администратора есть право установить программное обеспечение, но не удалить? Если да, то как я могу их редактировать?

Main()
{
        ConnectionOptions oConn = new ConnectionOptions();
        oConn.Impersonation = ImpersonationLevel.Impersonate;
        oConn.EnablePrivileges = true;
        oConn.Username = "Administrator";
        oConn.Password = "password";

        System.Management.ManagementScope oMs = 
            new System.Management.ManagementScope("\\\\192.168.14.128\\root\\cimv2", oConn);

        Uninstall(oMs, "\\\\192.168.14.128\\root\\cimv2:Win32_Product.IdentifyingNumber=    \"{926C96FB-9D0A-4504-8000-C6D3A4A3118E}\",Name=\"Java DB 10.4.2.1\",Version=\"10.4.2.1\"");

}

    static void Uninstall(ManagementScope oMs, string path)
    {
        if (!oMs.IsConnected) oMs.Connect();
        ManagementObject product = new ManagementObject(path);

        if ((product != null) && (product.Path.ClassName ==
        "Win32_Product"))
        {
            object result = product.InvokeMethod("Uninstall", null); //here is where I get the error
            Console.WriteLine("The Uninstall method result is {0}",
            result.ToString());
        }
   }

Спасибо!

1 Ответ

0 голосов
/ 06 марта 2010

Вы делаете это на машине с XP? Я просто Google-d ваш номер ошибки и получил пару ссылок на это: http://www.0x80070005.net/. Есть много информации о проблеме, а вот скопировать и вставить:

Ошибка 0x80070005 часто возникает, когда запланированное задание в планировщике заданий в Windows становится поврежденной, вам нужно установить обновление безопасности, которое будет получить сообщение об ошибке. Ошибка сообщение обычно показывает «Доступ запрещен». Здесь нужна задача уязвимости планировщик, который позволит код выполнение. Это обновления безопасности которые были выпущены в ранее бюллетень. Это нужно Microsoft база знаний. Итак, ясно, что эта ошибка о проблеме безопасности и находит ошибку в доступе.

Кроме того, мы используем WiX для нашего решения для установщика. Не уверен, что это то, что вы можете использовать, но я подумал, что просто выбросил бы это туда.

...