Format und Syntax von Azure-Rollenzuweisungsbedingungen

Eine Bedingung ist eine zusätzliche Überprüfung, die Sie Ihrer Rollenzuweisung optional hinzufügen können, um eine präzisere Zugriffssteuerung zu ermöglichen. So können Sie beispielsweise eine Bedingung hinzufügen, die festlegt, dass ein Objekt über ein bestimmtes Tag verfügen muss, damit das Objekt gelesen werden kann. In diesem Artikel werden das Format und die Syntax von Rollenzuweisungsbedingungen beschrieben.

Bedingungsformat

Um Rollenzuweisungsbedingungen besser zu verstehen, ist es hilfreich, sich das Format anzusehen.

Einfache Bedingung

Die einfachste Bedingung besteht aus einer zielorientierten Aktion und einem Ausdruck. Eine Aktion ist ein Vorgang, den ein Benutzer für einen Ressourcentyp ausführen kann. Ein Ausdruck ist eine Anweisung, deren Auswertung „true“ oder „false“ ergibt. Dadurch wird bestimmt, ob die Aktion ausgeführt werden darf.

Nachfolgend ist das Format einer einfachen Bedingung gezeigt:

Format einer einfachen Bedingung mit einer einzelnen Aktion und einem einzelnen Ausdruck

(
    (
        !(ActionMatches{'<action>'})
    )
    OR
    (
        <attribute> <operator> <value>
    )
)

Die folgende Bedingung verfügt über die Aktion „Blob lesen“. Der Ausdruck überprüft, ob der Containername „blobs-example-container“ lautet.

(
    (
        !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
    )
    OR 
    (
        @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name]
        StringEquals 'blobs-example-container'
    )
)

Diagramm: Lesezugriff auf Blobs mit einem bestimmten Containernamen

Auswertung einer Bedingung

Wenn ein Benutzer versucht, in der Rollenzuweisung eine andere Aktion als <action> auszuführen, ergeben die Auswertung von !(ActionMatches) und die Auswertung der gesamten Bedingung „true“, damit die Aktion ausgeführt werden kann.

Wenn ein Benutzer versucht, <action> in der Rollenzuweisung auszuführen, ergibt die Auswertung von !(ActionMatches) „false“, sodass der Ausdruck ausgewertet wird. Ergibt die Auswertung des Ausdrucks „true“, ergibt die Auswertung der gesamten Bedingung „true“, damit <action> ausgeführt werden kann. Andernfalls darf <action> nicht ausgeführt werden.

Der folgende Pseudocode zeigt eine andere Möglichkeit zum Lesen dieser Bedingung:

if a user tries to perform an action in the role assignment that does not match <action>
{
    Allow action to be performed
}
else
{
    if <attribute> <operator> <value> is true
    {
        Allow <action> to be performed
    }
    else
    {
        Do not allow <action> to be performed
    }
}

Untervorgänge

Einige Aktionen verfügen über Untervorgänge. Die Datenaktion hat zum Beispiel die Microsoft.Storage/storageAccounts/blobServices/containers/blobs/readUnteroperation "Blobs auflisten". Bedingungen mit Untervorgängen haben das folgende Format:

Format für eine Aktion mit einem Untervorgang

(
    (
        !(ActionMatches{'<action>'}
        AND
        SubOperationMatches{'<subOperation>'})

    )
    OR
    (
        <attribute> <operator> <value>
    )
)

Mehrere Aktionen

Eine Bedingung kann mehrere Aktionen enthalten, die Sie zulassen möchten, wenn die Bedingung „true“ lautet. Wenn Sie mehrere Aktionen für eine einzelne Bedingung auswählen, stehen für Ihre Bedingung möglicherweise weniger Attribute zur Auswahl, weil die Attribute für alle ausgewählten Aktionen verfügbar sein müssen.

Format zum Zulassen mehrerer Aktionen, wenn die Bedingung „true“ lautet

(
    (
        !(ActionMatches{'<action>'})
        AND
        !(ActionMatches{'<action>'})
    )
    OR
    (
        <attribute> <operator> <value>
    )
)

Mehrere Ausdrücke

Eine Bedingung kann mehrere Ausdrücke enthalten. Je nach Operator können Attribute anhand mehrerer Werte überprüft werden.

Format für mehrere Ausdrücke mit booleschen Operatoren und mehreren Werten

(
    (
        !(ActionMatches{'<action>'})
    )
    OR
    (
        <attribute> <operator> <value>
        AND | OR
        <attribute> <operator> {<value>, <value>, <value>}
        AND | OR
        <attribute> <operator> <value>
    )
)

