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 cmdlet。
使用此 cmdlet 后,请对部署类型使用 Add- 或 Set- cmdlet 之一。 将此检测子句对象传递给 AddDetectionClause 或 RemoveDetectionClause 参数。
若要对检测子句进行分组,请在部署类型 cmdlet 上使用 GroupDetectionClauses 参数。
注意
从 Configuration Manager 站点驱动器运行 Configuration Manager cmdlet,例如 PS XYZ:\>。 有关详细信息,请参阅 入门。
示例
示例 1:检测是否存在注册表值
此示例创建一个子句来检测是否存在适用于 Windows 的 Git 当前版本值。
$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 组合使用。
| 类型: | SwitchParameter | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | False | 
| 接受管道输入: | False | 
| 接受通配符: | False | 
-Existence
添加此参数时,注册表项值必须存在于目标系统上,以指示存在此应用程序。
若要评估此注册表项值的数据的规则,请使用 Value 参数,而不是仅仅存在。
| 类型: | SwitchParameter | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | True | 
| 接受管道输入: | False | 
| 接受通配符: | False | 
-ExpectedValue
添加 Value 参数时,请将 ExpectedValue 与 PropertyType 和 ExpressionOperator 配合使用。 使用这些参数时,注册表项值必须满足指示存在此应用程序的规则。 此 ExpectedValue 参数指定要与注册表项值进行比较的值。
要比较的值取决于指定的 PropertyType。
| 类型: | String[] | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | True | 
| 接受管道输入: | False | 
| 接受通配符: | False | 
-ExpressionOperator
添加 Value 参数时,将 ExpressionOperator 与 PropertyType 和 ExpectedValue 配合使用。 使用这些参数时,注册表项值必须满足指示存在此应用程序的规则。 此 ExpressionOperator 参数指定将注册表项值与预期值进行比较的运算符。
从版本 2010 开始,参数类型从 RuleExpressionOperator 更改为 RegistryValueRuleExpressionOperator。
| 类型: | RegistryValueRuleExpressionOperator | 
| 接受的值: | IsEquals, NotEquals, GreaterThan, LessThan, Between, GreaterEquals, LessEquals, OneOf, NoneOf, BeginsWith, NotBeginsWith, EndsWith, NotEndsWith, Contains, NotContains | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | True | 
| 接受管道输入: | False | 
| 接受通配符: | False | 
-ForceWildcardHandling
此参数处理通配符,并可能导致意外行为, (不建议) 。 不能将其与 DisableWildcardHandling 组合使用。
| 类型: | SwitchParameter | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | False | 
| 接受管道输入: | False | 
| 接受通配符: | 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 | 
| 类型: | RegistryRootKey | 
| 别名: | RegistryHive | 
| 接受的值: | ClassesRoot, CurrentConfig, CurrentUser, LocalMachine, Users | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | True | 
| 接受管道输入: | False | 
| 接受通配符: | False | 
-Is64Bit
添加此参数以指示此注册表项与 64 位系统上的 32 位应用程序相关联。
| 类型: | SwitchParameter | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | False | 
| 接受管道输入: | False | 
| 接受通配符: | 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 | 
| 类型: | String | 
| 别名: | RegistryKey | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | True | 
| 接受管道输入: | False | 
| 接受通配符: | False | 
-PropertyType
添加 Value 参数时,请将 PropertyType 与 ExpressionOperator 和 ExpectedValue 配合使用。 使用这些参数时,注册表项值必须满足指示存在此应用程序的规则。 此 PropertyType 参数指定注册表项值的数据类型。
例如,将此参数设置为 Version,将 ExpressionOperator 设置为 IsEquals, 并将 ExpectedValue 设置为 1.48.1.0。 然后,该规则检查指定的注册表项值是否具有相同的版本。
| 类型: | SettingDataType | 
| 接受的值: | Version, Integer, String | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | True | 
| 接受管道输入: | False | 
| 接受通配符: | False | 
-Value
添加 Value 参数时,注册表项值必须满足规则,以指示存在此应用程序。 将此参数与以下参数一起使用: ExpectedValue、 ExpressionOperator 和 PropertyType。
若要仅检查注册表项值是否存在,请使用 Exists 参数,而不是评估规则。
| 类型: | SwitchParameter | 
| 别名: | ValueRule | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | True | 
| 接受管道输入: | False | 
| 接受通配符: | 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 | 
| 类型: | String | 
| 别名: | RegistryValueName | 
| Position: | Named | 
| 默认值: | None | 
| 必需: | True | 
| 接受管道输入: | False | 
| 接受通配符: | False | 
输入
None
输出
System.Object