none
Starten der Installation von Updates, die per SCCM verteilt werden, mittels Invoke-CimMethod erzeugt Fehler ... RRS feed

  • Frage

  • Moin ...

    Ich versuche die Installation von per SCCM verteilten Updates remote per Invoke-CimMethod von einer Powershell-7-Sitzung aus zu starten. Der folgende Code startet die Installationen auch wie erwartet, aber gibt mir trotzdem immer folgende Fehlermeldung aus.

    Invoke-CimMethod: Es wurde keine Instanz mit den Eigenschaftswerten gefunden.

    ... oder auf Englisch:

    Invoke-CimMethod : No instance found with given property values.

    Hier ist der Code:

    $COMPUTERNAME = 'RemoteComputer01'
    $CIMSession = New-CimSession -ComputerName $COMPUTERNAME
    $GetCimInstanceParams = @{
        NameSpace   = 'ROOT\ccm\ClientSDK'
        ClassName   = 'CCM_SoftwareUpdate'
        Filter      = 'ComplianceState = 0'
        CimSession  = $CIMSession
        ErrorAction = 'Stop'
    }
    $InvokeCimMethodParams = @{
        Namespace   = 'ROOT\ccm\ClientSDK' 
        ClassName   = 'CCM_SoftwareUpdatesManager'
        MethodName  = 'InstallUpdates'
        Arguments   = @{ CCMUpdates = [ciminstance[]](Get-CimInstance @GetCimInstanceParams) }
        CimSession  = $CIMSession
        ErrorAction = 'Stop'
    }
    Invoke-CimMethod @InvokeCimMethodParams


    Es macht übrigens keinen Unterschied, ob ich den Code "gesplatted" oder "klassisch" in einer Zeile ausführe - die Fehlermeldung bleibt die gleiche.

    Invoke-CimMethod -Namespace 'root/ccm/ClientSDK' -ClassName 'CCM_SoftwareUpdatesManager' -ComputerName $ComputerName -Arguments @{ CCMUpdates = [ciminstance[]] (Get-CimInstance -Namespace 'root/ccm/ClientSDK' -ClassName 'CCM_SoftwareUpdate' -ComputerName $ComputerName) } -MethodName 'InstallUpdates'


    Hat jemand eine Idee, wie ich die Fehlermeldung los werde und stattdessen einen vernünftigen Rückgabewert/Return-Code bekomme?

    Ich hab's auch schon auf StackOverflow versucht, aber bisher noch keine Antwort erhalten. Wer sich also 150 Punkte verdienen möchte .... ;-)

    https://stackoverflow.com/questions/65705053/error-when-triggering-installation-of-sccm-updates-with-invoke-cimmethod


    Live long and prosper!

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

    • Bearbeitet BOfH-666 Montag, 18. Januar 2021 22:29 Rechtschreibung/Grammatik korrigiert
    Montag, 18. Januar 2021 22:26

Antworten

  • Falls hier in Zukunft doch nochmal einer drüber stolpert ... 

    Wenigstens hab ich einen Workaround gefunden, der ohne Fehlermeldung läuft und einen Rückgabewert liefert. Damit kann ich erstmal leben. ;-)

    $COMPUTERNAME = 'RemoteComputer01'
    $PSSession = New-PSSession -ComputerName $COMPUTERNAME
    Invoke-Command -Session $PSSession -ScriptBlock {
    	$GetCimInstanceParams = @{
    		NameSpace   = 'ROOT\ccm\ClientSDK'
    		ClassName   = 'CCM_SoftwareUpdate'
    		Filter      = 'ComplianceState = 0'
    		ErrorAction = 'Stop'
    	}
    	$InvokeCimMethodParams = @{
    		Namespace   = 'ROOT\ccm\ClientSDK' 
    		ClassName   = 'CCM_SoftwareUpdatesManager'
    		MethodName  = 'InstallUpdates'
    		Arguments   = @{ CCMUpdates = [ciminstance[]](Get-CimInstance @GetCimInstanceParams ) }
    		ErrorAction = 'Stop'
    	}
    	Invoke-CimMethod @InvokeCimMethodParams
    }
    

    Anstelle einer CIM-Session, nehme ich also einfach eine PS-Session.


    Live long and prosper!

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

    • Als Antwort markiert BOfH-666 Donnerstag, 21. Januar 2021 09:31
    Donnerstag, 21. Januar 2021 09:31

Alle Antworten

  • Leider nicht.

    Trotzdem, danke.


    Live long and prosper!

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

    Dienstag, 19. Januar 2021 06:52
  • Falls hier in Zukunft doch nochmal einer drüber stolpert ... 

    Wenigstens hab ich einen Workaround gefunden, der ohne Fehlermeldung läuft und einen Rückgabewert liefert. Damit kann ich erstmal leben. ;-)

    $COMPUTERNAME = 'RemoteComputer01'
    $PSSession = New-PSSession -ComputerName $COMPUTERNAME
    Invoke-Command -Session $PSSession -ScriptBlock {
    	$GetCimInstanceParams = @{
    		NameSpace   = 'ROOT\ccm\ClientSDK'
    		ClassName   = 'CCM_SoftwareUpdate'
    		Filter      = 'ComplianceState = 0'
    		ErrorAction = 'Stop'
    	}
    	$InvokeCimMethodParams = @{
    		Namespace   = 'ROOT\ccm\ClientSDK' 
    		ClassName   = 'CCM_SoftwareUpdatesManager'
    		MethodName  = 'InstallUpdates'
    		Arguments   = @{ CCMUpdates = [ciminstance[]](Get-CimInstance @GetCimInstanceParams ) }
    		ErrorAction = 'Stop'
    	}
    	Invoke-CimMethod @InvokeCimMethodParams
    }
    

    Anstelle einer CIM-Session, nehme ich also einfach eine PS-Session.


    Live long and prosper!

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

    • Als Antwort markiert BOfH-666 Donnerstag, 21. Januar 2021 09:31
    Donnerstag, 21. Januar 2021 09:31