Verwenden regulärer Ausdrücke in NPS
In diesem Thema wird die Verwendung regulärer Ausdrücke für den Musterabgleich im NPS unter Windows Server erläutert. Mit dieser Syntax können Sie die Bedingungen von Netzwerkrichtlinienattributen und RADIUS-Bereichen angeben.
Hinweis
Bei der NPS-Konsole und dem NPS-MMC-Snap-In gilt für alle Einstellungen mit einem Zeichenfolgenwert ein Limit von 256 Zeichen. Dies beinhaltet alle Einstellungen, die mit regulären Ausdrücken konfiguriert werden können. Verwenden Sie zum Konfigurieren von Zeichenfolgenwerten mit mehr als 256 Zeichen die Netsh-NPS-Befehle. Konfigurierte Zeichenfolgenwerte mit mehr als 256 Zeichen können in der NPS-Konsole und im NPS-MMC-Snap-In nicht bearbeitet werden, ohne sie dadurch ungültig zu machen.
Referenz zum Musterabgleich
Sie können die folgende Tabelle als Referenzquelle beim Erstellen von regulären Ausdrücken mit Mustervergleichssyntax verwenden. Beachten Sie, dass Muster für reguläre Ausdrücke häufig von Schrägstrichen (/) umgeben sind.
Zeichen | BESCHREIBUNG | Beispiel |
---|---|---|
\ |
Gibt an, dass das folgende Zeichen ein Sonderzeichen ist oder direkt interpretiert werden sollte. | /n/ matches the character "n" while the sequence /\n/ matches a line feed or newline character. |
^ |
Stimmt mit dem Anfang der Eingabe oder Zeile überein. | |
$ |
Stimmt mit dem Ende der Eingabe oder Zeile überein. | |
* |
Stimmt mit dem vorangegangenen Zeichen nullmal oder mehrmals überein. | /zo*/ matches either "z" or "zoo." |
+ |
Stimmt mit dem vorangegangenen Zeichen einmal oder mehrmals überein. | /zo+/ matches "zoo" but not "z." |
? |
Stimmt mit dem vorangegangenen Zeichen null- oder einmal überein. | /a?ve?/ matches the "ve" in "never." |
. |
Stimmt mit jedem einzelnen Zeichen mit Ausnahme eines Zeilenumbruchzeichens überein. | |
(pattern) |
Stimmt mit „pattern“ überein und merkt sich die Übereinstimmung. Verwenden Sie \( oder \) zur Übereinstimmung mit den Literalzeichen ( und ) (Klammern). |
|
x | y |
Stimmt mit x oder y überein. | |
{n} |
Stimmt genau n-mal überein (n ist eine nicht negative ganze Zahl). | /o{2}/ does not match the "o" in "Bob," but matches the first two instances of the letter o in "foooood." |
{n,} |
Stimmt mindestens n-mal überein (n ist eine nicht negative ganze Zahl). | /o{2,}/ does not match the "o" in "Bob" but matches all of the instances of the letter o in "foooood." /o{1,}/ is equivalent to /o+/. |
{n,m} |
Stimmt mindestens n- und höchstens m-mal überein (m und n sind nicht negative ganze Zahlen). | /o{1,3}/ matches the first three instances of the letter o in "fooooood." |
[xyz] |
Stimmt mit jedem der eingeschlossenen Zeichen überein (Zeichensatz). | /[abc]/ matches the "a" in "plain." |
[^xyz] |
Stimmt mit jedem Zeichen überein, das nicht eingeschlossenen ist (negativer Zeichensatz). | /[^abc]/ matches the "p" in "plain." |
\b |
Stimmt mit einer Wortgrenze (z. B. einem Leerzeichen) überein. | /ea*r\b/ matches the "er" in "never early." |
\B |
Stimmt mit einer Nicht-Wortgrenze überein. | /ea*r\B/ matches the "ear" in "never early." |
\d |
Stimmt mit einem Ziffernzeichen überein (gleichbedeutend mit den Ziffern von 0 bis 9). | |
\D |
Stimmt mit einem Ziffernzeichen überein (gleichbedeutend mit [^0-9] ). |
|
\f |
Stimmt mit einem Seitenvorschubzeichen überein. | |
\n |
Stimmt mit einem Zeilenvorschubzeichen überein. | |
\r |
Stimmt mit einem Wagenrücklaufzeichen überein. | |
\s |
Stimmt mit jedem Leerzeichen überein, einschließlich Leerzeichen, Tabulator und Seitenvorschub (gleichbedeutend mit [ \f\n\r\t\v] ). |
|
\S |
Stimmt mit einem Nicht-Leerzeichen überein (gleichbedeutend mit [^ \f\n\r\t\v] ). |
|
\t |
Stimmt mit einem Tabstoppzeichen überein. | |
\v |
Stimmt mit einem vertikalen Tabstoppzeichen überein. | |
\w |
Stimmt mit jedem Wortzeichen überein, einschließlich Unterstrich (gleichbedeutend mit [A-Za-z0-9_] ). |
|
\W |
Stimmt mit jedem Nicht-Wortzeichen mit Ausnahme des Unterstriches überein (gleichbedeutend mit [^A-Za-z0-9_] ). |
|
\num |
Verweist auf gespeicherte Übereinstimmungen (?num , wobei „num“ eine positive ganze Zahl ist). Diese Option kann beim Konfigurieren der Attributbearbeitung ausschließlich im Textfeld Ersetzen verwendet werden. |
\1 ersetzt die in der ersten gespeicherten Übereinstimmung gespeicherte Eingabe. |
/n/ |
Ermöglicht das Einfügen von ASCII-Codes in reguläre Ausdrücke (?n ; wobei n ein Escapewert in oktaler, hexadezimaler oder dezimaler Schreibweise ist). |
Beispiele für Netzwerkrichtlinienattribute
Im folgenden Beispiel wird die Verwendung regulärer Ausdrücke für den Musterabgleich bei der Angabe von Netzwerkrichtlinienattributen beschrieben:
Für die Angabe aller Telefonnummern innerhalb der Ortskennzahl 899 lautet die Syntax:
899.*
Für die Angabe eines Bereichs von IP-Adressen, der mit 192.168.1 beginnt, lautet die Syntax:
192\.168\.1\..+
Beispiele für die Bearbeitung des Bereichsnamens im Attribut „Benutzername“
Hinweis
Die Bereichsbearbeitung funktioniert nicht mit PEAP.
Das gewünschte Verhalten kann durch Wechseln zu EAP-TLS oder EAP-MSCHAPv2 für die Authentifizierung oder durch Hinzufügen eines UPN-Suffix zur Domäne für jeden zusätzlichen Domänennamen, den Sie auflösen müssen, erreicht werden.
In den folgenden Beispielen wird beschrieben, wie Sie mit der Musterabgleichssyntax Bereichsnamen für das Attribut „Benutzername“. Dieses Attribut befindet sich auf der Registerkarte Attribut in den Eigenschaften einer Verbindungsanforderungsrichtlinie.
So entfernen Sie den Bereichsteil des Attributs „Benutzername“
In einem ausgelagerten DFÜ-Szenario, in dem ein Internetdienstanbieter (ISP) Verbindungsanforderungen an einen Organisations-NPS weitergibt, erfordert der RADIUS-Proxy des ISP möglicherweise zur Weiterleitung der Authentifizierungsanforderung einen Bereichsnamen. Der NPS erkennt jedoch möglicherweise nicht den Bereichsnamensteil des Benutzernamens. Daher muss der Bereichsname vom RADIUS-Proxy des ISP entfernt werden, bevor er an den NPS der Organisation weitergeleitet wird.
Suchen: @microsoft\.com
Ersetzen Sie:
So ersetzen Sie user@example.microsoft.com durch example.microsoft.com\user
Suchen:
(.*)@(.*)
Ersetzen:
$2\$1
So ersetzen Sie domain\user durch specific_domain\user
Suchen:
(.*)\\(.*)
Ersetzen: specific_domain
\$2
So ersetzen Sie user durch user@specific_domain
Suchen:
$
Ersetzen: @specific_domain
Beispiel für die RADIUS-Nachrichtenweiterleitung durch einen Proxyserver
Sie können Routingregeln erstellen, die RADIUS-Nachrichten mit einem angegebenen Bereichsnamen an eine Gruppe von RADIUS-Servern weiterleiten, wenn der NPS als RADIUS-Proxy verwendet wird. Im Folgenden finden Sie die empfohlene Syntax zum Weiterleiten von Anforderungen basierend auf dem Bereichsnamen.
- NetBIOS-Name:
WCOAST
- Muster:
^wcoast\\
Im folgenden Beispiel ist wcoast.microsoft.com ein eindeutiges UPN-Suffix (User Principal Name) für die DNS- oder Active Directory-Domäne wcoast.microsoft.com. Mithilfe des angegebenen Musters kann der NPS-Proxy Nachrichten anhand des NetBIOS-Domänennamens oder des UPN-Suffix weiterleiten.
- NetBIOS-Name:
WCOAST
- UPN-Suffix:
wcoast.microsoft.com
- Muster:
^wcoast\\|@wcoast\.microsoft\.com$
Weitere Informationen zum Verwalten des Netzwerkrichtlinienservers finden Sie unter Verwalten des Netzwerkrichtlinienservers.
Weitere Informationen zum Netzwerkrichtlinienserver finden Sie unter Netzwerkrichtlinienserver (Network Policy Server, NPS).