Замените Get-WmiObject на Get-CimInstance - PullRequest
0 голосов
/ 07 февраля 2019

Мы проверяем наш код и пытаемся заменить WMI CmdLets на CIM.Следующий код работает нормально:

$Query = "SELECT InstalledLocation,ProductVersion,ProductName FROM SMS_R_System
JOIN
    SMS_G_SYSTEM_Installed_Software on SMS_R_System.ResourceID =
    SMS_G_SYSTEM_Installed_Software.ResourceID
WHERE SMS_R_SYSTEM.Name=""$C"" "

Get-WmiObject -ComputerName $SCCMServer -Namespace $SCCMNameSpace -Query $Query

Поскольку WMI по умолчанию использует DCOM, мы подумали, что это так же просто, как использовать следующее:

$CimSessionOption = New-CimSessionOption –Protocol DCOM
$CimSession = New-CimSession -ComputerName $SCCMServer -SessionOption $CimSessionOption
Get-CimInstance -CimSession $CimSession -Namespace $SCCMNameSpace -Query $Query

Но мы получаем ошибку New-CimSession : Access deniedхотя мы используем один и тот же протокол соединения.

Есть ли что-то очевидное, чего нам здесь не хватает?

...