RIDプールが無くなる日

Windows Server 2012が登場し、新しいことに色々チャレンジしなければならない日が続き、忙しくしています。
ブログも滞りがちになってますが、ネタが尽きたわけではありません。
(下書きフォルダには30個の投稿が埋まっているので順次処理していきます)
今後もお付き合いいただければ幸いです。

■ ■ ■

今日はActive Directoryドメインで管理されるRIDというIDについての話です。

Active Directoryオブジェクトを作成すると、オブジェクトごとにSIDと呼ばれるIDが割り当てられ、
オブジェクトのSIDは、ドメインのSID+RIDと呼ばれるIDから構成されていることは、
Active Directoryのトレーニングに参加された方や、各種リソースで学習された方であればご存知だと思います。

image

参考までに上の画面で説明すると、user1ユーザーに割り当てられるSIDのうち、

・S-1-5.21-xxxxxxxx の部分がドメインのSID
・最後の1138の部分がRID

となります。
RIDについて掘り下げると、最初に作成したユーザーのRIDを1000からスタートした場合、
次に作成したユーザーのRIDが1001、その次のユーザーのRIDが1002、、という具合に割り当てられます。
言い換えると、RIDは、ユーザーなどのオブジェクトを作成するごとに、ひとつ消費される使い捨てのIDなのです。

「RIDなんて気にしなくてもユーザーは作れるんだから、そんなことどうでも良いじゃない」と思うかもしれません。
では、「割り当てられるRIDに上限がある」と言ったらどうでしょうか?

Windows Server 2012の新機能紹介の中で、恥ずかしながら初めて知りました。
RIDは1073741823番まで使えるそうなのですが、自分のドメインであといくつのRIDが使えるのかについて
調べる方法が下記のブログの中で解説されていたので、紹介します。

■Managing RID Pool Depletion (英語)
http://blogs.technet.com/b/askds/archive/2011/09/12/managing-rid-pool-depletion.aspx

私のドメインコントローラーで実行した様子はこちら。
(RIDs remainingの値に注目)
image

これがWindows Server 2012のドメインコントローラーでは
上限に達すると自動的に1073741823から2147483647まで拡張してくれるそうです。
ちなみに、実際に試すのは相当な労力を要するので、まだ未確認です。

全部使い切るなんて、現実的じゃないかもしれないですが、
ドメインコントローラーのパフォーマンスをテストするために、
スクリプトでユーザーを大量に作って、削除して、、なんて繰り返していたら上限値に到達する日が来るかもしれないですね。

■参考情報
Managing RID Issuance in Windows Server 2012 (英語)
http://blogs.technet.com/b/askds/archive/2012/08/10/managing-rid-issuance-in-windows-server-2012.aspx
An update is available to detect and prevent too much consumption of the global RID pool on a domain controller that is running Windows Server 2008 R2 (英語)
http://support.microsoft.com/kb/2618669/en-us