Win32_InstalledProgramFramework Klasse funktioniert nicht

Helfe beim Thema Win32_InstalledProgramFramework Klasse funktioniert nicht in Windows 10 Software um eine Lösung zu finden; Ich komme mit einer sehr komplizierten Frage, die irgendwie mit PowerShell-Skripting zusammenhängt. Normalerweise sollte Windows seit Win7 (zumindest... Dieses Thema im Forum "Windows 10 Software" wurde erstellt von Denis Pajaziti, 7. Juni 2023.

  1. Denis Pajaziti
    Denis Pajaziti Neu hier
    Registriert seit:
    7. Juni 2023
    Beiträge:
    1
    Zustimmungen:
    0

    Win32_InstalledProgramFramework Klasse funktioniert nicht


    Ich komme mit einer sehr komplizierten Frage, die irgendwie mit PowerShell-Skripting zusammenhängt.

    Normalerweise sollte Windows seit Win7 (zumindest laut der Dokumentation) diese Klasse bereitstellen: Win32_InstalledProgramFramework

    Diese Klasse würde im Grunde genommen die Frameworks zurückgeben, die von einem bestimmten Programm verwendet werden (VisualC, Java, .NET und mehr), basierend auf der ProgramID, die ich von Win32_InstalledWin32Program erhalten habe.

    Aktuelles Skript
    $Programs = Get-WMIObject Win32_InstalledWin32Program | Select-Object Name, ProgramID
    $Result = ForEach ($Program in $Programs) {
    Write-Output $Program.Name
    Write-Output $Program.ProgramID
    $Name = $Program.Name
    $ProgramID = $Program.ProgramID

    $FMapp = Get-WMIObject Win32_InstalledProgramFramework -Filter "ProgramID = '$ProgramID'"

    ForEach ($FM in $FMapp) {
    [PSCustomObject]@{
    'Name' = $Name
    'ProgramID' = $ProgramID
    'FrameworkPublisher' = $FM.FrameworkPublisher
    'FrameworkName' = $FM.FrameworkName
    'FrameworkVersion' = $FM.FrameworkVersion
    }
    Write-Output $FM.FrameworkPublisher
    }
    }
    $Result | Out-GridView`

    Ich habe überprüft, ob diese Klassen in meinem WMI-Namespace vorhanden sind:


    Get-WmiObject -list -recurse | Findstr Win32_InstalledProgramFramework
    Win32_InstalledProgramFramework {} {FrameworkName, FrameworkPublisher, FrameworkVersion, Frame...

    ... und ich habe überprüft, dass ich die ProgramID von Win32_InstalledWin32Program erhalte.

    Irgendwie bleibt dies jedoch undefiniert oder gibt zumindest keine Daten zurück.

    Ich verwende derzeit die neueste Win11 ARM-Version für Parallels (Entwicklung auf MacM2).

    Weiß jemand, warum das so ist?
     
    #1 Denis Pajaziti, 7. Juni 2023
  2. Hobi Expert
    Willkommen,

    Diese Schritte solltest du nacheinander ausführen:
  3. hal9000
    hal9000 BoardComputer
    Mitarbeiter
    Registriert seit:
    25. August 2015
    Beiträge:
    17.056
    Zustimmungen:
    6.733

    @ Denis Pajaziti, es ist schwer zu sagen, warum die Win32_InstalledProgramFramework-Klasse in Deinem Fall keine Daten zurückgibt.
    Es gibt mehrere mögliche Gründe, warum dies der Fall sein könnte.

    Hier sind einige mögliche Gründe:

    1. Die Klasse Win32_InstalledProgramFramework ist möglicherweise nicht auf Deinem System verfügbar oder funktioniert nicht ordnungsgemäß. Du könntest versuchen, die Klasse manuell zu registrieren, indem Du die folgenden Schritte ausführst:
    • Öffne die Eingabeaufforderung mit Administratorrechten
    • Gib dort folgenden Befehl
      Code:
      cd %windir%\system32\wbem
      ein und drücke die Enter-Taste
    • Gib dann den Befehl ein
      Code:
      mofcomp Aeinv.mof
      ein und drücke die Enter-Taste
    2. Es ist möglich, dass die von Dir verwendete Version von
    auf Parallels (Entwicklung auf MacM2) nicht vollständig mit der Klasse Win32_InstalledProgramFramework kompatibel ist.


    Um die von einem bestimmten Programm verwendeten Frameworks zu ermitteln, verwendest Du einen anderen Ansatz.

    Hier ein Beispielskript:

    Code:
    # Get the list of installed programs
    $programs = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, Publisher, InstallDate
    
    # Loop through each program
    foreach ($program in $programs) {
        # Get the program name and publisher
        $name = $program.DisplayName
        $publisher = $program.Publisher
    
        # Check if the program is from a specific publisher (e.g. Microsoft Corporation)
        if ($publisher -eq "Microsoft Corporation") {
            # Get the program's install location from the registry
            $key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$name"
            $installLocation = (Get-ItemProperty $key).InstallLocation
    
            # Check if the install location exists
            if ($installLocation) {
                # Get the list of files in the install location
                $files = Get-ChildItem $installLocation -Recurse | Where-Object { !$_.PSIsContainer }
    
                # Loop through each file
                foreach ($file in $files) {
                    # Check if the file is a .dll or .exe file
                    if ($file.Extension -eq ".dll" -or $file.Extension -eq ".exe") {
                        # Get the file version info
                        $versionInfo = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($file.FullName)
    
                        # Check if the file is a .NET assembly
                        if ($versionInfo.FileDescription -like "*.NET*") {
                            # Output the program name and .NET version
                            Write-Output "$name - .NET $($versionInfo.ProductVersion)"
                        }
                    }
                }
            }
        }
    }
    
    
    Dieses Skript ruft die Liste der installierten Programme aus der Windows-Registrierung ab und durchläuft jedes Programm. Für jedes Programm überprüft es, ob es von einem bestimmten Herausgeber stammt (z.B. Microsoft Corporation) und ruft dann den Installationsort des Programms aus der Registrierung ab. Wenn der Installationsort vorhanden ist, durchläuft das Skript die Liste der Dateien im Installationsort und überprüft, ob sie .NET-Assemblys sind. Wenn ja, gibt das Skript den Namen des Programms und die .NET-Version aus.

    Du kannst dieses Skript anpassen und erweitern, um es an Deine spezifischen Anforderungen anzupassen.

    Der Hauptunterschied zwischen Deinem Skript und meinem Beispiel-Skript besteht darin, dass sie unterschiedliche Ansätze verwenden, um die von einem bestimmten Programm verwendeten Frameworks zu ermitteln.

    Dein Skript versucht, die Win32_InstalledProgramFramework-Klasse zu verwenden, um die von einem bestimmten Programm verwendeten Frameworks basierend auf der ProgramID zu ermitteln, die Du von Win32_InstalledWin32Program erhalten hast. Dieser Ansatz verwendet WMI (Windows Management Instrumentation), um auf die Informationen zuzugreifen.

    Mein Beispiel-Skript hingegen verwendet einen anderen Ansatz. Es ruft die Liste der installierten Programme aus der Windows-Registrierung ab und durchläuft jedes Programm. Für jedes Programm überprüft es, ob es von einem bestimmten Herausgeber stammt (z.B. Microsoft Corporation) und ruft dann den Installationsort des Programms aus der Registrierung ab. Wenn der Installationsort vorhanden ist, durchläuft das Skript die Liste der Dateien im Installationsort und überprüft, ob sie .NET-Assemblys sind. Wenn ja, gibt das Skript den Namen des Programms und die .NET-Version aus.

    Beide Skripte versuchen, ähnliche Informationen zu ermitteln (d.h. die von einem bestimmten Programm verwendeten Frameworks), aber sie verwenden unterschiedliche Ansätze und Methoden, um auf diese Informationen zuzugreifen.
     
Thema:

Win32_InstalledProgramFramework Klasse funktioniert nicht

Die Seite wird geladen...

Win32_InstalledProgramFramework Klasse funktioniert nicht - Ähnliche Themen - Win32_InstalledProgramFramework Klasse funktioniert

Forum Datum

Klasse nicht registriert

Klasse nicht registriert: habe seit gestern abend das alte trauerspiel nun auch. internetexplorer, microsoft edge und microsoft outlock zeigen unter windows 10 enterprise , klasse nicht registriert an. alle gängigen varianten aus dem internet habe ich versucht, aber keine reaktion. windows button unten links reagiert...

Windows 10 Support 20. Oktober 2018

ALLE Klassen nicht registriert

ALLE Klassen nicht registriert: Vor 3 Wochen hatte ich Probleme mit meinem WIN 10, dass es quasi eingefroren erschien (vermutlich war der PC durch ein Update sehr ausgelastet), und ich konnte 10 Minuten keine Eingabe machen / Maus bewegen. Also habe ich den PC ausgeschaltet (dass das vermutlich falsch war, weiß ich...

Windows 10 Support 11. März 2018

klassen nicht registerien

klassen nicht registerien: Ich bitten um hilfe, Klasse nicht registieren. Weiterlesen...

Windows 10 Support 17. Juni 2017

Klasse nicht registriert

Klasse nicht registriert: Hallo, ich kann plötzlich keine Dateien *.mp4 mit einem Doppelklick öffnen. Es wird dann immer die Meldung "Klasse nicht registriert" angezeigt. Für einen Tipp sage ich vielen Dank im Voraus. FG Günter

Windows 10 Allgemeines 3. Dezember 2016

fehlermeldung: klasse nicht registriert

fehlermeldung: klasse nicht registriert: seit ein paar tagen kann ich aus dem Explorer keine Videodateien(mp4) mehr öffnen. Weiterlesen...

Windows 10 Support 6. November 2016

Klasse nicht registriert

Klasse nicht registriert: Beim Linkaufruf in Mails in Outlook kommt jedes mal die Fehlermeldung Klasse nicht registriert. was kann ich tun, um diesen Fehler zu beseitigen?

Windows 10 Allgemeines 19. April 2016

jpg-Dateien, Klasse nicht registriert

jpg-Dateien, Klasse nicht registriert: Hallo, habe seit einigen Monaten Windows 10 am Laufen und immer mal wieder kleinere Probleme gehabt, die ich irgendwie lösen konnte. Nun kam vor ein paar Tagen das Problem, dass ich Bilder nicht mehr direkt durch Doppelklick öffnen kann. Jedesmal erscheint die Fehlermeldung "Klasse nicht...

Windows 10 Allgemeines 8. März 2016

Fehlermeldung Klasse nicht registriert

Fehlermeldung Klasse nicht registriert: Seit dem "Upgrade auf Windows 10 Pro, Version 1511, 10586" am 15.11.2015 kann ich meine Fotos nicht mehr mit einem Doppelklick im Explorer öffnen. Es kommt die Meldung "Klasse nicht registriert". Zuvor, nach dem ersten Upgrade auf Win10 im September 2015 gab es dieses Problem nicht. Was tun?...

Windows 10 Support 20. November 2015

Win32_InstalledProgramFramework Klasse funktioniert nicht [gelöst]

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Information ausblenden