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.) P> < PRE> XXX PRE>
Est-ce que quelqu'un sait qui utilise à distance Wua via C #? P> P>
3 Réponses :
Je cherchais la même chose il y a des années et j'ai écrit un petit script.
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.
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'");
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); }
Je voudrais aussi savoir comment déterminer la taille de la mise à jour.