تنسيق حالة تعيين دور Azure وبناء الجملة

الشرط هو فحص إضافي يمكنك إضافته اختياريا إلى تعيين الدور لتوفير مزيد من التحكم في الوصول الدقيق. مثلاً، يمكنك إضافة شرط يتطلب كائناً ذا علامة معينة لقراءة الكائن. تصف هذه المقالة تنسيق وبناء جملة شروط تعيين الدور.

تنسيق الشرط

لفهم شروط تعيين الدور بشكل أفضل، من المفيد إلقاء نظرة على التنسيق.

حالة بسيطة

يتكون الشرط الأساسي من إجراء مستهدف وتعبير. الإجراء هو عملية يمكن للمستخدم تنفيذها على نوع مورد. التعبير عبارة يتم تقييمها إلى صواب أو خطأ، والتي تحدد ما إذا كان يسمح بتنفيذ الإجراء أم لا.

يوضح التالي تنسيق شرط بسيط.

تنسيق شرط بسيط مع إجراء واحد وتعبير واحد.

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

الشرط التالي له إجراء من "قراءة كائن ثنائي كبير الحجم". يتحقق التعبير ما إذا كان اسم الحاوية blobs-example-container.

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

رسم تخطيطي يوضح الوصول للقراءة إلى الكائنات الثنائية كبيرة الحجم باسم حاوية معين.

كيفية تقييم الشرط

إذا حاول مستخدم تنفيذ إجراء في تعيين الدور غير <action>، !(ActionMatches) يتم تقييمه إلى صحيح ويتم تقييم الشرط الإجمالي إلى صحيح للسماح بتنفيذ الإجراء.

إذا حاول مستخدم إجراء <action> في تعيين الدور، !(ActionMatches) يتم تقييمه إلى خطأ، لذلك يتم تقييم التعبير. إذا تم تقييم التعبير إلى true، يتم تقييم الشرط الإجمالي إلى true للسماح <action> بتنفيذه. وإلا، <action> لا يسمح بإجراء.

توضح التعليمات البرمجية الزائفة التالية طريقة أخرى يمكنك من خلالها قراءة هذا الشرط.

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

العمليات الفرعية

تحتوي بعض الإجراءات على عمليات فرعية. على سبيل المثال، Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read يحتوي إجراء البيانات على التشغيل الفرعي "قائمة الكائنات الثنائية كبيرة الحجم". الشروط ذات التشغيلات الفرعية لها التنسيق التالي.

تنسيق إجراء باستخدام عملية فرعية.

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

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

إجراءات متعددة

يمكن أن يتضمن الشرط إجراءات متعددة تريد السماح بها إذا كان الشرط صحيحا. في حال إن قمت بتحديد إجراءات متعددة لشرط واحد، فقد يكون هناك عدد أقل من السمات المتعلقة بشرطك للاختيار من بينها، لأنه يجب أن تكون السمات متوفرة عبر الإجراءات المحددة.

تنسيق لإجراءات متعددة للسماح بما إذا كان الشرط صحيحا.

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

تعبيرات متعددة

يمكن أن يتضمن الشرط تعبيرات متعددة. اعتمادا على عامل التشغيل، يمكن التحقق من السمات مقابل قيم متعددة.

تنسيق تعبيرات متعددة باستخدام عوامل التشغيل المنطقية والقيم المتعددة.

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

شروط متعددة

يمكنك أيضا دمج الشروط لاستهداف إجراءات متعددة.

تنسيق شروط متعددة باستخدام عامل التشغيل المنطقي.

