前提・実現したいこと
ActiveDirectory上のあるドメインのユーザ→プロパティ→ログオン時間で設定できる
ログオン許可時間・拒否時間を、ドメインのユーザーにログオンしている
別のPC上で動作しているC#アプリから変更したい。
発生している問題・エラーメッセージ
そもそも可能なのかが不明。可能だとして、どのようにすればよいのかがわからない。
該当のソースコード
プロパティ取得用のコード 何があるかを確認するために用いた
C#
1using System; 2using System.DirectoryServices; 3 4namespace ADtest{ 5 class Program{ 6 static void main(string[] args){ 7 //ドメインやユーザ情報はかけないので正しいものが入っているものとして下さい。 8 var entry = new DirectoryEntry(path, username, pwd); 9 var searcher = new DirectorySearcher(entry); 10 11 var displayname = "*": 12 13 searcher.Filter = String.Format($"(&(objectclass=user)(displayname={displayname}))"); 14 15 SearchResult result = searcher.FindOne(); 16 17 if(result == null){ 18 Console.WriteLine("null"); 19 } 20 else{ 21 foreach(var name in result.Properties.PropertyNames){ 22 Console.WriteLine(name.ToString()); 23 } 24 } 25 } 26 } 27}
試したこと
上記ソースコードを利用してユーザーのプロパティを取得し、中身を確認。
ログオン時間の制御ができるような項目が見当たらなかった → つまり不可能?
パスワードやユーザアカウントの追加にはDirectoryEntry.Invoke(String, Object[])を
利用できることを調べた。 → やりたいことをするならこれを使えそう。
Stringの引数(ネイティブメソッド名)を見つけることが出来ずに詰まっている。
なので、ネイティブメソッドの一覧が見れるようなドキュメントの場所が知りたい。
補足情報(FW/ツールのバージョンなど)
WindowsServer2019
VisualStudio2017
追記(解決法について)
適切な権限を持つユーザーでログインしていないことによりプロパティの値が取得出来ていなかったため、適切な権限を持つユーザーでログインしなおすことによりプロパティの取得・更新が可能でした。
そのため、この原因に言及されていたdodox86様の回答をBAに致しました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/15 02:44