1

これは、私が汚染したくなかったこの投稿にいくらか関連しています。

ActiveDirectoryユーザーパスワードの有効期限.NET/OUグループポリシー

そのスレッドのOPと同様に、コードを介して特定のADユーザー名のパスワードの有効期限を取得しようとしています。ただし、上記のスレッドで参照されている属性maxPwdAgeは、次のような使用可能なすべてのプロパティを取得しようとしたときに使用できません。

            PropertyCollection fields = myLDAP.Properties;

            foreach (String ldapField in fields.PropertyNames)
            {
                // cycle through objects in each field e.g. group membership  
                // (for many fields there will only be one object such as name)  

                foreach (Object myCollection in fields[ldapField])
                    Console.WriteLine(String.Format("{0,-20} : {1}",
                                  ldapField, myCollection.ToString()));
            }

MicrosoftのADExplorerでさえ、パスワードの有効期限を表示しませんでした。

しかし、このコマンドプロンプトコマンドを試すと、次のようになります。

net user thatuser /DOMAIN

パスワードの有効期限が表示されます。

私の質問は次のとおりです。

  1. maxPwdAgeを属性として表示しないのはなぜですか
  2. net userコマンドはどこからパスワードの有効期限を取得しますか?C#コードで取得するにはどうすればよいですか?

現在、私はこれをコンソールアプリケーションでテストしています。これをテストしているときに、ターゲットマシンに.Net 4.0がインストールされていないことが判明したため、.Net3.5でスタックしています。

私はサーバー管理者ではないので、サーバーの構成の詳細がわかりません。このADLDAPは初めてなので、助けてください。ありがとうございました。

4

2 に答える 2

3

maxPwdAgeパスワードの有効期限ではなく、有効期間を定義します。

これはグループレベルで設定されたプロパティであり、ユーザープロパティではありません。

あなたが興味を持っているのはおそらくmaxPwdAge + pwdLastSetです。

pwdLastSetはユーザープロパティです)

于 2013-01-18T15:45:45.613 に答える
2

私のプロジェクトの1つではmaxPwdAge、ドメインオブジェクトから読み取り、その値をlastPwdSetユーザーのプロパティに追加する必要がありました。

于 2013-01-18T15:49:02.520 に答える