Microsoft Identity Manager 2016 の関数リファレンス

BitOr
説明 BitOr 関数は、フラグの指定したビットを 1 に設定します。
関数シグネチャ Int BitOr(mask, flag)
入力
  • mask:フラグ に設定するビットを指定する 16 進数 の値
  • フラグ: 特定のビットを変更する 16 進数の値。
操作 この関数は、両方のパラメーターをバイナリ表現に変換し、それらを比較します。
  • マスクとフラグの対応するビットの一方または両方が 1 の場合、ビットを 1に設定します。
  • 対応するビットの両方が 0 の場合は、ビットを 0 に設定します。
  • 両方のパラメーターの対応するビットが 0 である場合を除き、すべてのケースで 1 を返します。
  • 結果として得られるビット パターンは、2 つのオペランドの "set" (1 または true) ビットです。
  • マスク に複数 のビットの値が 1 の場合は、複数のフラグ ビットを設定 できます
Output mask で指定された ビットが 1 に設定された フラグの新 しいバージョン。

BitAnd
説明 BitAnd 関数は、フラグの指定したビットを 0 に設定します。
関数シグネチャ Int BitOr(mask, flag)
入力
  • mask:フラグ で変更するビットを指定する 16 進数 の値
  • フラグ: 特定のビットを変更する 16 進数の値。
操作 この関数は、両方のパラメーターをバイナリ表現に変換し、それらを比較します。
  • マスクとフラグの対応するビットの一方または両方が 0 の場合、ビットを 0に設定します。
  • 対応するビットが両方とも 1 の場合は、ビットを 1 に設定します。
  • 両方のパラメーターの対応するビットが 1 である場合を除き、すべてのケースで 0 を返します。
  • マスク に複数 のビットの値が 0 の場合は、複数のフラグ ビットを 0 に設定 できます
Output 新しいバージョンのフラグマスクで指定されているビットの設定値は 0。

DateTimeFormat
説明 DateTimeFormat 関数は、文字列形式内の日時を、指定した形式に書式設定します。
関数シグネチャ String DateTimeFormat(dateTime, format)
入力
  • dateTime:書式設定する DateTime を表す文字列。
  • format:変換する形式を表す文字列。

: ユーザー定義形式の作成に使用できる文字については、「ユーザー定義の日付/時刻形式」 を参照してください
操作 形式で指定された 書式指定文字列、dateTime 文字列の DateTime に適用されます。 形式で指定する 文字列は、 有効な DateTime 形式である必要があります。 そうでない場合、日時形式が有効な形式ではないことを示すエラーが返されます。 たとえば、 の DateTime("12/25/2007", "yyyy-MM-dd") 結果は になります "2007-12-25"
Output dateTime に書式を適用した結果の文字列

ConvertSidToString
説明 ConvertSidToString は、セキュリティ識別子が含まれるバイト配列を文字列に変換します。
関数シグネチャ String ConvertSidToString(ObjectSID)
入力 ObjectSID:セキュリティ識別子 (SID) を含むバイト配列。
操作 指定したバイナリ SID が、文字列に変換されます。
Output SID の文字列表現。

ConvertStringToGuid
説明 ConvertStringToGuid 関数は、GUID の文字列表現を GUID のバイナリ表現に変換します。
関数シグネチャ Byte[] ConvertStringToGuid(stringGuid)
入力 stringGuid:パターン で書式設定された文字列。GUID の値は 、8、4、4、4、12 桁のグループの一連の 16 進数として表され、ハイフンで区切ります。 戻り値の例として、 があります 382c74c3-721d-4f34-80e557657b6cbc27
操作 stringGuid はバイナリ表現に変換されます。 文字列が有効な GUID の表現でない場合、関数は"ConvertStringToGuid 関数のパラメーターは、有効な Guid を表す文字列である必要があります" というエラーで引数を拒否します。
Output GUID のバイナリ表現。

ReplaceString
説明 ReplaceString 関数は、文字列のすべての出現箇所を別の文字列に置換します。
関数シグネチャ String ReplaceString(string, OldValue, NewValue)
入力
  • string:値を置き換える文字列。
  • OldValue:と を検索して置換する文字列。
  • NewValue:置き換える文字列。