Mehrere Bedingungen

Sie können Bedingungen auch kombinieren, um mehrere Aktionen einzubeziehen.

Format für mehrere Bedingungen mit booleschem Operator

(
    (
        !(ActionMatches{'<action>'})
    )
    OR
    (
        <attribute> <operator> <value>
        AND | OR
        <attribute> <operator> {<value>, <value>, <value>}
        AND | OR
        <attribute> <operator> <value>
    )
)
AND
(
    (
        !(ActionMatches{'<action>'})
    )
    OR
    (
        <attribute> <operator> <value>
        AND | OR
        <attribute> <operator> <value>
    )
)

Bedingungssyntax

Im Folgenden wird die Syntax für eine Rollenzuweisungsbedingung veranschaulicht:

(
    (
        !(ActionMatches{'<action>'} AND SubOperationMatches{'<subOperation>'})
        AND
        !(ActionMatches{'<action>'} AND SubOperationMatches{'<subOperation>'})
        AND
        ...
    )
    OR
    (
        <attribute> <operator> {<value, <value>, ...}
        AND | OR
        <attribute> <operator> {<value>, <value>, ...}
        AND | OR
        ...
    )
)
AND
(
    (
        !(ActionMatches{'<action>'} AND SubOperationMatches{'<subOperation>'})
        AND
        !(ActionMatches{'<action>'} AND SubOperationMatches{'<subOperation>'})
        AND
        ...
    )
    OR
    (
        <attribute> <operator> {<value, <value>, ...}
        AND | OR
        <attribute> <operator> {<value>, <value>, ...}
        AND | OR
        ...
    )
)
AND
...

Aktionen

Derzeit können Bedingungen zu integrierten oder benutzerdefinierten Rollenzuweisungen hinzugefügt werden, die über Blob-Speicher- oder Warteschlangen-Speicherdatenaktionen verfügen. Dies umfasst die folgenden integrierten Rollen:

Eine Liste der Speicheraktionen, die Sie in Bedingungen verwenden können, finden Sie unter:

Attribute

Abhängig von den ausgewählten Aktionen befindet sich das Attribut unter Umständen an verschiedenen Orten. Wenn Sie mehrere Aktionen für eine einzelne Bedingung auswählen, stehen für Ihre Bedingung möglicherweise weniger Attribute zur Auswahl, weil die Attribute für alle ausgewählten Aktionen verfügbar sein müssen. Zum Angeben eines Attributs müssen Sie die Quelle als Präfix aufnehmen.

Attributquelle BESCHREIBUNG Code
Umgebung Das Attribut ist der Umgebung der Anforderung zugeordnet, z. B. dem Netzwerkursprung der Anforderung oder dem aktuellen Datum und der aktuellen Uhrzeit.
@Environment
Prinzipal „Attribut“ ist ein benutzerdefiniertes Sicherheitsattribute, das dem Prinzipal zugewiesen ist, z. B. einem Benutzer oder einer Unternehmensanwendung (Dienstprinzipal). @Principal
Anfordern „Attribut“ ist ein Teil der Aktionsanforderung, z. B. das Festlegen des Blobindextags. @Request
Ressource „Attribut“ ist eine Eigenschaft der Ressource, z. B. ein Containername. @Resource

Eine vollständige Liste der Speicherattribute, die Sie in Bedingungen verwenden können, finden Sie unter:

Umgebungsattribute

Umgebungsattribute sind den Umständen zugeordnet, unter denen die Zugriffsanforderung erfolgt, z. B. das Datum und die Uhrzeit oder die Netzwerkumgebung. Bei der Netzumgebung kann es sich um einen Zugriff über einen bestimmten privaten Endpunkt oder ein virtuelles Netzwerk-Subnetz handeln, aber auch um eine beliebige private Verbindung.

In der folgenden Tabelle sind die unterstützten Umgebungsattribute für Bedingungen aufgeführt.

`Display name` Beschreibung attribute Typ
Ist eine private Verbindung1 Verwenden Sie dieses Attribut in Bedingungen, um Zugriff über einen privaten Link zu erfordern. isPrivateLink Boolescher Wert
Privater Endpunkt1,2 Verwenden Sie dieses Attribut in Bedingungen, um den Zugriff über einen bestimmten privaten Endpunkt einzuschränken. Microsoft.Network/privateEndpoints Zeichenfolge
Subnetz1,3 Verwenden Sie dieses Attribut in Bedingungen, um den Zugriff von einem bestimmten Subnetz einzuschränken. Microsoft.Network/virtualNetworks/subnets Zeichenfolge
UTC jetzt Verwenden Sie dieses Attribut in Bedingungen, um den Zugriff auf Objekte während bestimmter Zeiträume einzuschränken. UtcNow DateTime

