Я покончил с ComputerPrincipal.FindByLogonTime, так как он не может найти нулевой LogonTime и пошел со старой классикой, DirectorySearcher
DirectorySearcher Computersearcher = new DirectorySearcher
{
SearchRoot = new DirectoryEntry(baseOU),
Filter = "(&(whenCreated<=" + WhenCreated + ")(!(userAccountControl=2))(|(lastLogonTimestamp<=" + DateInt + ")(lastLogonTimestamp=0))(objectClass=computer))",
SearchScope = SearchScope.Subtree,
PageSize = 1000,
Sort = new SortOption("Name", SortDirection.Ascending)
};
SearchResultCollection ComputerResults = Computersearcher.FindAll();
}
Это имеет неприятный побочный эффект, что наблюдаемая коллекция, которую яиспользуется для создания, больше не отображает имя в моем списке WPF (несмотря на настройку DisplayNamePath).
Совершенно новая проблема, но текущая проблема "решена"