(
    (
        !(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>
    )
)

بناء جملة الشرط

يظهر التالي بناء الجملة لشرط تعيين دور.

(
    (
        !(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
...

الإجراءات

حاليا، يمكن إضافة الشروط إلى تعيينات الأدوار المضمنة أو المخصصة التي تحتوي على تخزين كائن ثنائي كبير الحجم أو إجراءات بيانات تخزين قائمة الانتظار. تتضمن هذه الأدوار المضمنة ما يلي:

للحصول على قائمة بإجراءات التخزين التي يمكنك استخدامها في الظروف، راجع:

السمات

اعتمادا على الإجراءات المحددة، قد يتم العثور على السمة في أماكن مختلفة. إذا قمت بتحديد إجراءات متعددة لشرط واحد، فقد يكون هناك عدد أقل من السمات للاختيار من بينها للشرط الخاص بك لأنه يجب أن تكون السمات متوفرة عبر جميع الإجراءات المحددة. لتحديد سمة، يجب تضمين المصدر كبادئة.

مصدر السمة ‏‏الوصف الرمز
البيئة السمة مقترنة ببيئة الطلب، مثل أصل الشبكة للطلب أو التاريخ والوقت الحاليين.
@Environment
الرئيسيه السمة هي سمة أمان مخصصة تم تعيينها إلى الأساسي، مثل مستخدم أو تطبيق مؤسسة (كيان الخدمة). @Principal
Request السمة هي جزء من طلب الإجراء، مثل تعيين علامة فهرس الكائن الثنائي كبير الحجم. @Request
المورد السمة هي خاصية للمورد، مثل اسم الحاوية. @Resource

للحصول على قائمة كاملة بسمات التخزين التي يمكنك استخدامها في الظروف، راجع:

سمات البيئة

ترتبط سمات البيئة بالظروف التي يتم بموجبها طلب الوصول، مثل تاريخ ووقت اليوم أو بيئة الشبكة. قد تكون بيئة الشبكة سواء كان الوصول عبر نقطة نهاية خاصة معينة أو شبكة فرعية لشبكة ظاهرية، أو ربما عبر أي ارتباط خاص.

يسرد الجدول التالي سمات البيئة المدعومة للشروط.

‏‫اسم العرض‬ ‏‏الوصف السمة نوع
ارتباط خاص1 استخدم هذه السمة في ظروف تتطلب الوصول عبر أي ارتباط خاص. isPrivateLink منطقيه
نقطةالنهاية الخاصة 1,2 استخدم هذه السمة في شروط لتقييد الوصول عبر نقطة نهاية خاصة معينة. Microsoft.Network/privateEndpoints السلسلة‬
الشبكةالفرعية 1,3 استخدم هذه السمة في شروط لتقييد الوصول من شبكة فرعية معينة. Microsoft.Network/virtualNetworks/subnets السلسلة‬
التوقيت العالمي المتفق عليه الآن استخدم هذه السمة في شروط لتقييد الوصول إلى الكائنات خلال فترات زمنية محددة. UtcNow الوقت/التاريخ

1 بالنسبة لعمليات النسخ، Is private linkPrivate endpointتنطبق السمات و و Subnet فقط على الوجهة، مثل حساب التخزين، وليس المصدر. لمزيد من المعلومات حول عمليات النسخ التي ينطبق عليها هذا، حدد كل سمة في الجدول للاطلاع على مزيد من التفاصيل.
2 يمكنك استخدام السمة Private endpoint فقط إذا كان لديك حاليا نقطة نهاية خاصة واحدة على الأقل تم تكوينها في اشتراكك.
3 يمكنك استخدام السمة Subnet فقط إذا كان لديك حاليا شبكة فرعية واحدة على الأقل للشبكة الظاهرية باستخدام نقاط نهاية الخدمة المكونة في اشتراكك.

السمات الأساسية

السمات الأساسية هي سمات أمان مخصصة تم تعيينها إلى أساس الأمان الذي يطلب الوصول إلى مورد. يمكن أن يكون أساس الأمان مستخدما أو تطبيق مؤسسة (كيان الخدمة).

لاستخدام السمات الأساسية، يجب أن يكون لديك ما يلي:

  • أذونات Microsoft Entra للمستخدم الذي سجل الدخول، مثل دور تعيين السمة مسؤول istrator
  • سمات الأمان المخصصة المعرفة في معرف Microsoft Entra

لمزيد من المعلومات حول سمات الأمان المخصصة، راجع:

سمات الطلب

ترتبط سمات الطلب بالمعايير المحددة في طلب الوصول، مثل البادئة المحددة للكائنات الثنائية كبيرة الحجم المراد سردها.

سمات المورد

ترتبط سمات الموارد بالعنصر الذي يتم طلب الوصول إليه، مثل اسم حساب التخزين أو اسم الحاوية أو ما إذا كانت مساحة الاسم الهرمية ممكنة لحساب التخزين.

عوامل تشغيل الوظائف

يسرد هذا القسم عوامل تشغيل الدالة المتوفرة لإنشاء الشروط.

تطابقات الإجراء

الخاصية القيمة
العامل ActionMatches
الوصف التحقق من تطابق الإجراء الحالي مع نمط الإجراء المحدد.
الأمثلة ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
إذا كان الإجراء الذي يتم فحصه يساوي "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"، فهذا صحيح

ActionMatches{'Microsoft.Authorization/roleAssignments/*'}
إذا كان الإجراء الذي يتم فحصه يساوي "Microsoft.Authorization/roleAssignments/write"، فهذا صحيح

ActionMatches{'Microsoft.Authorization/roleDefinitions/*'}
إذا كان الإجراء الذي يتم فحصه يساوي "Microsoft.Authorization/roleAssignments/write"، فعندئذ خطأ

تطابقات التشغيل الفرعي

الخاصية القيمة
العامل SubOperationMatches
الوصف التحقق من تطابق التشغيل الفرعي الحالي مع نمط التشغيل الفرعي المحدد.
الأمثلة SubOperationMatches{'Blob.List'}

موجود

الخاصية القيمة
العامل Exists
الوصف التحقق من وجود السمة المحددة.
الأمثلة Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:snapshot]
السمات تدعم1 اسم نطاق التشفير
لقطه
معرف الإصدار

1Exists يتم دعم عامل التشغيل لهذه السمات فقط في منشئ شرط ABAC المرئي في مدخل Microsoft Azure. يمكنك إضافة عامل التشغيل إلى أي سمة Exists باستخدام أدوات أخرى، مثل PowerShell وAzure CLI وواجهة برمجة تطبيقات REST ومحرر رمز الشرط في مدخل Microsoft Azure.

العوامل المنطقية

يسرد هذا القسم عوامل التشغيل المنطقية المتوفرة لإنشاء الشروط.

و

الخاصية القيمة
العوامل AND
&&
الوصف وعامل التشغيل.
الأمثلة !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

أو

الخاصية القيمة
العوامل OR
||
الوصف أو عامل التشغيل.
الأمثلة @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

الخاصية القيمة
العوامل NOT
!
الوصف ليس أو عامل تشغيل الرفض.
الأمثلة NOT Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId]

عوامل المقارنة المنطقية

يسرد هذا القسم عوامل المقارنة المنطقية المتوفرة لإنشاء الشروط.

الخاصية القيمة
العوامل BoolEquals
BoolNotEquals
الوصف مقارنة منطقية.
الأمثلة @Resource[Microsoft.Storage/storageAccounts:isHnsEnabled] BoolEquals true

عوامل تشغيل مقارنة السلسلة

يسرد هذا القسم عوامل مقارنة السلسلة المتوفرة لإنشاء الشروط.

StringEquals

الخاصية القيمة
العوامل StringEquals
StringEqualsIgnoreCase
الوصف مطابقة حساسة لحالة الأحرف (أو غير حساسة لحالة الأحرف). يجب أن تتطابق القيم تماما مع السلسلة.
الأمثلة @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEquals 'Cascade'

StringNotEquals

الخاصية القيمة
العوامل StringNotEquals
StringNotEqualsIgnoreCase
الوصف نفي StringEquals عامل التشغيل (أو StringEqualsIgnoreCase).

StringStartsWith

الخاصية القيمة
العوامل StringStartsWith
StringStartsWithIgnoreCase
الوصف مطابقة حساسة لحالة الأحرف (أو غير حساسة لحالة الأحرف). تبدأ القيم بالسلسلة.

StringNotStartsWith

الخاصية القيمة
العوامل StringNotStartsWith
StringNotStartsWithIgnoreCase
الوصف نفي StringStartsWith عامل التشغيل (أو StringStartsWithIgnoreCase).

StringLike

الخاصية القيمة
العوامل StringLike
StringLikeIgnoreCase
الوصف مطابقة حساسة لحالة الأحرف (أو غير حساسة لحالة الأحرف). يمكن أن تتضمن القيم حرف بدل مطابق متعدد الأحرف (*) أو حرف بدل مطابق لحرف واحد (?) في أي مكان في السلسلة. إذا لزم الأمر، يمكن تخطي هذه الأحرف عن طريق إضافة رد فعل مائل \* عكسي و \?.
الأمثلة @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'readonly/*'

Resource[name1] StringLike 'a*c?'
إذا كان المورد[name1] يساوي "abcd"، فهذا صحيح

Resource[name1] StringLike 'A*C?'
إذا كان Resource[name1] يساوي "abcd"، فعندئذ خطأ

Resource[name1] StringLike 'a*c'
إذا كان Resource[name1] يساوي "abcd"، فعندئذ خطأ

StringNotLike

الخاصية القيمة
العوامل StringNotLike
StringNotLikeIgnoreCase
الوصف نفي StringLike عامل التشغيل (أو StringLikeIgnoreCase).

عوامل المقارنة الرقمية

يسرد هذا القسم عوامل المقارنة الرقمية المتوفرة لإنشاء الشروط.

الخاصية القيمة
العوامل NumericEquals
NumericNotEquals
NumericGreaterThan
NumericGreaterThanEquals
NumericLessThan
NumericLessThanEquals
الوصف مطابقة الأرقام. يتم اعتماد الأعداد الصحيحة فقط.

عوامل مقارنة التاريخ والوقت

يسرد هذا القسم عوامل مقارنة التاريخ/الوقت المتوفرة لإنشاء الشروط.

الخاصية القيمة
العوامل DateTimeEquals
DateTimeNotEquals
DateTimeGreaterThan
DateTimeGreaterThanEquals
DateTimeLessThan
DateTimeLessThanEquals
الوصف تحقق من الدقة الكاملة بالتنسيق: yyyy-mm-ddThh:mm:ss.mmmmmmmZ. يستخدم لمعرف إصدار الكائن الثنائي كبير الحجم ولقطة الكائن الثنائي كبير الحجم و UTC الآن.
الأمثلة @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId] DateTimeEquals '2022-06-01T00:00:00.0Z'

عوامل المقارنة GUID

يسرد هذا القسم عوامل المقارنة للمعرف الفريد العمومي (GUID) المتوفرة لإنشاء الشروط.

الخاصية القيمة
العوامل GuidEquals
GuidNotEquals
الوصف مطابقة غير حساسة لحالة الأحرف مع التنسيق: 00000000-0000-0000-0000-000000000000. يستخدم لتعريف مورد، مثل المعرف الأساسي أو معرف تعريف الدور.
الأمثلة

عوامل المقارنة عبر المنتجات

يسرد هذا القسم عوامل المقارنة عبر المنتجات المتوفرة لإنشاء الشروط.

ForAnyOfAnyValues

الخاصية القيمة
العوامل 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
الوصف إذا كانت قيمة واحدة على الأقل على الجانب الأيسر تفي للمقارنة بقيمة واحدة على الأقل على الجانب الأيمن، فسيتم تقييم التعبير إلى صحيح. يحتوي على التنسيق: ForAnyOfAnyValues:<BooleanFunction>. يدعم سلاسل وأرقاما متعددة.
الأمثلة @Resource[Microsoft.Storage/storageAccounts/encryptionScopes:name] ForAnyOfAnyValues:StringEquals {'validScope1', 'validScope2'}
إذا كان اسم نطاق التشفير يساوي validScope1 أو validScope2، فعندئذ يكون صحيحا.

{'red', 'blue'} ForAnyOfAnyValues:StringEquals {'blue', 'green'}
صحيح

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

ForAllOfAnyValues

الخاصية القيمة
العوامل 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
الوصف إذا كانت كل قيمة على الجانب الأيسر تفي للمقارنة بقيمة واحدة على الأقل على الجانب الأيمن، فسيتم تقييم التعبير إلى صحيح. يحتوي على التنسيق: ForAllOfAnyValues:<BooleanFunction>. يدعم سلاسل وأرقاما متعددة.
الأمثلة @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] ForAllOfAnyValues:StringEquals {'Cascade', 'Baker', 'Skagit'}

