Quantcast
Channel: わんくま同盟
Viewing all articles
Browse latest Browse all 994

ユーザがロックアウトしてるかどうかの判断

$
0
0

ユーザのアカウントには lockoutTime 属性があるので、この値を見ればロックアウトしてるかどうか判るんじゃないかという気がします。

結論から言えば lockoutTime 属性の値からはロックアウトしてるかどうか判断できません。

 

lockoutTime 属性の値の確認のとこを見ていただくと判りますが、lockoutTime 属性の値からは

1. 値がない => ロックアウトしたことがない => ロックアウトしてないことは判る

2. 値が 0 => 明示的にロックを解除したか、ロックアウト時間が過ぎた後ログオンした => ロックアウトしてないことは判る

3. 上記以外 => ロックアウトした時刻が判る(だけ)

 

1. と 2. からは ロックアウトしてないことは判るんですが、3. からは ロックアウトした時刻が判るだけで今もロックアウトしてるかどうかは判らないんです。

ロックアウト時間が過ぎてロックが解除されてもログオンしてなければ値が 0 にならないからです。

 

ドメインユーザのプロパティ画面の項目と属性の対応(アカウントタブ)のとこで書きましたが、ユーザがロックアウトしてるかどうかは ADSI の IADsUser.IsAccountLocked プロパティが True かどうかで判断するのが一番簡単です。

IADsUser は DirectoryEntry.NativeObject プロパティをキャストすることで取得できます。

ADSI を使わないなら userAccountControl 属性の値に ADS_USER_FLAG 列挙体の ADS_UF_LOCKOUT の値である 16 の論理積が 16 かどうかで判断します。


Viewing all articles
Browse latest Browse all 994

Latest Images

Trending Articles

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>