共用方式為


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

Description

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

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

使用此 Cmdlet 之後,請針對部署類型使用其中一個 Add-Set- Cmdlet。 將此偵測子句對象傳遞至 AddDetectionClauseRemoveDetectionClause 參數。

若要將偵測子句分組,請在部署類型 Cmdlet 上使用 GroupDetectionClauses 參數。

注意事項

從 Configuration Manager 月臺磁碟驅動器執行 Configuration Manager Cmdlet,例如 PS XYZ:\>。 如需詳細資訊,請 參閱開始使用

範例

範例 1:偵測登錄值是否存在

此範例會建立 子句來偵測 Git for 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 結合。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Existence

當您新增此參數時,登錄機碼值必須存在於目標系統上,以指出此應用程式是否存在。

若要評估此登錄機碼值數據的規則,請使用 Value 參數,而不只是存在。

類型:SwitchParameter
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-ExpectedValue

當您新增 Value 參數時,請使用 ExpectedValue 搭配 PropertyTypeExpressionOperator。 當您使用這些參數時,登錄機碼值必須滿足規則,以指出此應用程式是否存在。 這個 ExpectedValue 參數會指定要與登錄機碼值比較的值。

要比較的值取決於指定的 PropertyType

類型:String[]
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-ExpressionOperator

當您新增 Value 參數時,請搭配 PropertyTypeExpectedValue 使用 ExpressionOperator。 當您使用這些參數時,登錄機碼值必須滿足規則,以指出此應用程式是否存在。 這個 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 參數時,請搭配 ExpressionOperatorExpectedValue 使用 PropertyType。 當您使用這些參數時,登錄機碼值必須滿足規則,以指出此應用程式是否存在。 這個 PropertyType 參數會指定登錄機碼值的數據類型。

例如,您將此參數設定為 Version,將 ExpressionOperator 設定為 IsEquals,並將 ExpectedValue 設定1.48.1.0。 規則接著會檢查指定的登錄機碼值是否具有相同的版本。

類型:SettingDataType
接受的值:Version, Integer, String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-Value

當您新增 Value 參數時,登錄機碼值必須滿足規則,以指出此應用程式是否存在。 使用此參數搭配下列參數: ExpectedValueExpressionOperatorPropertyType

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

類型: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