1 Bei Kopiervorgängen gelten die Attribute Is private link, Private endpoint und Subnet nur für das Ziel, z. B. ein Speicherkonto, nicht für die Quelle. Für weitere Informationen zu den Kopiervorgängen, auf die dies zutrifft, wählen Sie jedes Attribut in der Tabelle aus, um weitere Details anzuzeigen.
2 Sie können das Private endpoint-Attribut nur verwenden, wenn Sie derzeit mindestens einen privaten Endpunkt in Ihrem Abonnement konfiguriert haben.
3 Sie können das Subnet-Attribut nur verwenden, wenn Sie derzeit über mindestens ein virtuelles Netzwerk-Subnetz verfügen, das Dienstendpunkte verwendet, die in Ihrem Abonnement konfiguriert sind.

Prinzipalattribute

Prinzipalattribute sind benutzerdefinierte Sicherheitsattribute, die dem Sicherheitsprinzipal zugewiesen sind, der Zugriff auf eine Ressource anfordert. Der Sicherheitsprinzipal kann ein Benutzer oder eine Unternehmensanwendung (Dienstprinzipal) sein.

Um Prinzipalattribute verwenden zu können, müssen Sie über Folgendes verfügen:

  • Microsoft Entra-Berechtigungen für den angemeldete Benutzer, z. B. die Rolle Administrator für Attributzuweisung
  • Benutzerdefinierte Sicherheitsattribute, die in Microsoft Entra ID definiert sind

Weitere Informationen zu benutzerdefinierten Sicherheitsattributen finden Sie unter:

Anforderungsattribute

Anforderungsattribute sind den in einer Zugriffsanforderung angegebenen Kriterien zugeordnet, z. B. dem angegebenen Präfix von Blobs, die aufgelistet werden sollen.

Ressourcenattribute

Ressourcenattribute sind dem Objekt zugeordnet, auf das der Zugriff angefordert wird, z. B. dem Speicherkontonamen, dem Containernamen oder ob der hierarchische Namespace für das Speicherkonto aktiviert ist.

Funktionsoperatoren

In diesem Abschnitt sind die Funktionsoperatoren aufgeführt, die zum Erstellen von Bedingungen verfügbar sind.

ActionMatches

Eigenschaft Wert
Operator ActionMatches
Beschreibung Überprüft, ob die aktuelle Aktion dem angegebenen Aktionsmuster entspricht.
Beispiele ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
Wenn die überprüfte Aktion „Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read“ entspricht, wird „true“ ausgegeben.

ActionMatches{'Microsoft.Authorization/roleAssignments/*'}
Wenn die überprüfte Aktion „Microsoft.Authorization/roleAssignments/write“ entspricht, wird „true“ ausgegeben.

ActionMatches{'Microsoft.Authorization/roleDefinitions/*'}
Wenn die überprüfte Aktion „Microsoft.Authorization/roleAssignments/write“ entspricht, wird „false“ ausgegeben.

SubOperationMatches

Eigenschaft Wert
Operator SubOperationMatches
Beschreibung Überprüft, ob der aktuelle Untervorgang mit dem angegebenen Untervorgangsmuster übereinstimmt.
Beispiele SubOperationMatches{'Blob.List'}

Exists

Eigenschaft Wert
Operator Exists
Beschreibung Überprüft, ob das angegebene Attribut vorhanden ist.
Beispiele Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:snapshot]
Attribute unterstützen1 Name des Verschlüsselungsbereichs
Momentaufnahme
Versions-ID

1 Der Exists-Operator wird nur für diese Attribute im visuellen ABAC-Bedingungsgenerator im Azure-Portal unterstützt. Sie können den Exists-Operator zu jedem beliebigen Attribut hinzufügen, indem Sie andere Tools wie PowerShell, die Azure-Befehlszeilenschnittstelle, die REST-API und den Bedingungscodeeditor im Azure-Portal verwenden.

Logische Operatoren

In diesem Abschnitt sind die logischen Operatoren aufgeführt, die zum Erstellen von Bedingungen verfügbar sind.

And

