7
votes

Utilisation de Wua à distance en utilisant c #

J'essaie de vous connecter à une machine distante et de déterminer s'il existe des mises à jour Windows à installer à l'aide de C # et Wuapilib. Il semble assez simple, mais je ne peux pas savoir comment se connecter réellement à l'ordinateur distant.

http://msdn.microsoft.com/en-us/library/aa387288 (v = vs.85) .aspx identifie qui est peut être utilisé à distance, avec un Peu d'exception que je ne m'inquiète pas, mais il semble n'y avoir aucune documentation sur la manière de vous connecter. J'ai essayé de passer à un nom d'ordinateur, mais cela ne fonctionnait pas aussi (le passage d'un nom contenant Gibberish "réussit" de ne rien ne rien faire, et entraîne des mêmes chefs de comptabilisation afin que je suppose que la chaîne est inutilisée.) < PRE> XXX

Est-ce que quelqu'un sait qui utilise à distance Wua via C #?


1 commentaires

Je voudrais aussi savoir comment déterminer la taille de la mise à jour.


3 Réponses :


5
votes

Je cherchais la même chose il y a des années et j'ai écrit un petit script. XXX


4 commentaires

Ce n'est pas une réponse à la question; Juste une "j'ai aussi cette question" vote avec un tas de code attaché.


J'ai fait pourquoi vous demandez-vous?


Ce "groupe de code attaché" répond efficacement à la question.


Ouais ... Le code est 100% fonctionnant et cela fait exactement ce qu'il a besoin. Je disais juste que ce n'est pas un code prêt à la production.



2
votes

Essayez ceci:

Type t = Type.GetTypeFromProgID("Microsoft.Update.Session", HOSTNAME);
UpdateSession uSession = (UpdateSession)Activator.CreateInstance(t);

IUpdateSearcher uSearcher = uSession.CreateUpdateSearcher();
uSearcher.ServerSelection = ServerSelection.ssWindowsUpdate;
uSearcher.IncludePotentiallySupersededUpdates = false;
uSearcher.Online = false;

ISearchResult sResult = uSearcher.Search(
    "IsInstalled=0 And IsHidden=0 And Type='Software'");


0 commentaires

3
votes
        Type t = Type.GetTypeFromProgID("Microsoft.Update.Session", "SYDEMMTA001");
        UpdateSession session = (UpdateSession)Activator.CreateInstance(t);
        IUpdateSearcher updateSearcher = session.CreateUpdateSearcher();
        //int count = updateSearcher.GetTotalHistoryCount();
        //IUpdateHistoryEntryCollection history = updateSearcher.QueryHistory(0, count);
        //for (int i = 0; i < count; ++i)
        //{
        //    Console.WriteLine(string.Format("Title: {0}\tSupportURL: {1}\tDate: {2}\tResult Code: {3}\tDescription: {4}\r\n", history[i].Title, history[i].SupportUrl, history[i].Date, history[i].ResultCode, history[i].Description));
        //}
        //Console.WriteLine("Total up: {0}", count);
        ISearchResult sResult = updateSearcher.Search("IsInstalled=0 AND IsPresent=0");
        foreach (IUpdate x in sResult.Updates)
        {
            Console.WriteLine(x.Title);
        }

0 commentaires