Freigeben über


New-CMDetectionClauseRegistryKeyValue

Erstellen Sie eine Erkennungsmethodenklausel für einen Registrierungsschlüsselwert.

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

Beschreibung

Verwenden Sie dieses Cmdlet, um eine -Klausel in einer Erkennungsmethode für eine Anwendung zu erstellen. Diese Klausel ist eine Regel für einen Registrierungsschlüsselwert, der das Vorhandensein einer Anwendung angibt.

Um das Vorhandensein eines Registrierungsschlüssels anstelle eines Werts zu erkennen, verwenden Sie das Cmdlet New-CMDetectionClauseRegistryKey .

Nachdem Sie dieses Cmdlet verwendet haben, verwenden Sie eines der Add- oder Set-Cmdlets für Bereitstellungstypen. Übergeben Sie dieses Erkennungsklauselobjekt entweder an die Parameter AddDetectionClause oder RemoveDetectionClause .

Verwenden Sie zum Gruppieren von Erkennungsklauseln den GroupDetectionClauses-Parameter für die Cmdlets des Bereitstellungstyps.

Hinweis

Führen Sie Configuration Manager-Cmdlets auf dem Configuration Manager-Standortlaufwerk aus, z. B PS XYZ:\>. . Weitere Informationen finden Sie unter Erste Schritte.

Beispiele

Beispiel 1: Erkennen des Vorhandenseins eines Registrierungswerts

In diesem Beispiel wird eine -Klausel erstellt, um das Vorhandensein des aktuellen Versionswerts von Git für Windows zu erkennen.

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

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

Beispiel 2: Vergleichen eines Versionswerts in der Registrierung

In diesem Beispiel wird eine -Klausel erstellt, um die Version von Microsoft 365 in der Registrierung so zu vergleichen, dass sie größer oder gleich ist 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

Parameter

-DisableWildcardHandling

Dieser Parameter behandelt Wildcardzeichen als Literalzeichenwerte. Sie können es nicht mit ForceWildcardHandling kombinieren.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Existence

Wenn Sie diesen Parameter hinzufügen, muss der Registrierungsschlüsselwert auf dem Zielsystem vorhanden sein, um das Vorhandensein dieser Anwendung anzuzeigen.

Verwenden Sie den Value-Parameter , um eine Regel für die Daten dieses Registrierungsschlüsselwerts auszuwerten.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ExpectedValue

Wenn Sie den Value-Parameter hinzufügen, verwenden Sie ExpectedValue mit PropertyType und ExpressionOperator. Wenn Sie diese Parameter verwenden, muss der Registrierungsschlüsselwert die Regel erfüllen, um anzugeben, dass diese Anwendung vorhanden ist. Dieser ExpectedValue-Parameter gibt den Wert an, der mit dem Registrierungsschlüsselwert verglichen werden soll.

Der zu vergleichende Wert hängt vom angegebenen PropertyType ab.

Typ:String[]
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ExpressionOperator

Wenn Sie den Value-Parameter hinzufügen, verwenden Sie ExpressionOperator mit PropertyType und ExpectedValue. Wenn Sie diese Parameter verwenden, muss der Registrierungsschlüsselwert die Regel erfüllen, um anzugeben, dass diese Anwendung vorhanden ist. Dieser ExpressionOperator-Parameter gibt den Operator an, um den Registrierungsschlüsselwert mit dem erwarteten Wert zu vergleichen.

Ab Version 2010 wurde der Parametertyp von RuleExpressionOperator in RegistryValueRuleExpressionOperator geändert.

Typ:RegistryValueRuleExpressionOperator
Zulässige Werte:IsEquals, NotEquals, GreaterThan, LessThan, Between, GreaterEquals, LessEquals, OneOf, NoneOf, BeginsWith, NotBeginsWith, EndsWith, NotEndsWith, Contains, NotContains
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ForceWildcardHandling

Dieser Parameter verarbeitet Wildcardzeichen und kann zu unerwartetem Verhalten führen (nicht empfohlen). Sie können es nicht mit DisableWildcardHandling kombinieren.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Hive

Geben Sie die Registrierungsstruktur an, in der der Schlüssel vorhanden ist. Verwenden Sie den KeyName-Parameter , um den Schlüsselnamen anzugeben. Verwenden Sie den ValueName-Parameter , um den Registrierungsschlüsselwert anzugeben.

Der folgende PowerShell-Befehl übersetzt beispielsweise die folgenden Parameterwerte:

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

Parameter Wert
Hive LocalMachine
KeyName 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
ValueName CurrentVersion
Typ:RegistryRootKey
Aliase:RegistryHive
Zulässige Werte:ClassesRoot, CurrentConfig, CurrentUser, LocalMachine, Users
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Is64Bit

Fügen Sie diesen Parameter hinzu, um anzugeben, dass dieser Registrierungsschlüssel einer 32-Bit-Anwendung auf 64-Bit-Systemen zugeordnet ist.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-KeyName

Geben Sie den Namen des Registrierungsschlüssels an, der vorhanden sein muss, um das Vorhandensein dieser Anwendung anzugeben. Verwenden Sie den Hive-Parameter , um die Registrierungsstruktur anzugeben, in der dieser Schlüssel vorhanden sein soll. Verwenden Sie den ValueName-Parameter , um den Registrierungsschlüsselwert anzugeben.

Der folgende PowerShell-Befehl übersetzt beispielsweise die folgenden Parameterwerte:

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

Parameter Wert
Hive LocalMachine
KeyName 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
ValueName CurrentVersion
Typ:String
Aliase:RegistryKey
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-PropertyType

Wenn Sie den Value-Parameter hinzufügen, verwenden Sie PropertyType mit ExpressionOperator und ExpectedValue. Wenn Sie diese Parameter verwenden, muss der Registrierungsschlüsselwert die Regel erfüllen, um anzugeben, dass diese Anwendung vorhanden ist. Dieser PropertyType-Parameter gibt den Datentyp des Registrierungsschlüsselwerts an.

Sie legen diesen Parameter z. B. auf Version, ExpressionOperator auf IsEqualsund ExpectedValue auf 1.48.1.0fest. Die Regel überprüft dann, ob der angegebene Registrierungsschlüsselwert dieselbe Version aufweist.

Typ:SettingDataType
Zulässige Werte:Version, Integer, String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Value

Wenn Sie den Value-Parameter hinzufügen, muss der Registrierungsschlüsselwert die Regel erfüllen, um anzugeben, dass diese Anwendung vorhanden ist. Verwenden Sie diesen Parameter mit den folgenden Parametern: ExpectedValue, ExpressionOperator und PropertyType.

Anstatt eine Regel auszuwerten, um nur zu überprüfen, ob der Registrierungsschlüsselwert vorhanden ist, verwenden Sie den Parameter Existence .

Typ:SwitchParameter
Aliase:ValueRule
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ValueName

Geben Sie den Registrierungsschlüsselwert an, der das Vorhandensein der Anwendung angibt. Verwenden Sie den Hive-Parameter , um die Registrierungsstruktur anzugeben, und KeyName , um den Registrierungsschlüssel anzugeben.

Der folgende PowerShell-Befehl übersetzt beispielsweise die folgenden Parameterwerte:

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

Parameter Wert
Hive LocalMachine
KeyName 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
ValueName CurrentVersion
Typ:String
Aliase:RegistryValueName
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

None

Ausgaben

System.Object