New-CMDetectionClauseRegistryKeyValue

Создайте пункт метода обнаружения для ключевого значения реестра.

Синтаксис

New-CMDetectionClauseRegistryKeyValue
   -ExpressionOperator <RegistryValueRuleExpressionOperator>
   -Hive <RegistryRootKey>
   [-Is64Bit]
   -KeyName <String>
   -PropertyType <SettingDataType>
   -ValueName <String>
   -ExpectedValue <String[]>
   [-Value]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [<CommonParameters>]
New-CMDetectionClauseRegistryKeyValue
   -Hive <RegistryRootKey>
   [-Is64Bit]
   -KeyName <String>
   -PropertyType <SettingDataType>
   -ValueName <String>
   [-Existence]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [<CommonParameters>]

Описание

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

Чтобы обнаружить наличие ключа реестра вместо значения, используйте cmdlet New-CMDetectionClauseRegistryKey.

После использования этого комлета используйте один **** из надстройки или set-cmdlet для типов развертывания. Передайте этот объект обнаружения либо параметрам AddDetectionClause, либо RemoveDetectionClause.

Для пунктов обнаружения групп используйте параметр GroupDetectionClauses в группах типа развертывания.

Примечание

Запустите команды диспетчера конфигурации из диска веб-сайта Configuration Manager, например PS XYZ:\> . Дополнительные сведения см. в дополнительных сведениях о том, как начать работу.

Примеры

Пример 1. Обнаружение существования значения реестра

В этом примере создается пункт для обнаружения существования значения Git для Windows версии.

$regClause = New-CMDetectionClauseRegistryKeyValue -Hive LocalMachine -KeyName "SOFTWARE\GitForWindows" -PropertyType String -ValueName "CurrentVersion" -Existence

Set-CMMsiDeploymentType -ApplicationName "Git for Windows" -DeploymentTypeName "Install" -AddDetectionClause $regClause

Пример 2. Сравнение значения версии в реестре

В этом примере создается предложение для сравнения версии Microsoft 365 в реестре, которая больше или равна 16.0.10730.20304 .

$clause = New-CMDetectionClauseRegistryKeyValue -Hive LocalMachine -KeyName 'Software\Microsoft\Office\ClickToRun\Configuration' -PropertyType Version -ValueName 'VersionToReport' -Value -ExpectedValue '16.0.10730.20304' -ExpressionOperator GreaterEquals

Set-CMMsiDeploymentType -ApplicationName "Microsoft 365" -DeploymentTypeName "Install" -AddDetectionClause $clause

Параметры

-DisableWildcardHandling

Этот параметр рассматривает символы под диктовки как буквальные значения символов. Вы не можете объединить его с ForceWildcardHandling.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Existence

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

Вместо простого существования, чтобы оценить правило для данных этого ключевого значения реестра, используйте параметр Value.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ExpectedValue

При добавлении параметра Value используйте ExpectedValue с PropertyType и ExpressionOperator. При использовании этих параметров ключевое значение реестра должно удовлетворять правилу, чтобы указать наличие этого приложения. Этот параметр ExpectedValue указывает значение для сравнения с ключевым значением реестра.

Значение для сравнения зависит от указанного PropertyType.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ExpressionOperator

При добавлении параметра Value используйте ExpressionOperator с PropertyType и ExpectedValue. При использовании этих параметров ключевое значение реестра должно удовлетворять правилу, чтобы указать наличие этого приложения. Этот параметр ExpressionOperator указывает оператору для сравнения ключевого значения реестра с ожидаемым значением.

Начиная с версии 2010 года тип параметра изменился с RuleExpressionOperator на RegistryValueRuleExpressionOperator.

Type:RegistryValueRuleExpressionOperator
Accepted values:IsEquals, NotEquals, GreaterThan, LessThan, Between, GreaterEquals, LessEquals, OneOf, NoneOf, BeginsWith, NotBeginsWith, EndsWith, NotEndsWith, Contains, NotContains
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ForceWildcardHandling

Этот параметр обрабатывает символы под диктовки и может привести к неожиданному поведению (не рекомендуется). Вы не можете объединить его с DisableWildcardHandling.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Hive

Укажите улей реестра, где существует ключ. Чтобы указать имя ключа, используйте параметр KeyName. Чтобы указать ключевое значение реестра, используйте параметр ValueName.

Например, следующую команду PowerShell переводит на следующие значения параметров:

Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' | Select-Object CurrentVersion

Параметр Значение
Hive LocalMachine
KeyName 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
ValueName CurrentVersion
Type:RegistryRootKey
Aliases:RegistryHive
Accepted values:ClassesRoot, CurrentConfig, CurrentUser, LocalMachine, Users
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Is64Bit

Добавьте этот параметр, чтобы указать, что этот ключ реестра связан с 32-битным приложением в 64-битных системах.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-KeyName

Укажите имя ключа реестра, который должен существовать, чтобы указать наличие этого приложения. Используйте параметр Hive, чтобы указать улей реестра, где должен существовать этот ключ. Чтобы указать ключевое значение реестра, используйте параметр ValueName.

Например, следующую команду PowerShell переводит на следующие значения параметров:

Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' | Select-Object CurrentVersion

Параметр Значение
Hive LocalMachine
KeyName 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
ValueName CurrentVersion
Type:String
Aliases:RegistryKey
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-PropertyType

При добавлении параметра Value используйте PropertyType с ExpressionOperator и ExpectedValue. При использовании этих параметров ключевое значение реестра должно удовлетворять правилу, чтобы указать наличие этого приложения. Этот параметр PropertyType указывает тип данных ключевого значения реестра.

Например, вы установите этот Version параметр, установите ExpressionOperator IsEquals и ExpectedValue 1.48.1.0 . Затем правило проверяет ключевое значение указанного реестра, чтобы иметь ту же версию.

Type:SettingDataType
Accepted values:Version, Integer, String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Value

При добавлении параметра Value ключевое значение реестра должно удовлетворять правилу, чтобы указать наличие этого приложения. Используйте этот параметр со следующими параметрами: ExpectedValue, ExpressionOperatorи PropertyType.

Вместо оценки правила, чтобы просто проверить наличие ключевого значения реестра, используйте параметр Existence.

Type:SwitchParameter
Aliases:ValueRule
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ValueName

Укажите ключевое значение реестра, которое указывает на наличие приложения. Используйте параметр Hive для указания улья реестра и KeyName для указания ключа реестра.

Например, следующую команду PowerShell переводит на следующие значения параметров:

Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' | Select-Object CurrentVersion

Параметр Значение
Hive LocalMachine
KeyName 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
ValueName CurrentVersion
Type:String
Aliases:RegistryValueName
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

Нет

Выходные данные

System.Object