{'red', 'blue'} ForAllOfAnyValues:StringEquals {'orange', 'red', 'blue'}
صحيح

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

ForAnyOfAllValues

الخاصية القيمة
العوامل 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
الوصف إذا كانت قيمة واحدة على الأقل على الجانب الأيسر تفي للمقارنة مع كل قيمة على الجانب الأيمن، فسيتم تقييم التعبير إلى صحيح. يحتوي على التنسيق: ForAnyOfAllValues:<BooleanFunction>. يدعم سلاسل وأرقاما متعددة.
الأمثلة {10, 20} ForAnyOfAllValues:NumericLessThan {15, 18}
صحيح

ForAllOfAllValues

الخاصية القيمة
العوامل 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
الوصف إذا كانت كل قيمة على الجانب الأيسر تفي للمقارنة مع كل قيمة على الجانب الأيمن، فسيتم تقييم التعبير إلى صحيح. يحتوي على التنسيق: ForAllOfAllValues:<BooleanFunction>. يدعم سلاسل وأرقاما متعددة.
الأمثلة {10, 20} ForAllOfAllValues:NumericLessThan {5, 15, 18}
true

{10, 20} ForAllOfAllValues:NumericLessThan {25, 30}
صحيح

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

الأحرف الخاصة

الحرف ‏‏الوصف
* تمثل العلامة النجمية (*) تطابق حرف بدل متعدد الأحرف يمكن استخدامه مع Like عوامل التشغيل. إذا لزم الأمر، يمكنك الهروب من علامة نجمية عن طريق إضافة مائلة عكسية \*.
? تمثل علامة الاستفهام (؟) تطابق حرف بدل من حرف واحد يمكن استخدامه مع Like عوامل التشغيل. إذا لزم الأمر، يمكنك الهروب من علامة استفهام عن طريق إضافة رد فعل مائل عكسي \?.
$ يتم استخدام علامة الدولار ($) للمساعدة في تحديد مفاتيح العلامات. في Azure PowerShell، إذا كانت سلسلة محاطة بعلامات اقتباس مزدوجة (") تتضمن علامة دولار، فيجب عليك بادئتها بعلامة خلفية ('). على سبيل المثال: tags:Project<`$key_case_sensitive`$>.

التجميع والأسبقية

إذا كان لديك ثلاثة تعبيرات أو أكثر لإجراء مستهدف مع عوامل تشغيل مختلفة بين التعبيرات، يكون ترتيب التقييم غامضا. يمكنك استخدام الأقواس () لتجميع التعبيرات وتحديد ترتيب تقييم التعبيرات. التعبيرات المضمنة بين أقواس لها أسبقية أعلى. على سبيل المثال، إذا كان لديك التعبير التالي:

a AND b OR c

يجب إضافة أقواس بإحدى الطرق التالية:

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

الخطوات التالية