New-CMDetectionClauseRegistryKeyValue

建立登錄機碼值的偵測方法子句。

Syntax

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>]

Description

使用此 Cmdlet 可在應用程式的偵測方法中建立子句。 此子句是登錄機碼值的規則,用來指出應用程式的存在。

若要偵測是否存在登錄機碼而非值,請使用 CMDetectionClauseRegistryKey Cmdlet。

使用此 Cmdlet 後,請使用其中一個 載入設定 Cmdlet 進行部署類型。 請將此偵測子句物件傳遞至 AddDetectionClauseRemoveDetectionClause 參數。

若要群組偵測子句,請在部署類型 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合併。

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

-ExpectedValue

當您新增 Value 參數時,請使用 ExpectedValue 搭配 PropertyTypeExpressionOperator。 當您使用這些參數時,登錄機碼值必須符合規則,以指出此應用程式的目前狀態。 這個 ExpectedValue 參數會指定要與登錄機碼值進行比較的值。

要比較的值會視指定的 PropertyType而定。

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

-ExpressionOperator

當您新增 Value 參數時,請使用 ExpressionOperator 搭配 PropertyTypeExpectedValue。 當您使用這些參數時,登錄機碼值必須符合規則,以指出此應用程式的目前狀態。 這個 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

-Is64Bit

新增此參數,表示此登錄機碼與64位系統上的32位應用程式相關聯。

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
'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
等值 CurrentVersion
Type:String
Aliases:RegistryKey
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-PropertyType

當您新增 Value 參數時,請使用 PropertyType 搭配 ExpressionOperatorExpectedValue。 當您使用這些參數時,登錄機碼值必須符合規則,以指出此應用程式的目前狀態。 這個 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 參數時,登錄機碼值必須符合規則,以指出此應用程式的目前狀態。 使用此參數搭配下列參數: ExpectedValueExpressionOperatorPropertyType

若只檢查登錄機碼的值是否存在,請使用 現有 的參數,而不是評估規則。

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
'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
等值 CurrentVersion
Type:String
Aliases:RegistryValueName
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-存在

當您新增此參數時,必須在目標系統上存在登錄機碼值,表示此應用程式的目前狀態。

若要評估此登錄機碼值之資料的規則,請使用 value 參數,而不是僅存在。

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

-蜂巢

指定機碼所在的登錄蜂巢。 使用 KeyName 參數來指定機碼名稱。 使用 ValueName 參數來指定登錄機碼值。

例如,下列 PowerShell 命令會轉譯為下列參數值:

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

參數
Hive LocalMachine
'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
等值 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

輸入

輸出

系統.物件