найти конкретный продукт в удаленной системе или нет - PullRequest
0 голосов
/ 19 ноября 2008

Попытка найти продукт установлен в удаленном ПК или нет, выполнение занимает много времени, Есть ли способы, которыми мы можем достичь этого быстрее.

// использование: // uninstall4 ("имя хоста", "имя продукта", "{AC9C1263-2BA8-4863-BE18-01232375CE42}", "10.0.0.69");

    public void uninstall4(string targetServer, string product,string guid , string version)
    {
        //Connect to Server
        System.Management.ConnectionOptions connoptions = new System.Management.ConnectionOptions();
        connoptions.Impersonation = System.Management.ImpersonationLevel.Impersonate;
        connoptions.Timeout = new TimeSpan(0, 0, 10); // 10 seconds
        System.Management.ManagementScope scope = new System.Management.ManagementScope(@"\\" + targetServer + @"\root\cimv2", connoptions);
        scope.Connect();

        string q = "select * from Win32_Product where name = '" + product + "' and IdentifyingNumber='"+guid+"' and version = '"+version+"'";

        System.Management.SelectQuery query = new System.Management.SelectQuery(q);

        System.Management.EnumerationOptions options = new System.Management.EnumerationOptions();
        options.EnumerateDeep = false;
        options.ReturnImmediately = false;
        options.DirectRead = true;

        using (System.Management.ManagementObjectSearcher searcher
            = new System.Management.ManagementObjectSearcher(scope, query, options))
        {
            using (System.Management.ManagementObjectCollection moc = searcher.Get())
            {
                if(moc == null || moc.Count == 0)
                {
                    throw new Exception("product Not Found");
                }

            }
        }

    }

1 Ответ

2 голосов
/ 30 ноября 2008

Неа. Поставщик для класса Win32_Product должен динамически формировать информацию при запросе, и это всегда, всегда медленно.

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