/// <summary> /// Handles the Elapsed event for the rights removal timer. /// </summary> /// <param name="sender"> /// The timer whose Elapsed event is firing. /// </param> /// <param name="e"> /// Data related to the event. /// </param> private void RemovalTimerElapsed(object sender, System.Timers.ElapsedEventArgs e) { EncryptedSettings encryptedSettings = new EncryptedSettings(EncryptedSettings.SettingsFilePath); User[] expiredUsers = encryptedSettings.GetExpiredUsers(); if (expiredUsers != null) { foreach (User prin in expiredUsers) { LocalAdministratorGroup.RemoveUser(prin.Sid, RemovalReason.Timeout); if ((Settings.EndRemoteSessionsUponExpiration) && (!string.IsNullOrEmpty(prin.RemoteAddress))) { string userName = prin.Name; while (userName.LastIndexOf("\\") >= 0) { userName = userName.Substring(userName.LastIndexOf("\\") + 1); } int returnCode = 0; if (!string.IsNullOrEmpty(userName)) { returnCode = LocalAdministratorGroup.EndNetworkSession(string.Format(@"\\{0}", prin.RemoteAddress), userName); } } } } LocalAdministratorGroup.ValidateAllAddedUsers(); }
/// <summary> /// Handles the Elapsed event for the rights removal timer. /// </summary> /// <param name="sender"> /// The timer whose Elapsed event is firing. /// </param> /// <param name="e"> /// Data related to the event. /// </param> private void RemovalTimerElapsed(object sender, System.Timers.ElapsedEventArgs e) { EncryptedSettings encryptedSettings = new EncryptedSettings(EncryptedSettings.SettingsFilePath); User[] expiredUsers = encryptedSettings.GetExpiredUsers(); if (expiredUsers != null) { foreach (User prin in expiredUsers) { LocalAdministratorGroup.RemoveUser(prin.Sid, RemovalReason.Timeout); if ((Settings.EndRemoteSessionsUponExpiration) && (!string.IsNullOrEmpty(prin.RemoteAddress))) { string userName = prin.Name; while (userName.LastIndexOf("\\") >= 0) { userName = userName.Substring(userName.LastIndexOf("\\") + 1); } // TODO: Log this return code if it's not a success? int returnCode = 0; if (!string.IsNullOrEmpty(userName)) { returnCode = LocalAdministratorGroup.EndNetworkSession(string.Format(@"\\{0}", prin.RemoteAddress), userName); } } } } LocalAdministratorGroup.ValidateAllAddedUsers(); if (Settings.LogElevatedProcesses != ElevatedProcessLogging.Never) { if (this.processWatchSession == null) { StartTracing(); } if (this.processWatchSession != null) { LogProcesses(); } } }