/// <summary> /// 初回起動向けに,全てのユーザーアカウントに対して,ディレクトリ作成済みフラグを付けます. /// </summary> static void firstRun() { logger.Info("初回起動のため,データベース初期化を行います."); HistoryManager.connect(); HistoryManager.initialize(); DirectorySearcher src = new DirectorySearcher("(objectClass=User)"); foreach (SearchResult result in src.FindAll()) { HistoryManager.add(result.Properties["samAccountName"].OfType <string>().First(), false); } logger.Info("データベース初期化が完了しました."); }
static void Main(string[] args) { logger.Info("Startup"); if (!File.Exists(HistoryManager.dbFile)) { firstRun(); } HistoryManager.connect(); string domain = Environment.ExpandEnvironmentVariables("%USERDNSDOMAIN%"); string domainDN = @"DC=" + domain.Replace(@".", @",DC="); try { logger.Info("ドメインコントローラーへの接続を試行してます."); using (LdapConnection connect = new LdapConnection(domain)) using (ChangeNotifier notifier = new ChangeNotifier(connect)) { //register some objects for notifications (limit 5) notifier.Register(domainDN, ldapFilter, System.DirectoryServices.Protocols.SearchScope.Subtree); notifier.ObjectChanged += new EventHandler <ObjectChangedEventArgs>(notifier_ObjectChanged); logger.Info("ドメインコントローラーへの接続に成功しました.変更監視を開始します."); Console.ReadLine(); } } finally { logger.Info("Shutdown"); } }