NPS で正規表現を使用するUse Regular Expressions in NPS

適用対象: Windows Server 2019、Windows Server 2016、Windows Server (半期チャネル)Applies to: Windows Server 2019, Windows Server 2016, Windows Server (Semi-Annual Channel)

このトピックでは、Windows Server の NPS でのパターンマッチングに正規表現を使用する方法について説明します。This topic explains the use of regular expressions for pattern matching in NPS in Windows Server. この構文を使用し、ネットワーク ポリシー属性および RADIUS 領域の条件を指定できます。You can use this syntax to specify the conditions of network policy attributes and RADIUS realms.

パターン マッチングの参照情報Pattern-matching reference

次の表は、パターン マッチング構文を使用した正規表現を作成する際の参照情報として活用できます。You can use the following table as a reference source when creating regular expressions with pattern-matching syntax. 正規表現パターンは、多くの場合、スラッシュ (/) で囲まれていることに注意してください。Note that regular expression patterns are often surrounded by forward slashes (/).

文字Character 説明Description Example
\ 次に続く文字が特殊文字であるか、文字どおりに解釈される必要があることを示します。Indicates that the character that follows is a special character, or should be interpreted literally. /n/ matches the character "n" while the sequence /\n/ matches a line feed or newline character.
^ 入力または行の最初と一致します。Matches the beginning of the input or line.  
$ 入力または行の末尾と一致します。Matches the end of the input or line.  
* 直前の文字の 0 回または複数回の繰り返しと一致します。Matches the preceding character zero or more times. /zo*/ matches either "z" or "zoo."
+ 直前の文字の 1 回以上の繰り返しと一致します。Matches the preceding character one or more times. /zo+/ matches "zoo" but not "z."
? 直前の文字が 0 回または 1 回出現する文字と一致します。Matches the preceding character zero or one times. /a?ve?/ matches the "ve" in "never."
. 復帰改行文字以外の任意の 1 文字と一致します。Matches any single character except a newline character.  
(pattern) "Pattern" に一致し、一致を記憶します。Matches "pattern" and remembers the match.
リテラル文字と (かっこ) を一致させるに ( ) は、またはを使用し \( \) ます。To match the literal characters ( and ) (parentheses), use \( or \).
 
x | y X または y のいずれかに一致します。Matches either x or y.
{n} N 回の繰り返し ( に一致します n は負でない - 整数 ) です。Matches exactly n times (n is a non-negative integer). /o{2}/ does not match the "o" in "Bob," but matches the first two instances of the letter o in "foooood."
{n,} N 回以上の繰り返しに一致 ( します n は負以外の - 整数 ) です。Matches at least n times (n is a non-negative integer). /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} 少なくとも n に一致し、m ( と n の回数は - 負の整数では ) ありません。Matches at least n and at most m times (m and n are non-negative integers). /o{1,3}/ matches the first three instances of the letter o in "fooooood."
[xyz] 文字セットで囲まれた文字のいずれかと一致し ( ) ます。Matches any one of the enclosed characters (a character set). /[abc]/ matches the "a" in "plain."
[^xyz] 否定文字セットで囲まれていない任意の文字と一致 ( ) します。Matches any characters that are not enclosed (a negative character set). /[^abc]/ matches the "p" in "plain."
\b 単語 ( の境界 (スペースなど) と一致 ) します。Matches a word boundary (for example, a space). /ea*r\b/ matches the "er" in "never early."
\B 単語以外の境界と一致します。Matches a nonword boundary. /ea*r\B/ matches the "ear" in "never early."
\d (0 ~ 9 の数字に相当する数字の文字と一致し ) ます。Matches a digit character (equivalent to digits from 0 to 9).  
\D と等価の nondigit 文字を検索 ( [^0-9] ) します。Matches a nondigit character (equivalent to [^0-9]).  
\f フォーム フィード文字と一致します。Matches a form feed character.  
\n 改行文字と一致します。Matches a line feed character.  
\r 復帰文字と一致します。Matches a carriage return character.  
\s スペース、タブ、およびと同じフォームフィードを含む任意の空白文字と一致 ( [ \f\n\r\t\v] ) します。Matches any white space character including space, tab, and form feed (equivalent to [ \f\n\r\t\v]).  
\S に相当する空白以外の任意の文字と一致 ( [^ \f\n\r\t\v] ) します。Matches any non-white space character (equivalent to [^ \f\n\r\t\v]).  
\t タブ文字と一致します。Matches a tab character.  
\v 垂直タブ文字と一致します。Matches a vertical tab character.  
\w に相当するアンダースコアを含む任意の単語文字と一致 ( [A-Za-z0-9_] ) します。Matches any word character, including underscore (equivalent to [A-Za-z0-9_]).  
\W -に相当するアンダースコアを除く、単語以外の任意の文字と一致 ( [^A-Za-z0-9_] ) します。Matches any non-word character, excluding underscore (equivalent to [^A-Za-z0-9_]).  
\num 記憶された一致を参照し ( ?num ます。 num は正の整数 ) です。Refers to remembered matches (?num, where num is a positive integer). このオプションは、属性の操作を構成するときに [ 置換 ] テキストボックスでのみ使用できます。This option can be used only in the Replace text box when configuring attribute manipulation. \1 最初に記憶された一致項目に格納されている内容を置き換えます。\1 replaces what is stored in the first remembered match.
/n/ では、ASCII コードを正規表現に挿入でき ( ?n ます。ここで、n は8進数、16進数、または10進数のエスケープ値 ) です。Allows the insertion of ASCII codes into regular expressions (?n, where n is an octal, hexadecimal, or decimal escape value).  

ネットワーク ポリシー属性の例Examples for network policy attributes

次に、パターン マッチング構文を使用してネットワーク ポリシー属性を指定する方法の例を説明します。The following examples describe the use of the pattern-matching syntax to specify network policy attributes:

  • 市外局番が 899 の電話番号をすべて指定するには、次の構文を使用します。To specify all phone numbers within the 899 area code, the syntax is:

    899.*

  • 192.168.1 で始まる IP アドレスの範囲を指定するには、次の構文を使用します。To specify a range of IP addresses that begin with 192.168.1, the syntax is:

    192\.168\.1\..+

ユーザー名 属性で領域名を扱う例Examples for manipulation of the realm name in the User Name attribute

次の例では、パターンマッチング構文を使用して、ユーザー名属性の領域名を操作する方法について説明します。この属性は、接続要求ポリシーのプロパティの [ 属性 ] タブにあります。The following examples describe the use of the pattern-matching syntax to manipulate realm names for the User Name attribute, which is located on the Attribute tab in the properties of a connection request policy.

[ユーザー名] 属性の領域部分を削除するにはTo remove the realm portion of the User Name attribute

インターネットサービスプロバイダーの isp が組織の NPS に接続要求をルーティングするアウトソーシングのダイヤルアップシナリオでは、 ( ) isp RADIUS プロキシが認証要求をルーティングするために領域名を必要とする場合があります。In an outsourced dial-up scenario in which an Internet service provider (ISP) routes connection requests to an organization NPS, the ISP RADIUS proxy might require a realm name to route the authentication request. ただし、NPS がユーザー名の領域名の部分を認識しない場合があります。However, the NPS might not recognize the realm name portion of the user name. そのため、組織の NPS に転送する前に、ISP RADIUS プロキシによって領域名を削除する必要があります。Therefore, the realm name must be removed by the ISP RADIUS proxy before it is forwarded to the organization NPS.

  • 検索: @microsoft . comFind: @microsoft\.com

  • 置換前のコード:Replace:

を com\user に置き換えるには、 user@example.microsoft.com 次のように します。To replace user@example.microsoft.com with example.microsoft.com\user

  • 探す(.*)@(.*)Find:(.*)@(.*)

  • $2\$1Replace:$2\$1

Domain\userspecific_domain 場所: に置き換えるにはTo replace domain\user with specific_domain\user

  • 探す(.*)\\(.*)Find:(.*)\\(.*)

  • 置換: specific_domain\$2Replace: specific_domain\$2

ユーザー をに置き換えるには user@specific_domainTo replace user with user@specific_domain

  • 探す$Find:$

  • 置換: @specific_domainReplace: @specific_domain

プロキシ サーバーによる RADIUS メッセージの転送の例Example for RADIUS message forwarding by a proxy server

NPS を RADIUS プロキシとして使用している場合、一連の RADIUS サーバーに対して指定した領域名を使い、RADIUS メッセージを転送するルーティング規則を作成できます。You can create routing rules that forward RADIUS messages with a specified realm name to a set of RADIUS servers when NPS is used as a RADIUS proxy. 次に、領域名に基づいて要求をルーティングするために推奨される構文を挙げます。Following is a recommended syntax for routing requests based on realm name.

  • NetBIOS 名: WCOASTNetBIOS name: WCOAST
  • パターン: ^wcoast\\Pattern: ^wcoast\\

次の例では、wcoast.microsoft.com は、DNS または Active Directory ドメイン wcoast.microsoft.com の一意のユーザープリンシパル名 (UPN) サフィックスです。In the following example, wcoast.microsoft.com is a unique user principal name (UPN) suffix for the DNS or Active Directory domain wcoast.microsoft.com. NPS プロキシでは、指定されたパターンを使用して、ドメイン NetBIOS 名または UPN サフィックスに基づいてメッセージをルーティングできます。Using the supplied pattern, the NPS proxy can route messages based on domain NetBIOS name or UPN suffix.

  • NetBIOS 名: WCOASTNetBIOS name: WCOAST
  • UPN サフィックス: wcoast.microsoft.comUPN suffix: wcoast.microsoft.com
  • パターン: ^wcoast\\|@wcoast\.microsoft\.com$Pattern: ^wcoast\\|@wcoast\.microsoft\.com$

NPS の管理の詳細については、「 Manage Network Policy Server」を参照してください。For more information about managing NPS, see Manage Network Policy Server.

NPS の詳細については、「 ネットワークポリシーサーバー (nps)」を参照してください。For more information about NPS, see Network Policy Server (NPS).