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。 將此偵測子句對象傳遞至 AddDetectionClause 或 RemoveDetectionClause 參數。
若要將偵測子句分組,請在部署類型 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 搭配 PropertyType 和 ExpressionOperator。 當您使用這些參數時,登錄機碼值必須滿足規則,以指出此應用程式是否存在。 這個 ExpectedValue 參數會指定要與登錄機碼值比較的值。
要比較的值取決於指定的 PropertyType。
類型: | String[] |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-ExpressionOperator
當您新增 Value 參數時,請搭配 PropertyType 和 ExpectedValue 使用 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 參數時,請搭配 ExpressionOperator 和 ExpectedValue 使用 PropertyType。 當您使用這些參數時,登錄機碼值必須滿足規則,以指出此應用程式是否存在。 這個 PropertyType 參數會指定登錄機碼值的數據類型。
例如,您將此參數設定為 Version
,將 ExpressionOperator 設定為 IsEquals
,並將 ExpectedValue 設定 為 1.48.1.0
。 規則接著會檢查指定的登錄機碼值是否具有相同的版本。
類型: | SettingDataType |
接受的值: | Version, Integer, String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Value
當您新增 Value 參數時,登錄機碼值必須滿足規則,以指出此應用程式是否存在。 使用此參數搭配下列參數: ExpectedValue、 ExpressionOperator 和 PropertyType。
若要只檢查登錄機碼值是否存在,請使用 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