Powershell: Invoke-CimMethod - PullRequest
       43

Powershell: Invoke-CimMethod

0 голосов
/ 17 января 2020

У меня есть код, который использует Invoke-CimMethod для запроса реестра и клиента SCCM для ожидающих перезагрузок. При попытке выполнить запрос через сеанс CIM запрос реестра работает, но запрос клиента SCCM не работает, без сеанса CIM обе команды работают. Может ли кто-нибудь помочь мне определить, что мне не хватает. Вот пример кода, который воспроизводит проблему. Пример 4, у меня проблемы с ...

# Variables
$hklm = [UInt32]"0x80000002"
$Key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\"

# Set up CIM session
$cimSessionSplat = @{
    ComputerName = $env:COMPUTERNAME
    ErrorAction = "Stop"
}
$cimSession = New-CimSession @cimSessionSplat

$invokeCimMethodSplatReg = @{
    Namespace = "ROOT\CIMv2"
    ClassName = "StdRegProv"
    MethodName = "EnumValues"
    Arguments = @{hDefKey = $hklm; sSubKeyName = $Key}
}

$invokeCimMethodSplatCCM = @{
    NameSpace = "ROOT\ccm\ClientSDK"
    ClassName = "CCM_ClientUtilities"
    MethodName = "DetermineifRebootPending"
}

# Example 1: Query a registry setting (works)
Invoke-CimMethod @invokeCimMethodSplatReg

# Example 2: Query a registry setting (via a CIM session) (works)
$invokeCimMethodSplatReg.CimSession = $cimSession
Invoke-CimMethod @invokeCimMethodSplatReg

# Example 3: Query for ConfigMgr pending reboots (works)
Invoke-CimMethod @invokeCimMethodSplatCCM

# Example 4: Query for ConfigMgr pending reboots (via CIM session) (fails)
$invokeCimMethodSplatCCM.CimSession = $cimSession
Invoke-CimMethod @invokeCimMethodSplatCCM 
...