Содержание
PowerShell
Информация в данном разделе актуальна для:
Windows 10: 1607, 1809, 21H2.
Windows 11: 21H2
PowerShell – расширяемое средство автоматизации от Microsoft с открытым исходным кодом.
Входит в состав операционной системы начиная с Windows 10
Windows PowerShell (ISE) – среда для создания, выполнения и тестирования скриптов PowerShell.
Входит в состав в состав операционной системы начиная с Windows 10.
Как запустить оболочку PowerShell
Для Windows 10 – «Windows PowerShell»
Для Windows 11 – «Windows Terminal»
При необходимости запустить PowerShell с повышенными привилегиями выберите пункт:
Для Windows 10 1607
Способ №1
В строке поиска наберите «power»
В результатах поиска выберите пункт «Windows PowerShell»
Способ №2
Как запустить “Windows PowerShell ISE”
С помощью графической оболочки
В строке поиска наберите «ise»
В результатах поиска найдите «Windows PowerShell ISE»
Возможно два варианта запуска, с обычными и повышенными привилегиями
С обычными привилегиями – нажмите на вышеуказанный пункт левой кнопкой мыши
С помощью команды
Введите команду «powershell_ise» без кавычек
Как создать сценарий PowerShell
Если вы хотите создать сценарий просто вставив перечень команд из другого источника, можете воспользоваться блокнотом.
Для разработки сценариев луче использовать среду «Windows PowerShell ISE».
С помощью блокнота
Напишите или вставьте в блокнот необходимые команды
Выберите путь сохранения файла
Укажите название файла
Измените расширение файла с «txt» на «ps1»
Нажмите на кнопку «Сохранить» (Save)
Закройте окно блокнота
С помощью “Windows PowerShell ISE”
Напишите или вставьте в «Windows PowerShell ISE» необходимые команды
Выберите путь сохранения файла
Укажите название файла или оставьте имя по умолчанию
Нажмите на кнопку «Сохранить» (Save)
Закройте среду «Windows PowerShell ISE»
Как выполнить сценарий PowerShell
Способ №1
Нажмите правой кнопкой мыши на необходимом сценарии
Выберите пункт «Выполнить с помощью PowerShell» (Run with PowerShell)
Способ №2
Нажмите правой кнопкой мыши на необходимом сценарии
Выберите пункт «Изменить» (Edit)
Дождитесь запуска среды «Windows PowerShell ISE»
Убедитесь, что на панели инструментов «Windows PowerShell ISE» активна зеленая стрелка
Нажмите «F5» или нажмите левой кнопкой мыши на зелёную стрелку.
Способ №3
Нажмите Ctrl+O для открытия сценария, который необходимо выполнить
Найдите место расположения сценария и откройте его двойным щелчком левой кнопки мыши
При выполнении сценария система может сообщить о том, что выполнение сценариев запрещено.
Чтобы снять ограничение на выполнение сценариев PowerShell, выполните нижеуказанную команду в командной части
запущенной среды PowerShell ISE или в среде PowerShell
Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy UnRestricted
Официальная документация
powershell.txt
· Последние изменения: 2023/09/15 15:12 —
vladimir
Вы можете обращаться к данным в файлах Excel напрямую из PowerShell. Несмотря на то, что в PowerShell есть встроенные командлеты для импорта (Import-CSV) и экспорта (Export-CSV) табличных данных в CSV файлы, для конечных пользователей формат книг Excel более прост, понятен. С помощью автоматизации PowerShell и Excel вы можете инвентаризировать и строить красивые отформатированные отчеты по вашей инфраструктуре (компьютерам, серверам, пользователям, Active Directory и т.д.)
В этой статье мы покажем, как прочитать и записать данные в таблицу Excel с помощью PowerShell.
Сначала рассмотрим архитектуру объектной модели документа Excel, которая состоит из следующих уровней представлений:
- Уровень приложения (Application Layer) – запущенное приложение Excel;
- Уровень книги (WorkBook Layer) – одновременно могут быть открыты несколько книг (файлов/документов Excel);
- Уровень листа (WorkSheet Layer) – в каждом XLSX файле может быть несколько листов;
- Ячейки (Range Layer) – позволяет обратиться к данным в конкретной ячейке или диапазонe ячеек.

