これは、私が汚染したくなかったこの投稿にいくらか関連しています。
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
パスワードの有効期限が表示されます。
私の質問は次のとおりです。
- maxPwdAgeを属性として表示しないのはなぜですか
- net userコマンドはどこからパスワードの有効期限を取得しますか?C#コードで取得するにはどうすればよいですか?
現在、私はこれをコンソールアプリケーションでテストしています。これをテストしているときに、ターゲットマシンに.Net 4.0がインストールされていないことが判明したため、.Net3.5でスタックしています。
私はサーバー管理者ではないので、サーバーの構成の詳細がわかりません。このADLDAPは初めてなので、助けてください。ありがとうございました。