confusedbyte
Goto Top

Windows(10) Updates mit "C sharp-Programm" auslesen bzw. anzeigen lassen

Hi all,

ich habe ein kleines Problem, ich möchte in c#.net ein kleines Programm schreiben, in dem ich, in einer Windowsform die letzten Updates von Windows anzeigen lasse (meinetwegen in einem Lable).
bzw. brauche ich nur den letzten Zeitstempel oder halt das Datum. Dann habe ich die verstrichenen Tage bis zum aktuellen Datum berechnen lassen.

Ich habe ähnliches in Powershell schon einmal realisiert :

Der Code sieht in etwa so aus:
    $b = Get-Date -Format d
    $upd = Get-WmiObject win32_quickfixengineering | 
    Where-Object { $_.Description -eq "Security Update" } |   
    where-Object { $_.InstalledOn -gt (Get-Date).AddMonths(-3)}|
    Select-Object InstalledON |
    Select-Object -Last 1| 
    Select -ExpandProperty "InstalledOn"  
    $upd3 = (Get-Date).Subtract((Get-Date $upd)).Days #Diff. Rechnung  

Nun Möchte ich das Ganze aber mit C# machen. Als erstes würde ich gerne mal wissen wie ich überhaupt die Updates auslese, unabhängig von der Zeitrechnung.
Kann mir da jemand weiter helfen?

Danke

Lg CB

Content-Key: 362897

Url: https://administrator.de/contentid/362897

Printed on: April 26, 2024 at 15:04 o'clock

Member: Kraemer
Kraemer Jan 30, 2018 at 10:40:40 (UTC)
Goto Top
Moin,

fange schon einmal damit an: https://msdn.microsoft.com/de-de/library/cc143254.aspx

GFruß
Member: ConfusedByte
ConfusedByte Jan 30, 2018 at 10:56:16 (UTC)
Goto Top
und hier bringt er mir nen Fehler "ManagementScope" kann er nix mit anfangen --> fehlende using-direktive --> using System.Management; verwende ich aber.
Mitglied: 135333
135333 Jan 30, 2018 updated at 11:05:48 (UTC)
Goto Top
Den Namespace musst du erst unter Verweise im Projekt hinzufügen! Kontextmenü auf Verweise > Add Reference > .NET > "System.Management".

Visual Studio Grundlagen!

Gruß snap
Member: ConfusedByte
ConfusedByte Jan 30, 2018 at 11:16:44 (UTC)
Goto Top
face-big-smile

verdammt da war ja was

danke
Member: ConfusedByte
ConfusedByte Jan 30, 2018 at 12:15:31 (UTC)
Goto Top
und damit komme ich gerade nicht weiter face-big-smile
ich würde mir ja gerne die "Ergebnisse" anzeigen lassen, bzw anzeigen lassen was der Code ausgibt, ich habe nur keine "Consolen-Anwendung"
sondern eine "Forms-Anwendung".
Ich habe gerade keinen Plan, wie ich das in der Form anzeigen lasse.

Alle Versuche liefen ins Leere ^^
Member: Kraemer
Kraemer Jan 30, 2018 at 12:16:42 (UTC)
Goto Top
Debugging, Breakpoints, Überwachungen kennst du?
Mitglied: 135333
Solution 135333 Jan 30, 2018 updated at 15:14:44 (UTC)
Goto Top
try {
    // WMI Query erstellen
    ObjectQuery query = new ObjectQuery("Select * From Win32_Quickfixengineering where Description = 'Security Update'");  

    // Objectsearcher Objekt mit der Query erzeugen
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);

    // Stringbuilder erstellen
    StringBuilder str = new StringBuilder();

    // Ergebnisse der WMI Abfrage durchlaufen
    foreach (ManagementObject hotfix in searcher.Get()) {
        try {
            // Eigenschaft "HotFixID" aus dem Hotfix auslesen 
            string hotfixid = hotfix.GetPropertyValue("HotfixID").ToString();  

            // Eigenschaft "InstalledOn" aus dem Hotfix auslesen 
            string installedon = hotfix.GetPropertyValue("InstalledOn").ToString();  

            // Zeile mit Daten dem Stringbuilder hinzufügen
            str.AppendLine(String.Format("{0}\t{1}", hotfixid, installedon));  
        } catch (Exception ex) {
            MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);  
        }
    }
    // Der Textbox den Inhalt des Stringbuilders verpassen
    txtUpdates.Text = str.ToString();
} catch (Exception ex) {
    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);  
}
Member: ConfusedByte
ConfusedByte Jan 31, 2018 at 08:03:55 (UTC)
Goto Top
o.O vielen Dank für die Antwort. Hilft mir sehr!

Danke