CodeSOD: An Odd Sort
이 스크립트는 모든 Active Directory 사용자 및 마지막 로그온 시간을 보고하는 것을 목표로 하지만, 비효율적이고 복잡한 접근 방식을 사용합니다. 사용자 계정을 필터링하기 위해 알파벳의 각 문자를 반복하는데, 이는 완전한 알파벳 순서를 보장하지 않습니다. 각 문자에 대해 새로운 DirectorySearcher 객체를 생성하고, 'name' 속성만 명시적으로 요청한 다음, 일치하는 모든 계정을 찾습니다.이후 검색된 각 이름에 대해 스크립트는 또 다른 DirectorySearcher를 생성합니다. 이 새로운 검색기는 모든 속성을 검색하기 위해 특정 사용자 계정을 쿼리하는 데 사용됩니다. 사용자 이름 검색의 경우 결과가 하나만 예상되지만, FindAll() 메서드가 사용되어 배열을 반환합니다.이는 단일 요소 배열을 반복하기 위한 불필요한 루프를 필요로 합니다. 마지막으로 사용자 이름과 마지막 로그온 시간을 쉼표로 연결하여 출력합니다. 스크립트의 설계는 반복적인 검색기 인스턴스화, 중복 쿼리 및 비논리적인 필터링 방법으로 인해 매우 비효율적입니다. 결함에도 불구하고 관리자를 위한 CSV를 생성하는 능력 때문에 조직 내에서 "미션 크리티컬"합니다.