Eigenschaft Wert
Operatoren AND
&&
Beschreibung and-Operator
Beispiele !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

oder

Eigenschaft Wert
Operatoren OR
||
Beschreibung or-Operator
Beispiele @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId] DateTimeEquals '2022-06-01T00:00:00.0Z' OR NOT Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId

Not

Eigenschaft Wert
Operatoren NOT
!
Beschreibung not- oder Negationsoperator
Beispiele NOT Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId]

Boolesche Vergleichsoperatoren

In diesem Abschnitt sind die booleschen Vergleichsoperatoren aufgeführt, die zum Erstellen von Bedingungen verfügbar sind.

Eigenschaft Wert
Operatoren BoolEquals
BoolNotEquals
Beschreibung Boolescher Vergleich.
Beispiele @Resource[Microsoft.Storage/storageAccounts:isHnsEnabled] BoolEquals true

Vergleichsoperatoren für Zeichenfolgen

In diesem Abschnitt sind die Vergleichsoperatoren für Zeichenfolgen aufgeführt, die zum Erstellen von Bedingungen verfügbar sind.

StringEquals

Eigenschaft Wert
Operatoren StringEquals
StringEqualsIgnoreCase
Beschreibung Beim Abgleich wird die Groß-/Kleinschreibung beachtet (oder die Groß-/Kleinschreibung nicht beachtet). Die Werte müssen genau mit der Zeichenfolge übereinstimmen.
Beispiele @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEquals 'Cascade'

StringNotEquals

Eigenschaft Wert
Operatoren StringNotEquals
StringNotEqualsIgnoreCase
Beschreibung Negation des Operators StringEquals (oder StringEqualsIgnoreCase)

StringStartsWith

Eigenschaft Wert
Operatoren StringStartsWith
StringStartsWithIgnoreCase
Beschreibung Beim Abgleich wird die Groß-/Kleinschreibung beachtet (oder die Groß-/Kleinschreibung nicht beachtet). Die Werte beginnen mit der Zeichenfolge.

StringNotStartsWith

Eigenschaft Wert
Operatoren StringNotStartsWith
StringNotStartsWithIgnoreCase
Beschreibung Negation des Operators StringStartsWith (oder StringStartsWithIgnoreCase)

StringLike

Eigenschaft Wert
Operatoren StringLike
StringLikeIgnoreCase
Beschreibung Beim Abgleich wird die Groß-/Kleinschreibung beachtet (oder die Groß-/Kleinschreibung nicht beachtet). Die Werte können an beliebiger Stelle in der Zeichenfolge einen Platzhalter für eine mehrstellige Übereinstimmung (*) oder einen Platzhalter für eine einstellige Übereinstimmung (?) enthalten. Bei Bedarf können diese Zeichen mit einem umgekehrten Schrägstrich als Escapezeichen (\* bzw. \?) versehen werden.
Beispiele @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'readonly/*'

Resource[name1] StringLike 'a*c?'
Wenn „Resource[name1]“ der Zeichenfolge „abcd“ entspricht, wird „true“ ausgegeben.

Resource[name1] StringLike 'A*C?'
Wenn „Resource[name1]“ der Zeichenfolge „abcd“ entspricht, wird „false“ ausgegeben.

Resource[name1] StringLike 'a*c'
Wenn „Resource[name1]“ der Zeichenfolge „abcd“ entspricht, wird „false“ ausgegeben.

StringNotLike

Eigenschaft Wert
Operatoren StringNotLike
StringNotLikeIgnoreCase
Beschreibung Negation des Operators StringLike (oder StringLikeIgnoreCase)

Numerische Vergleichsoperatoren

In diesem Abschnitt sind die numerischen Vergleichsoperatoren aufgeführt, die zum Erstellen von Bedingungen verfügbar sind.

Eigenschaft Wert
Operatoren NumericEquals
NumericNotEquals
NumericGreaterThan
NumericGreaterThanEquals
NumericLessThan
NumericLessThanEquals
Beschreibung Nummernabgleich. Es werden nur ganze Zahlen unterstützt.

DateTime-Vergleichsoperatoren

In diesem Abschnitt sind die DateTime-Vergleichsoperatoren aufgeführt, die zum Erstellen von Bedingungen verfügbar sind.

Eigenschaft Wert
Operatoren DateTimeEquals
DateTimeNotEquals
DateTimeGreaterThan
DateTimeGreaterThanEquals
DateTimeLessThan
DateTimeLessThanEquals
Beschreibung Prüfung mit vollständiger Genauigkeit mit dem Format: yyyy-mm-ddThh:mm:ss.mmmmmmmZ. Wird jetzt für Blob-Versions-ID, Blob-Momentaufnahme und UTC verwendet.
Beispiele @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId] DateTimeEquals '2022-06-01T00:00:00.0Z'

GUID-Vergleichsoperatoren

In diesem Abschnitt werden die GUID (Globally Unique Identifier)-Vergleichsoperatoren aufgeführt, die für Konstruktbedingungen verfügbar sind.

Eigenschaft Wert
Operatoren GuidEquals
GuidNotEquals
Beschreibung Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung mit dem Format: 00000000-0000-0000-0000-000000000000. Wird verwendet, um eine Ressource zu identifizieren, z. B. Prinzipal-ID oder Rollendefinitions-ID.
Beispiele

Produktübergreifende Vergleichsoperatoren

In diesem Abschnitt sind die produktübergreifenden Vergleichsoperatoren aufgeführt, die zum Erstellen von Bedingungen verfügbar sind.

ForAnyOfAnyValues

Eigenschaft Wert
Operatoren ForAnyOfAnyValues:StringEquals
ForAnyOfAnyValues:StringEqualsIgnoreCase
ForAnyOfAnyValues:StringNotEquals
ForAnyOfAnyValues:StringNotEqualsIgnoreCase
ForAnyOfAnyValues:StringLike
ForAnyOfAnyValues:StringLikeIgnoreCase
ForAnyOfAnyValues:StringNotLike
ForAnyOfAnyValues:StringNotLikeIgnoreCase
ForAnyOfAnyValues:NumericEquals
ForAnyOfAnyValues:NumericNotEquals
ForAnyOfAnyValues:NumericGreaterThan
ForAnyOfAnyValues:NumericGreaterThanEquals
ForAnyOfAnyValues:NumericLessThan
ForAnyOfAnyValues:NumericLessThanEquals
ForAnyOfAnyValues:GuidEquals
ForAnyOfAnyValues:GuidNotEquals
Beschreibung Wenn mindestens ein Wert auf der linken Seite mindestens einem Wert auf der rechten Seite entspricht, ergibt die Auswertung des Ausdrucks „true“. Format: ForAnyOfAnyValues:<BooleanFunction>. Unterstützt mehrere Zeichenfolgen und Zahlen.
Beispiele @Resource[Microsoft.Storage/storageAccounts/encryptionScopes:name] ForAnyOfAnyValues:StringEquals {'validScope1', 'validScope2'}
Wenn der Verschlüsselungsbereichsname validScope1 oder validScope2 entspricht, wird „true“ ausgegeben.

{'red', 'blue'} ForAnyOfAnyValues:StringEquals {'blue', 'green'}
true

{'red', 'blue'} ForAnyOfAnyValues:StringEquals {'orange', 'green'}
false

ForAllOfAnyValues

Eigenschaft Wert
Operatoren ForAllOfAnyValues:StringEquals
ForAllOfAnyValues:StringEqualsIgnoreCase
ForAllOfAnyValues:StringNotEquals
ForAllOfAnyValues:StringNotEqualsIgnoreCase
ForAllOfAnyValues:StringLike
ForAllOfAnyValues:StringLikeIgnoreCase
ForAllOfAnyValues:StringNotLike
ForAllOfAnyValues:StringNotLikeIgnoreCase
ForAllOfAnyValues:NumericEquals
ForAllOfAnyValues:NumericNotEquals
ForAllOfAnyValues:NumericGreaterThan
ForAllOfAnyValues:NumericGreaterThanEquals
ForAllOfAnyValues:NumericLessThan
ForAllOfAnyValues:NumericLessThanEquals
ForAllOfAnyValues:GuidEquals
ForAllOfAnyValues:GuidNotEquals
Beschreibung Wenn jeder Wert auf der linken Seite mindestens einem Wert auf der rechten Seite entspricht, ergibt die Auswertung des Ausdrucks „true“. Format: ForAllOfAnyValues:<BooleanFunction>. Unterstützt mehrere Zeichenfolgen und Zahlen.
Beispiele @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] ForAllOfAnyValues:StringEquals {'Cascade', 'Baker', 'Skagit'}

{'red', 'blue'} ForAllOfAnyValues:StringEquals {'orange', 'red', 'blue'}
true

{'red', 'blue'} ForAllOfAnyValues:StringEquals {'red', 'green'}
false

ForAnyOfAllValues

