Использование Invoke-CimMethod для проверки существования пути к реестру - PullRequest
0 голосов
/ 02 октября 2018

Я хочу преобразовать

$path = 'HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'
$results += if (Test-Path $path) { $true }

в Invoke-CIMMethod, который я могу запустить при подключении к удаленному серверу с помощью CIMSession.

Приведенный ниже код проверяет многострочное значение записи реестра.Я предполагаю, что я использовал бы что-то близкое к этому, но я не уверен, какой метод я должен использовать для простого тестирования, если путь существует.

$Arguments = @{
  hDefKey = [uINT32]2147483650; 
  sSubKeyName = "SYSTEM\CurrentControlSet\Control\Session Manager"; 
  sValueName = "PendingFileRenameOperations"
}
Invoke-CimMethod -ClassName 'StdRegProv' -CimSession $CimSession -MethodName 'GetMultiStringValue' -Namespace 'ROOT\CIMv2' -Arguments $Arguments

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете вызвать метод EnumKey для соответствующего ключа и затем проверить ReturnValue:

$Arguments = @{
  hDefKey = [uint32]2147483650
  sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"
}
$enumKey = Invoke-CimMethod -ClassName 'StdRegProv' -CimSession $CimSession -MethodName 'EnumKey' -Namespace 'ROOT\CIMv2' -Arguments $Arguments
if($enumKey.ReturnValue -eq 2){
  # key not found
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...