Метод обнаружения - powershell - реестр - PullRequest
1 голос
/ 16 октября 2019

Я работаю над выяснением того, как создать метод обнаружения в SCCM. Я использовал метод ниже, который работает. Но мне нужно немного больше в

if(test-path -path <regpath>)


{
Write-Host "installed"
}

else
{
}

Я ищу использовать где -Name DisplayVersion -eq "7.7.1" для метода обнаружения. Любая помощь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

ответ js2010 работает хорошо, даже в старых версиях PowerShell, но требует дублирования имени значения.

В PowerShell v5 или более поздней версии , которую вы можете использоватьвместо этого Get-ItemPropertyValue командлет , что позволяет избежать дублирования:

$key = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\xxx'
$valueName = 'DisplayVersion' # in PS terminology: *property* name 
$valueData = '7.7.1' # in PS terminology: *property value*

if ((Get-ItemPropertyValue $key $valueName) -eq $valueData) {
  "installed"
} else {
  "NOT installed"
}

Если вместо этого вы ищете конкретное значение свойства (данные значения реестра)) в данном свойстве (значение реестра) среди всех подразделов указанного пути к ключу реестра:

$key = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
$valueName = 'DisplayVersion'
$valueData = '7.7.1'

if (Get-ChildItem $key | Where { $_.GetValue($valueName) -eq $valueData }) {
  "installed"
} else {
  "NOT installed"
}
0 голосов
/ 16 октября 2019

Вот пример:

if ((get-itemproperty hkcu:\key1 name1).name1 -eq 'value1') { 
  'yes' 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...