none
Get-wmiobject wird nicht unterstützt RRS feed

  • Frage

  • Moin,

    ich habe ein kleines Script bei dem unter anderem die Seriennummer des Monitors über gwmi ausgelesen wird. Hat auch alles funktioniert bis gestern. Bei folgendem Code:

    $SerialMonitor = get-wmiobject wmimonitorid -namespace root\wmi|foreach-object
    {($_.SerialNumberID -notmatch '^0$' | foreach {[char]$_}) -join ""

    bekomme ich neuerdings die folgende Fehlermeldung:

    Get-WmiObject : Nicht unterstützt 

    Andere Befehle mit gwmi funktionieren dagegen einwandfrei. Vielleicht hat ja jemand eine Idee oder kennt das Problem

    Danke schon im voraus

    Grüße


    • Bearbeitet MCMaggi Donnerstag, 3. Mai 2018 06:54
    Donnerstag, 3. Mai 2018 06:54

Antworten

  • Hab mal den Monitor ausgetauscht. Mit einem neuen ging es.

    Habe dann den alten wieder angesteckt und jetzt funktioniert es...

    Versteh ich nicht aber muss ich ja auch ned :D

    Danke für die Hilfe.

    Grüße

    • Als Antwort markiert MCMaggi Freitag, 4. Mai 2018 08:23
    Freitag, 4. Mai 2018 08:23

Alle Antworten

  • Hallo,

    evtl. hilft Dir das weiter.

    get-wmiobject wmimonitorid -namespace root\wmi|foreach-object{($_.SerialnumberID|foreach-object{[char]$_}) -join ""}

    Gruß

    Donnerstag, 3. Mai 2018 08:05
  • Nur um "Kopiefehler" oder so auszuschließen, hab ich den Code mal etwas leserlicher formatiert
    Get-WmiObject -Class WMIMonitorID -Namespace root\wmi |
        ForEach-Object {
            (
                $_.SerialNumberID -notmatch '^0$' |
                    ForEach-Object {
                        [CHAR]$_
                    }
            ) -join ''
        }
    Bei mir läuft der Code so ohne Fehlemeldung und liefert mir die Seriennummern beider angeschlossener Monitore. Wenn der Code vorher lief und das jetzt nicht mehr tut - was hat sich geändert?  ... und sag jetzt bitte nicht "Nichts"! ;-) 

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 3. Mai 2018 08:16
  • Hallo,

    du hast das vorher mit der Windows Powershell <= 5.1 gemacht und jetzt mit der PowerShell Core 6?

    Dann musst Du Get-WmiObject durch Get-CimInstance ersetzen.

    Beste Gruesse
    brima

    Donnerstag, 3. Mai 2018 08:24
  • Hallo,

    es wirft mir den selben Fehler.

    Gruß

    Donnerstag, 3. Mai 2018 08:30
  • Und die Fehlermeldung sieht so aus, wie oben gepostet oder steht dort noch ein wenig mehr, sollte es auf jeden Fall.
    Donnerstag, 3. Mai 2018 08:33
  • Oder kann es sein, dass Du das vorher nur mit Hardwaremaschinen versucht hast und jetzt bei VM's?

    Dort kann ich den Teil deiner Fehlermeldung reproduzieren, die gibt aber mehr her, als den Teil den du gepostet hast und dort ist dann ersichtlich dass die MontitorID WMI-Klasse nicht supportet ist, was bei VM's ja auch eher keinen Sinn macht.

    Beste Gruesse
    brima

    Donnerstag, 3. Mai 2018 09:15
  • physikalische Maschine, keine Virtuellen

    Bei folgendem Code bekomme ich folgende Fehlermeldung:

    Get-WmiObject wmimonitorid -namespace root\wmi|foreach-object{($_.SerialNumberID -notmatch '^0$' | foreach {[char]$_}) -join ""}
    
    Get-WmiObject : Nicht unterstützt 
    At line:1 char:2
    +  Get-WmiObject wmimonitorid -namespace root\wmi|foreach-object{($_.Se ...
    +  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], Managemen 
       tException
        + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.C 
       ommands.GetWmiObjectCommand

    Bei diesem Beispiel bekomme ich ein wenig mehr:

    Get-WmiObject wmimonitorid 
    
    Get-WmiObject : Ungültige Klasse "wmimonitorid"
    At line:1 char:2
    +  Get-WmiObject wmimonitorid
    +  ~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidType: (:) [Get-WmiObject], ManagementExce 
       ption
        + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.C 
       ommands.GetWmiObjectCommand

    Ungültige Klasse... aber ich habe eigentlich nichts verändert was darauf Auswirkungen haben könnte.

    Grüße

    Donnerstag, 3. Mai 2018 11:09
  • Hallo,

    der zweite Feher ist klar, weil die Klasse nicht im default Namespace ist findet er sie ohne die Angabe des Namespaces nicht. (Get-WmiObject DriDraDralla erzeugt z.B.: den gleichen Fehler)

    Dein letzter Satz klingt aber sehr wohl danach, dass du was veränderst hast.

    In VM's kann ich wie gesagt dein Problem nachstellen, bei Hradware keine Probleme.

    PS C:\> Get-WmiObject -Namespace root/WMI -list | Select-String WmiMonitorID
    
    \\Computer\ROOT\WMI:WmiMonitorID
    
    
    PS C:\> Get-WmiObject -Namespace root/WMI -Class WmiMonitorID
    Get-WmiObject : Not supported
    At line:1 char:1
    + Get-WmiObject -Namespace root/WMI -Class WmiMonitorID
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], ManagementException
        + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
    # Hardware
    
    PS U:\> Get-WmiObject -Namespace root/WMI -list | Select-String WmiMonitorID
    
    \\HW\ROOT\WMI:WmiMonitorID
    
    
    PS U:\> Get-WmiObject -Namespace root/WMI -Class WmiMonitorID
    
    
    __GENUS                : 2
    __CLASS                : WmiMonitorID
    ...




    Beste Grüße
    brima


    • Bearbeitet brima Donnerstag, 3. Mai 2018 12:07
    Donnerstag, 3. Mai 2018 12:05
  • ... aber ich habe eigentlich nichts verändert was darauf  Auswirkungen haben könnte.
    Hmmmm .... "eigentlich" ...  ;-)  Nach meiner Erfahrung ist WMI gern mal ziemlich zickig und häufig mal ursächlich für Probleme, die man vordergründig damit nicht in Zusammenhang bringt. Tritt der Fehler auf mehreren / allen Maschinen in Deiner Infrastruktur auf? Wurden Updates, Anwendungen oder Treiber installiert? Hast Du schon mal versucht WMI "zu reparieren"? Ich würde im Moment davon ausgehen, dass es eher kein Scripting-Thema ist, sondern ein System-Thema.

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 3. Mai 2018 12:16
  • Mit "eigenltich" meinte ich das ich mich nicht erinnern kann irgendetwas verändert zu haben. vielleicht mal eine Tool installiert aber des würde wohl kaum Probleme machen.

    Grüße

    Donnerstag, 3. Mai 2018 12:41
  • > Get-WmiObject : Nicht unterstützt

    Vielleicht ne ganz doofe Frage, aber: Ist wirklich ein Monitor angeschlossen, oder nutzt Du nur noch RDP?

    Donnerstag, 3. Mai 2018 13:54
  • Ja, Monitor ist dran :D

    Donnerstag, 3. Mai 2018 14:09
  • .... vielleicht mal eine Tool installiert aber des würde wohl kaum Probleme machen.

    ....   ;-)  ... ja aber das ist eigentlich genau das was ich meinte. Manchmal hat man etwas am System geändert, von dem man eben nicht denkt, dass es mit dem Problem zusammenhängt. Geht es nur um ein System oder um mehrere/alle? Wenn Du das Problem bisher nur auf einem System hast, kannst Du es auf einem zweiten reproduzieren?  ...vielleicht auf einem, auf dem das Tool nicht installiert wurde?

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 3. Mai 2018 14:18
  • Hab ich probiert. Habe einen zweiten Rechner im selben Netz mit den gleichen Tools auf dem es ohne Probleme funktioniert.

    Bin langsam etwas Ratlos :D

    Freitag, 4. Mai 2018 06:02
  • Hmmm .... das würde aber meine Vermutung eher stützen, dass es ein Problem mit Deinem Windows ist und nicht mit "Powershell".

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Freitag, 4. Mai 2018 06:07
  • Hab mal den Monitor ausgetauscht. Mit einem neuen ging es.

    Habe dann den alten wieder angesteckt und jetzt funktioniert es...

    Versteh ich nicht aber muss ich ja auch ned :D

    Danke für die Hilfe.

    Grüße

    • Als Antwort markiert MCMaggi Freitag, 4. Mai 2018 08:23
    Freitag, 4. Mai 2018 08:23