Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


powershell:office:update-an-excel-file-with-data-from-active-directory-using-powershell
no way to compare when less than two revisions

Различия

Показаны различия между двумя версиями страницы.


powershell:office:update-an-excel-file-with-data-from-active-directory-using-powershell [28.03.2022 10:39] (текущий) – создано Алексей Максимов
Строка 1: Строка 1:
 +===== Обновление файла Excel по данным из Active Directory с помощью PowerShell =====
  
 +Предположим, у нас имеется некий файл **Excel**, содержащий на листе с условным именем ''Domain Users'' условную таблицу с перечнем доменных учётных записей.
 +
 +{{ :powershell:office:pasted:20220328-102133.png }}
 +
 +Есть необходимость получить по этим учётным записям из **Active Directory** некую дополнительную информацию и добавить её в таблицу в дополнительный столбец. То есть, нужно, используя учётные записи из второго столбца, заполнить данные третьего столбца.
 +
 +Пример простого **PowerShell** скрипта для выполнения решения подобной задачи:
 +
 +
 +<code powershell>
 +# Импортируем модуль для работы с Active Directory
 +#
 +Import-Module ActiveDirectory
 +
 +# Открываем файл Excel
 +#
 +$ExcelObj = New-Object -comobject Excel.Application
 +$ExcelBook = $ExcelObj.Workbooks.Open("C:\Temp\Users.xlsx")
 +
 +# Получаем лист с именем "Domain Users"
 +#
 +$ExcelSheet = $ExcelBook.Sheets.Item("Domain Users")
 +
 +# Получаем счётчик строк на листе 
 +#
 +$rowcount=$ExcelSheet.UsedRange.Rows.Count
 +
 +# Цикл перебора строк листа начиная с 2 строки 
 +# (в первой строке ячейки содержат заголовки таблицы)
 +#
 +for($i=2;$i -le $rowcount;$i++){
 +
 +  # Получаем имя пользователя из колонки (у нас 2 колонка)
 +  #
 +  $ADusername=$ExcelSheet.Columns.Item(2).Rows.Item($i).Text
 +
 +  # Получаем для пользователя нужные атрибуты из AD
 +  #
 +  $ADuserProp = Get-ADUser $ADusername -properties name, canonicalName
 +
 +  # Наполняем данными из AD ячейку в нужной колоке (у нас 3 колонка)
 +  #
 +  $ExcelSheet.Columns.Item(3).Rows.Item($i) = $ADuserProp.canonicalName
 +
 +
 +}
 +# Сохраняем Excel файл и закрываем его
 +#
 +$ExcelBook.Save()
 +$ExcelBook.close($true)
 +</code>
 +
 +В результате выполнения данного PS-кода в файле Excel появится нужнапя нам дополнительная информация об учётных записях. 
 +
 +{{ :powershell:office:pasted:20220328-103810.png }}
 +
 +----
 +
 +{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 28.03.2022 10:13
 +
 +{{tag>PowerShell Excel "Active Directory" "Microsoft Office"}}
 +
 +~~DISCUSSION~~
powershell/office/update-an-excel-file-with-data-from-active-directory-using-powershell.txt · Последнее изменение: 28.03.2022 10:39 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki