Мне нужно очистить компьютерные объекты в нашей AD, и, поскольку все имена компьютеров включают имя пользователя (например, pcuser1, nbuser2 и т. Д.), Я пытаюсь выяснить, как создать полный список пользователей AD, а затем сравнить его с полным список имен компьютеров. Наши пользовательские объекты согласованы, поэтому это сравнение скажет мне, если компьютерный объект не сравнивается с пользователем.
Как мне поступить с этим? Я не профессионал в написании сценариев, но полагаю, что некоторые vbs или powershell могут помочь. Это часть сравнения, которая мне не интересна.
Некоторый псевдокод может быть:
get all usernames from AD > text1
get all computernames from AD > text2
traverse text1
traverse text2
if text1.line# is contained in text2.line# then
text1.line# and text2.line# > output.txt
Я бы не стал писать свой собственный сценарий для этого. Во-первых, псевдокод, который вы написали, будет O-n-квадрат. Существует множество доступных инструментов, которые можно комбинировать, чтобы получить желаемое.
Используйте такой инструмент, как ldifde, csvde или dsquery, чтобы экспортировать элементы, которые вам нужны. В зависимости от вашей версии Windows они могут быть включены или вам может потребоваться загрузить комплект ресурсов или вспомогательные инструменты. Вы можете выполнить дальнейшую обработку с помощью Excel или текстового редактора, чтобы исходные файлы выглядели правильно, отсортировать их и т. Д.
Затем используйте такой инструмент, как WinDiff или другой графический интерфейс (или текстовый режим, если это вам нравится), чтобы сравнить их.
Хотя, перечитывая свой вопрос, вы могли бы просто сделать то же, что и большинство других администраторов, и выполнить экспорт учетных записей компьютеров, которые неактивны более x дней, и просто удалить их.