Eigenschaft Wert
Operatoren ForAnyOfAllValues:StringEquals
ForAnyOfAllValues:StringEqualsIgnoreCase
ForAnyOfAllValues:StringNotEquals
ForAnyOfAllValues:StringNotEqualsIgnoreCase
ForAnyOfAllValues:StringLike
ForAnyOfAllValues:StringLikeIgnoreCase
ForAnyOfAllValues:StringNotLike
ForAnyOfAllValues:StringNotLikeIgnoreCase
ForAnyOfAllValues:NumericEquals
ForAnyOfAllValues:NumericNotEquals
ForAnyOfAllValues:NumericGreaterThan
ForAnyOfAllValues:NumericGreaterThanEquals
ForAnyOfAllValues:NumericLessThan
ForAnyOfAllValues:NumericLessThanEquals
ForAnyOfAllValues:GuidEquals
ForAnyOfAllValues:GuidNotEquals
Beschreibung Wenn mindestens ein Wert auf der linken Seite jedem Wert auf der rechten Seite entspricht, ergibt die Auswertung des Ausdrucks „true“. Format: ForAnyOfAllValues:<BooleanFunction>. Unterstützt mehrere Zeichenfolgen und Zahlen.
Beispiele {10, 20} ForAnyOfAllValues:NumericLessThan {15, 18}
true

ForAllOfAllValues

Eigenschaft Wert
Operatoren ForAllOfAllValues:StringEquals
ForAllOfAllValues:StringEqualsIgnoreCase
ForAllOfAllValues:StringNotEquals
ForAllOfAllValues:StringNotEqualsIgnoreCase
ForAllOfAllValues:StringLike
ForAllOfAllValues:StringLikeIgnoreCase
ForAllOfAllValues:StringNotLike
ForAllOfAllValues:StringNotLikeIgnoreCase
ForAllOfAllValues:NumericEquals
ForAllOfAllValues:NumericNotEquals
ForAllOfAllValues:NumericGreaterThan
ForAllOfAllValues:NumericGreaterThanEquals
ForAllOfAllValues:NumericLessThan
ForAllOfAllValues:NumericLessThanEquals
ForAllOfAllValues:GuidEquals
ForAllOfAllValues:GuidNotEquals
Beschreibung Wenn jeder Wert auf der linken Seite jedem Wert auf der rechten Seite entspricht, ergibt die Auswertung des Ausdrucks „true“. Format: ForAllOfAllValues:<BooleanFunction>. Unterstützt mehrere Zeichenfolgen und Zahlen.
Beispiele {10, 20} ForAllOfAllValues:NumericLessThan {5, 15, 18}
false

{10, 20} ForAllOfAllValues:NumericLessThan {25, 30}
true

{10, 20} ForAllOfAllValues:NumericLessThan {15, 25, 30}
false

Sonderzeichen

Zeichen BESCHREIBUNG
* Ein Sternchen (*) steht für einen Platzhalter für eine mehrstellige Übereinstimmung und kann mit Like-Operatoren verwendet werden. Bei Bedarf können Sie ein Sternchen mit einem umgekehrten Schrägstrich als Escapezeichen (\*) versehen.
? Ein Fragezeichen (?) steht für einen Platzhalter für eine einstellige Übereinstimmung und kann mit Like-Operatoren verwendet werden. Bei Bedarf können Sie ein Fragezeichen mit einem umgekehrten Schrägstrich als Escapezeichen (\?) versehen.
$ Ein Dollarzeichen ($) dient zum Trennen von Tagschlüsseln. Wenn in Azure PowerShell eine Zeichenfolge in doppelten Anführungszeichen (") ein Dollarzeichen enthält, müssen Sie ihr ein Backtick-Zeichen (`) voranstellen. Beispiel: tags:Project<`$key_case_sensitive`$>.

Gruppierung und Rangfolge

Wenn drei oder mehr Ausdrücke für eine gewünschte Aktion mit unterschiedlichen Operatoren zwischen den Ausdrücken vorhanden sind, ist die Auswertungsreihenfolge nicht eindeutig. Sie verwenden Klammern (), um Ausdrücke zu gruppieren und die Reihenfolge anzugeben, in der die Ausdrücke ausgewertet werden. Ausdrücke in Klammern haben eine höhere Rangfolge. Angenommen, Sie verfügen über den folgenden Ausdruck:

a AND b OR c

Sie müssen wie folgt Klammern hinzufügen:

(a AND b) OR c
a AND (b OR c)

Nächste Schritte