操作 文字列内のすべてのOldValue が NewValueに置き換えられる 関数は、特殊文字を処理できる必要\n改行、\r.キャリッジ リターン、\t.タブなどです。たとえば、 は を返します
Output string の文字列にある OldValue の値がすべて、NewValue の値に置き換わった文字列。

データ取得関数

データ取得関数は、文字列から目的の文字を取得する操作を行う際に使用します。

Word
説明 Word 関数は、使用する区切り記号と返す単語の番号を表すパラメーターに基づいて、文字列内に含まれる単語を返します。
関数シグネチャ String Word(string, number, delimiters)
入力
  • string:単語を返す文字列。
  • number:返す単語番号を識別する数値。
  • delimiters: 単語を識別するために使用する必要がある区切り記号を表す文字列。
操作 区切り記号内の文字の 1 つで区切られた文字列内の各文字列は、単語として識別されます。 string null の場合、関数は空の文字列を返します。 number で指定された位置で見つかった 単語が 返されます。 数値1 の場合、関数は空の文字列を返します。 次に例を示します。
  • Word("Test;of%function;", 3, ";$&%")"function" を返します。
  • Word("Test;;Function" , 2 , ";") は ( "" 空の文字列) を返します。
  • Word("Test;of%function;", 0, ";$&%") は ( "" 空の文字列) を返します。
Output ユーザーが求める位置にある単語の文字列。 文字列含まれる単語の数が少ない場合、または文字列に区切り記号で識別される単語が含まれている場合は、空の文字列が返されます。

Left
説明 Left 関数は、文字列の左 (先頭) から指定された文字数を返します。
関数シグネチャ String Left(string, numChars)
入力
  • string:文字を返す文字列。
  • numChars:文字列の先頭から返される文字数を示す数値。
操作 numChars 文字は、文字列 の最初の位置から返 されます。 たとえば、 は Left("Britta Simon", 3) を返します "Bri"
Output 文字列 内の最初の numChars 文字を 含む 文字列numChars = 0 の場合、関数は空の文字列を返します。 numChars 0 の場合、関数は入力文字列を返します。 string null の場合、関数は空の文字列を返します。

Right
説明 Right 関数は文字列の右端から数えて指定した文字数分の文字を返します。
関数シグネチャ String Right(string, numChars)
入力
  • string:文字を返す文字列。
  • numChars:文字列の末尾から返される文字数を示す数値。
操作 文字列 の末尾から numChars 文字を返 します。 たとえば、 は Right("Britta Simon", 3) を返します "mon"
Output 文字列 内の最後の numChars 文字を 含む 文字列numChars = 0 の場合、関数は空の文字列を返します。 numChars 0 の場合、関数は入力文字列を返します。 string null の場合、関数は空の文字列を返します。 文字列 numCharsで指定された数より少ない文字数が含まれている場合は 、文字列 が返されます。

Mid
説明 Mid 関数は文字列の指定した位置から数えて、指定した文字数分の文字を返します。
関数シグネチャ String Mid(string, pos, numChars)
入力
  • string:文字を返す文字列。
  • pos:文字列内の文字を返す開始位置を示す数値。
  • numChars:文字列内の位置から返す文字数を示す数値。
操作 文字列 内の位置 pos から始まる numChars 文字 を返 します。 たとえば、 は Mid("Britta Simon", 3, 5) を返します "itta "
Output 文字列 内の位置 pos の numChars文字を含む文字列numChars = 0 の場合、関数は空の文字列を返します。 numChars 0 の場合、関数は空の文字列を返します。 文字列 長さを指定した場合、関数は入力文字列を返します。 pos = 0 の場合、関数は入力文字列を返します。 string null の場合、関数は空の文字列を返します。 位置 pos の文字列に numChar文字が残ってない場合は、可能な限り多くの文字が返されます。

データ生成関数

データ生成機能は、特定のデータ型の値を生成する際に使用します。

CRLF
説明 CRLF 関数は、復帰/改行を生成します。 この関数を使用して、新しい行を追加します。
関数シグネチャ String CRLF
入力 [なし] :
操作 復帰/改行が返されます。 次に例を示します。
AddressLine1 + CRLF() + AddressLine2
の結果 AddressLine1
AddressLine2.
Output 出力は復帰/改行です。

RandomNum
説明 RandomNum 関数は、指定した範囲内のランダムな数値を返します。
関数シグネチャ Int RandomNum(start, end)
入力
  • start:生成するランダムな値の下限を示す数値。
  • end:生成するランダムな値の上限を示す数値。
