Сценарий пакетной обработки для экспорта информации из Active Directory (имя, номера телефона, местоположение, и т.д.) в файл CSV

Секретарь на моей работе использует электронную таблицу, которая перечисляет имена, номера телефона и местоположения сотрудников для поиска информации, если кто-то спрашивает. Вся эта информация расположена в AD, но проблема состоит в том, что мы - быстро растущая компания, и люди изменяют местоположения, должности и иногда номера телефона довольно часто, таким образом, ее электронная таблица часто устарела. Я - низкоуровневая технология, но мой босс, предложенный мне, что я должен попытаться соединить какой-то скрипт пакетной обработки, который она может запустить от своего компьютера, который входит в AD, вытягивает эту информацию в csv и затем бросает это в документ Excel.

Я не слишком знаком со сценариями (сделал немного Python в школе, но не огромную сумму), таким образом, я предполагаю, что просто ищу некоторые указатели в правильном направлении. Я в значительной степени получаю точно, что должен сделать сценарий, я просто не уверен, что команды там для взаимодействия с AD и информацией о получении по запросу от него. Даже возможно сделать это со сценарием пакетной обработки? И ей был бы нужен определенный доступ в AD для выполнения его от ее компьютера?

2
задан 1 October 2014 в 02:35
3 ответа

നിങ്ങൾ വിൻഡോസ് എൻടി 4 ഉപയോഗിക്കുന്നില്ലെങ്കിൽ, വിൻഡോസ് പവർഷെൽ ഉപയോഗിക്കാൻ ഞാൻ ശുപാർശചെയ്യുന്നു - ഇത് ശക്തവും ഉപയോഗിക്കാൻ എളുപ്പവുമാണ് (കുറഞ്ഞത് വിബിസ്ക്രിപ്റ്റ്, കിക്സ്റ്റാർട്ട് മുതലായവയുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ)

പവർഷെലുമായി സജീവ ഡയറക്ടറിയിൽ നിന്ന് സംവദിക്കാനും വീണ്ടെടുക്കാനും, പവർഷെലിനായുള്ള ആക്ടീവ് ഡയറക്ടറി മൊഡ്യൂൾ ഉപയോഗിച്ച് നിങ്ങളുടെ ജീവിതം വളരെ എളുപ്പമായിരിക്കും.

എഡി മൊഡ്യൂൾ ഉള്ളതിനാൽ, ഉപയോക്തൃ ഡാറ്റയ്ക്കായി നിങ്ങൾക്ക് എ.ഡി. 12132] ഈ ആട്രിബ്യൂട്ടുകൾ എല്ലാം പൊതുവായതാണ്, അതിനർത്ഥം അവൾക്ക് സ്വന്തമായി സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ട് ചെയ്യാൻ കഴിയും, അവൾക്കായി ഇത് പ്രവർത്തിപ്പിക്കാൻ ഒരു അഡ്മിൻ ആവശ്യമില്ല

2
ответ дан 3 December 2019 в 10:03

Я могу рассказать вам, как я решил аналогичную проблему у бывшего работодателя. Мы использовали Windows только для размещения AD и Exchange, а все остальные серверы в компании работали с FreeBSD , поэтому я разработал нашу автоматизацию экспорта, используя инструмент с открытым исходным кодом под названием adtool , который действует как клиент Active Directory и выводит списки или отдельные атрибуты. С помощью adtool после того, как вы настроили его доступ к вашему серверу AD в соответствии с его документацией, вы должны вытащить основной список с помощью команды оболочки, например:

$ adtool list ou=user,dc=example,dc=com

Для получения дополнительной информации, необходимой для каждой записи, вы можете запросить запись и проанализируйте результаты:

$ adtool attributeget <object> <attribute>

В сценарии это может выглядеть примерно так:

#!/bin/bash

fmt='"%s","%s","%s"\n'    # Grow as required

adtool list ou=user,dc=example,dc=com | sed -e 's/^\S*=/"/;s/,\S*/"/' | while read name; do
  sAMAccountName=$(adtool attributeget "$name" sAMAccountName)
  email=$(adtool attributeget "$name" mail)
  somethingelse=$(adtool attributeget "$name" somethingelse)
  # etc
  printf "$fmt" "$sAMAccountName" "$email" "$somethingelse" ...
done

Этот сценарий bash предназначен для отправки данных на стандартный вывод, поэтому их можно перенаправить в файл, который находится на сервере, или скопировать на рабочую станцию ​​вашего персонала для импортировать в Excel. Обратите внимание, что это не идеально . В его нынешнем виде он не избегает двойных кавычек, которые могут существовать в именах полей. Вы можете учесть это самостоятельно, если это риск для вас.

Боюсь, у меня нет сервера AD, чтобы проверить это, поэтому я не могу предоставить вам полное решение, но если вы решите пойти этот путь и построить вашу автоматизацию в Linux или Unix, я был бы рад помочь вам с необходимой обработкой текста, как только увижу вывод основных команд adtool, данные которых вы анализируете.

NB: Возможно, вы также сможете извлеките любые данные из Active Directory с помощью любого клиента LDAP (например, OpenLDAP , который доступен почти для всех дистрибутивов Linux и BSD). Adtool - это просто удобство.

1
ответ дан 3 December 2019 в 10:03

Если у секретаря есть Microsoft Office 2013 Professional Plus, Office 365 ProPlus или Excel 2013 Standalone, он может использовать Excel Power Query для получения этой информации непосредственно в Excel из Active Directory. В меню Excel Power Query выберите "Из других источников", а затем "Из Active Directory". Необходимые данные можно выбрать в редакторе Power Query, чтобы создать отчет, который можно будет обновить в любое время. Дополнительные права не требуются.

Загрузка дополнения Power Query доступна здесь: https://www.microsoft.com/en-ca/download/details.aspx?id=39379excel-FX104018616.aspx

1
ответ дан 3 December 2019 в 10:03

Теги

Похожие вопросы