Доступ к данным в файле Excel из PowerShell
Рассмотрим на простом примере как получить доступ из PowerShell к данным в Excel файле со списком сотрудников.

Запустите приложение Excel (Application layer), создав COM объект:
Чтобы создать этот COM объект, Excel должен быть установлен на компьютере.
Эта команда запустите в фоновом режиме приложение Excel. Чтобы сделать окно Excel видимым, нужно изменить свойство Visible COM объекта:
Вывести все свойства объекта Excel:
Теперь можно открыть файл Excel (книгу, workbook):

В каждом файле Excel может быть несколько листов (worksheets). Вывести список листов в текущей книге Excel:
Теперь можно открыть конкретный лист (по его имени или индексу):<
Текущий (активный) лист Excel можно узнать командой:

Для получения значения из ячейки Excel нужно указать ее номер. Теперь вы можете получить значения из ячеек документа Excel. Можно использовать различные способы адресации ячеек в книге Excel: через диапазон (Range), ячейку (Cell), столбец (Columns) или строку (Rows). Ниже показаны примеры получения данных из одной и той же ячейки:

Записать значение в ячейку Excel из PowerShell
Вы можете изменить значение любой ячейки в книге Excel. Например, вы хотите изменить должность пользователя в файле.
Получить текущее значение ячейки:
Присвойте новое значение ячейке:
$ExcelWorkSheet.cells.Item(2, 3) = 'Начальник отдела продаж'

Изменить размер шрифта и выделить новое значение жирным:
$ExcelWorkSheet.cells.Item(2, 3).Font.Bold = $true
$ExcelWorkSheet.cells.Item(2, 3).Font.size=14
Сохранить изменения и закрыть книгу Excel:
Закрыть приложение Excel:

Откройте XLSX файл и проверьте, что данные и шрифт в указанной ячейки были изменены.
Если вам нужно создать новый лист в документе Excel:
$ExcelWorkSheet = $ExcelWorkBook.Worksheets.Add()
$ExcelWorkSheet.Name = "NewSheet"
Удалить целиком столбец или строку:
$ExcelWorkSheet.cells.Item(5, 1).EntireRow.Delete()
$ExcelWorkSheet.cells.Item(2, 1).EntireColumn.Delete()
Как получить данные из Active Directory и сохранить их в книге Excel?
Рассмотрим практический пример как можно использовать PowerShell для получения данных из Excel. Например, вы хотите получить для каждого пользователя в Excel файле получить информацию из Active Directory. Например, его телефон (атрибут telephoneNumber), отдел (department) и email адрес (mail).
В результате в Excel файле для каждого пользователя были добавлены столбцы с информацией из AD.

Рассмотрим еще один пример построения отчета с помощью PowerShell и Excel. Допустим, вам нужно построить Excel отчет о состоянии службы Print Spooler на всех серверах домена.
- Вы можете поручить сотруднику отдела кадров вести реестр пользователей в Excel, а затем с помощью PowerShellс скриптов создавать новых пользователей в AD (New-ADUser) или обновлять их данные (Set-ADUser). Можно делегировать этому пользователю права на изменение этих атрибутов.
- Пример скрипта PowerShell для рассылки писем из Outlook по списку пользователям из Excel файла.
Получить данные их XLSX файла без установки Microsoft Office
Если вы хотите или не можете установить Excel на компьютере ( например у вас отсутствуют лицензии для активации Office или в случае с Windows Server Core), вы можете использовать кроссплатформенный PowerShell модуль ImportExcel для работы с Excel документами.
Установите модуль из PowerShell Gallery:
Рассмотрим типовые операции с книгами Excel, которые можно выполнить с помощью этого модуля.
Экспорт данных в XLSX файл:

Изменить значение в ячейке Excel:
С помощью PSObject можно добавить данные в таблицу Excel:
$FilePath = "C:\ps\ad_users.xlsx"
$ExcelData = Import-Excel -Path $FilePath -WorksheetName "AD_User_List"
$NewUser = [PSCustomObject]@{ "UserName" = "aivanov" "FullName" = "Иванов Андрей" "Job" = "Инженер"
}
$ExcelData += $NewUser
Export-Excel -Path $FilePath -WorksheetName "AD_User_List" -InputObject $ExcelData