操作 start の値以上、end の値以下のランダムな数値が生成されます。 たとえば、 は Random(0,999) を返す場合があります 100
Output startend で指定された範囲内のランダムな数値。

EscapeDNComponent
説明 MIISUtils の EscapeDNComponent メソッドは、この操作の実行に使用されます。 このメソッドは、使用されている管理エージェント (MA) の種類に基づいて入力文字列を処理します。
関数シグネチャ String EscapeDNComponent(string)
入力 string:識別名の処理に使用される文字列。 文字列では、エスケープ文字を含めることはできません。
操作 異なる MA には、異なる識別名形式が必要です。 このメソッドは、次の MA 型に 基づいて入力文字列を処理します。
  • LDAP 識別名: この MA の種類の例には、Active Directory Domain Services、Sun Directory Server (旧 iPlanet Directory Server)、および Microsoft Exchange Server。
    • 特定の部分の値部分の無効な XML 文字は、16 進数でエンコードされます。
    • 特定の部分の名前部分に無効な文字 (無効な XML 文字を含む) が含まれていると、エラーが発生します。
    • エスケープ文字には、コンマ (,)、等号 (=)、プラス (+)、()、より小さい文字、より大きい ()、数値 (#)、セミコロン (;))、円記号 ()、二重引用符 < (") が含まれます。 >
    • 文字列の最後の文字 がスペース ( ) の場合、そのスペースはエスケープされます。
    • パーツ名の周囲の余分な先頭または末尾のスペースは削除されます。
    • XML MA の場合、複数の部分がある場合、パーツはアルファベット順に表示されます。
    • 複数の部分が指定されている場合、複合識別名の文字列は、正符号 (+) で区切られた個々の文字列を連結したものになります。
    • 入力 文字列 が正しい形式の LDAP スタイルの識別名文字列ではない場合、エラーが生成されます。
  • 階層非 LDAP: この種類の MA の例として、Microsoft Lotus notes があります。
    • この MA の種類では、マルチパートコンポーネントはサポートされていません。
    • 複数の文字列がに渡されると EscapeDNComponentEscapeDNComponent がスローされます。
    • 入力 文字列 内のいずれかの文字が無効な XML 文字の場合は、 ArgumentException がスローされます。
    • 入力 文字列 内のコンマ (,) と円記号 (/) はすべてエスケープされます。
    • 文字列の最後の文字がスペース () の場合、そのスペースはエスケープされます。
  • 外部: この MA 型の例には、LDAP 識別名のないデータベースまたは XML が含まれます。
    • いずれかの部分がバイナリであるか、または無効な XML 文字が含まれている場合、その部分は16進エンコードバージョンの生データとして格納され、文字列の先頭に番号 (#) 文字が付加されます。 たとえば、パーツがの場合 (x はなどの AxC 無効な XML 文字を表し 0x10 ます)、その部分はとしてエンコードされ #410010004300 ます。 それ以外の場合、これらの文字のすべてのインスタンスは、円記号 ()、コンマ (,)、正符号 (+)、および数値 (#) にエスケープされます。
    • 特定の部分文字列の最後の文字がスペース () の場合、そのスペースはエスケープされます。
    • 複数の部分が指定されている場合、複合識別名の文字列は、プラス記号で区切られた個々の文字列の連結です。
Output 有効なドメイン名を表す文字列。

Note

識別名の検証は、LDAP の仕様で定義されている構文よりも制限が緩くなっています。 EscapeDNComponent(String[]) パート名に1つ以上の文字 ' a'-' z '、' A'-' z '、' 0 '-' 9 '、'-'、および '. ' の任意の組み合わせを含めることができます。

このメソッドでバイナリ部分を指定することはできません。 ただし、識別名がアンカー属性から構築されていて、さらにいずれかのアンカー属性がバイナリ型の場合、CommitNewConnector にバイナリ部を含めることができます。


[Null]
説明 Null 関数を使用して、MA に寄与する属性がないことと、その属性の優先順位を次の MA で続行することを指定します。
関数シグネチャ String Null
入力 [なし] :
操作 Null が返されます。 たとえば、は IIF(Eq(domain), "unknown", Null()) を返し Null ます。
Output Null が出力されます。

ロジック関数

ロジック関数は、システムによって評価された条件に基づく操作の実行に使用します。

IIF
説明 IIF 関数は、指定した条件に基づいて、使用できる一連の値のうち、いずれかを返します。
関数シグネチャ Object IIF(condition, valueIfTrue, valueIfFalse)
入力
  • condition: true または false に評価できる任意の値または式。 次の関数は、その条件の IIF 関数で式として使用でき ます。
    • Eq: この関数は、2つの引数が等しいかどうかを比較します。
    • 注 Quals: この関数は、2つの引数が等しくないかどうかを比較し、等しくない場合は true を返し、等しい場合は false を返します。 (例: NotEquals(EmployeeType, "Contractor"))。
    • 次の値より小さい: この関数は2つの数値を比較し、最初の数値が2番目の値より小さい場合は true、それ以外の場合は false を返します。 (例: LessThan(Salary, 100000))。
    • GreaterThan: この関数は2つの数値を比較し、最初の値が2番目の値より大きい場合は true を、それ以外の場合は false を返します。 (例: GreaterThan(Salary, 100000))。
    • 不等号: この関数は2つの数値を比較し、最初の数値が2番目の値以下の場合は true を、それ以外の場合は false を返します。 (例: LessThanOrEquals(Salary, 100000))。
    • GreaterThanOrEquals: この関数は2つの数値を比較し、最初の数値が2番目の値以上の場合は true を返し、それ以外の場合は false を返します。 (例: GreaterThanOrEquals(Salary, 100000))。
    • IsPresent: この関数は、ILM スキーマの属性を入力として受け取り、属性が null でない場合は true を、属性が null の場合は false を返します。
  • Valueiftrue: 条件 が true と評価された場合に返される値。
  • valueIfFalse: 条件 が false と評価された場合に返される値。
操作 条件が true と評価された場合、関数はValueiftrueを返します。 それ以外の場合、関数は valueIfFalseを返します。 例: IIF(Eq(EmployeeType,"Intern"),"t-" + Alias, Alias) ユーザーがインターンである場合、エイリアスの先頭に "t-" を追加したユーザーのエイリアスを返します。 それ以外の場合、関数はユーザーのエイリアスをその値として返します。
Output 条件が true の場合、出力は Valueiftrue 、条件が false の場合は valueIfFalse になります。

Microsoft Identity Manager (MIM) 2016 では、関数を使用して、関数アクティビティや宣言プロビジョニング内のターゲットにフローする前に、属性値を変更することができます。 このドキュメントは、使用可能な関数と、その使用方法を説明することを目的としています。

同期規則を構成する際の基本タスクに、属性フロー マッピングの構成があります。 属性フロー マッピングの最も単純な形式は、直接マッピングです。 名前が示すとおり、直接マッピングでは、ソース属性の値を取得し、構成したフロー先の属性にその値を適用します。 システムによって属性値がフロー先に適用される前に、既存の属性値を変更する必要がある場合と、新しい属性値を計算する必要がある場合のがあります。

関数は組み込みメソッドで、フロー先の属性値の生成時に、同期エンジンによって適用する必要がある変更の種類を定義するために使用します。

MIM の関数は、次のカテゴリに配布されます。

  • データ操作: 文字列に対してさまざまな操作操作を実行します。

  • データの取得: 属性値からデータを抽出します。

  • データ生成: 値を生成します。

  • ロジック: 条件に基づいて操作を実行します。

次のセクションでは、各カテゴリの関数について詳しく説明していきます。

データ操作関数

データ操作関数は、さまざまな操作を文字列に実行する際に使用します。

Concatenate
説明 連結関数は、2つ以上の文字列を連結します。
関数シグネチャ string1 + string2...
入力 2つ以上の文字列。
操作 入力文字列パラメーターがすべて、相互に連結されます。
Output 1つの文字列。

UpperCase
説明 UpperCase 関数は、文字列内のすべての文字を大文字に変換します。
関数シグネチャ String UpperCase(string)
入力 1つの文字列。
操作 入力パラメーターの小文字の文字がすべて大文字に変換されます。 たとえば、の UpperCase("test") 結果はに "TEST" なります。
Output 1つの文字列。

LowerCase
説明 LowerCase 関数は、文字列内のすべての文字を小文字に変換します。
関数シグネチャ String LowerCase(string)
入力 1つの文字列。
操作 入力パラメーターの大文字の文字がすべて小文字に変換されます。 たとえば、の LowerCase("TeSt") 結果はに "test" なります。
Output 1つの文字列。

ProperCase
説明 不適切な Case 関数は、文字列内のスペースで区切られた各単語の最初の文字を大文字に変換します。 その他のすべての文字は小文字に変換されます。
関数シグネチャ String ProperCase(string)
入力 1つの文字列。
操作 入力パラメーター内のスペースで区切られたすべての単語の最初の文字が大文字に変換されます。 大文字と小文字はすべて小文字に変換されます。 入力パラメーターの単語がアルファベット以外の文字で始まる場合、その単語の最初の文字は大文字に変換されません。 次に例を示します。
  • ProperCase("TEsT") 結果はに "Test" なります。
  • ProperCase("britta simon") 結果はに "Britta Simon" なります。
  • ProperCase(" TEsT") 結果はに " Test" なります。
  • ProperCase("\$TEsT") 結果はに "\$Test" なります。
Output 1つの文字列。

LTrim
説明 LTrim 関数は、文字列から先頭の空白文字を削除します。
関数シグネチャ String LTrim(string)
入力 1つの文字列。
操作 入力パラメーターに含まれる先頭の空白文字は削除されます。 たとえば、の LTrim(" Test ") 結果はに "Test " なります。
Output 1つの文字列。

RTrim
説明 RTrim 関数は、文字列から末尾の空白を削除します。
関数シグネチャ String RTrim(string)
入力 1つの文字列。
操作 入力パラメーターに含まれる末尾の空白文字は削除されます。 たとえば、の RTrim(" Test ") 結果はに " Test" なります。
Output 1つの文字列。

Trim
説明 Trim 関数は、文字列から先頭と末尾の空白を削除します。
関数シグネチャ String Trim(string)
入力 1つの文字列。
操作 文字列に含まれる先頭および末尾の空白文字は削除されます。 たとえば、の Trim(" Test ") 結果はに "Test" なります。
Output 1つの文字列。

RightPad
説明 RightPad 関数は、文字列が指定された長さになるまで、指定された埋め込み文字で右側を埋め込みます。
関数シグネチャ String RightPad(string, length, padCharacter)
入力
  • string: 埋め込む文字列。
  • length: 文字列の目的の長さを表す整数。
  • padcharacter: 埋め込み文字として使用される単一の文字で構成される文字列。
操作 文字列の長さがlength未満の場合、文字列の長さがLengthと同じになるまで、 padcharacter文字列の末尾に繰り返し追加されます。 次に例を示します。
  • RightPad("User", 10, "0") 結果はに "User000000" なります。
  • RightPad(RandomNum(1,10), 5, "0") が発生する可能性があり "9000" ます。
Output Stringの長さがlength以上の場合は、string と同じ文字列が返されます。 文字列の長さがlength未満の場合は、目的の長さの新しい文字列が返されます。 新しい文字列には、 Padcharacterが埋め込まれた文字列が含まれています。 Stringが null の場合、関数は空の文字列を返します。

: padcharacter には空白文字を使用できますが、null 値は指定できません。 文字列の長さがlength以上の場合は、文字列がそのまま返されます。

LeftPad
説明 LeftPad 関数は、文字列が指定された長さになるまで、指定された埋め込み文字で左側を埋め込みます。
関数シグネチャ String LeftPad(string, length, padCharacter)
入力
  • string: 埋め込む文字列。
  • length: 文字列の目的の長さを表す整数。
  • padcharacter: 埋め込み文字として使用される単一の文字で構成される文字列。
操作 文字列の長さがlength未満の場合、文字列の長さがLengthと同じになるまで、 padcharacter文字列の先頭に繰り返し追加されます。 次に例を示します。
  • RightPad("User", 10, "0") 結果はに "000000User" なります。
  • RightPad(RandomNum(1,10), 5, "0") が発生する可能性があり "0009" ます。
Output Stringの長さがlength以上の場合は、string と同じ文字列が返されます。 文字列の長さがlength未満の場合は、目的の長さの新しい文字列が返されます。 新しい文字列には、 Padcharacterが埋め込まれた文字列が含まれています。 Stringが null の場合、関数は空の文字列を返します。

: padcharacter には空白文字を使用できますが、null 値は指定できません。 文字列の長さがlength以上の場合は、文字列がそのまま返されます。