Учебники

Powershell — Краткое руководство

Powershell — Обзор

Windows PowerShell — это оболочка командной строки и язык сценариев, разработанный специально для системного администрирования. Его аналог в Linux называется Bash Scripting. Основанная на .NET Framework, Windows PowerShell помогает ИТ-специалистам контролировать и автоматизировать администрирование операционной системы Windows и приложений, работающих в среде Windows Server.

Команды Windows PowerShell, называемые командлетами , позволяют управлять компьютерами из командной строки. Поставщики Windows PowerShell позволяют получать доступ к хранилищам данных, таким как реестр и хранилище сертификатов, так же легко, как и к файловой системе.

Кроме того, Windows PowerShell имеет расширенный синтаксический анализатор выражений и полностью разработанный язык сценариев. Таким образом, простыми словами вы можете выполнить все задачи, которые вы делаете с графическим интерфейсом и многое другое.

PowerShell ISE

Интегрированная среда сценариев Windows PowerShell (ISE) является хост-приложением для Windows PowerShell. В Windows PowerShell ISE вы можете запускать команды и писать, тестировать и отлаживать сценарии в одном графическом пользовательском интерфейсе на основе Windows с многострочным редактированием, завершением табуляции, окрашиванием синтаксиса, выборочным выполнением, контекстно-зависимой справкой и поддержкой прав на языки.

Вы можете использовать пункты меню и сочетания клавиш для выполнения многих тех же задач, которые вы выполняете в консоли Windows PowerShell. Например, при отладке сценария в Windows PowerShell ISE для установки точки останова строки в скрипте щелкните правой кнопкой мыши строку кода и выберите « Переключить точку останова» .

Основные команды PowerShell

Существует много команд PowerShell, и очень трудно ввести все эти команды в этом учебном пособии. Мы сосредоточимся на некоторых из наиболее важных, а также основных команд PowerShell.

Первый шаг — перейти к команде Get-Help, которая объясняет, как дать команду и ее параметр.

Получить справку

Powershell — настройка среды

Значок PowerShell можно найти на панели задач и в меню «Пуск». Просто нажав на значок, он откроется.

Значок PowerShell

Чтобы открыть его, просто нажмите значок, а затем откроется следующий экран, и это означает, что PowerShell готов к работе.

PowerShell Ready

Версия PowerShell

Последняя версия PowerShell — 5.0, и для проверки того, что установлено на нашем сервере, мы вводим следующую команду — : $ PSVersionTable, как показано на следующем снимке экрана, и с экрана мы также знаем, что у нас есть PSVersion 4.0

PSVersionTable

Чтобы обновить до последней версии, где есть больше командлетов, мы должны загрузить Windows Management Framework 5.0 по следующей ссылке — https://www.microsoft.com/en-us/download/details.aspx?id=50395 и установить ее. ,

Windows Management Framework

PowerShell ISE

Интегрированная среда сценариев Windows PowerShell (ISE) является хост-приложением для Windows PowerShell. В Windows PowerShell ISE вы можете запускать команды и писать, тестировать и отлаживать сценарии в одном графическом пользовательском интерфейсе на основе Windows с многострочным редактированием, завершением табуляции, окрашиванием синтаксиса, выборочным выполнением, контекстно-зависимой справкой и поддержкой прав на языки.

Вы можете использовать пункты меню и сочетания клавиш для выполнения многих тех же задач, которые вы выполняете в консоли Windows PowerShell. Например, при отладке сценария в Windows PowerShell ISE для установки точки останова строки в скрипте щелкните правой кнопкой мыши строку кода и выберите « Переключить точку останова» .

Чтобы открыть его, просто зайдите в Пуск — Поиск, а затем введите — PowerShell, как показано на следующем снимке экрана.

Поиск PowerShell

Затем нажмите на Windows PowerShell ISE. Или нажмите стрелку вниз, как показано на следующем снимке экрана.

PowerShell ISE

В нем будут перечислены все приложения, установленные на сервере, а затем щелкните Windows PowerShell ISE.

Windows PowerShell ISE

Следующая таблица будет открыта —

Следующая таблица

Он состоит из трех разделов, включая: консоль PowerShell с номером 1, затем файл сценариев № 2, а третий — это командный модуль, в котором вы можете найти модуль.

При создании скрипта вы можете запустить напрямую и увидеть результат, как в следующем примере —

Создание сценария

Основные команды PowerShell

Существует много команд PowerShell, и очень трудно ввести все эти команды в этом учебном пособии. Мы сосредоточимся на некоторых из наиболее важных, а также основных команд PowerShell.

Первый шаг — перейти к команде Get-Help, которая объясняет, как дать команду и ее параметр.

Получить справку

Чтобы получить список обновлений

  • Get-HotFix и установить исправление следующим образом
  • Get-HotFix -id kb2741530

Обновления

Powershell — командлеты

Командлет или «Команда let» — это облегченная команда, используемая в среде Windows PowerShell. Среда выполнения Windows PowerShell вызывает эти командлеты из командной строки. Вы можете создавать и вызывать их программно через API Windows PowerShell.

Командлет против командования

Командлеты сильно отличаются от команд в других средах командной оболочки следующими способами:

  • Командлеты являются объектами класса .NET Framework; а не только автономные исполняемые файлы.

  • Командлеты могут быть легко созданы из всего лишь десятка строк кода.

  • Синтаксический анализ, представление ошибок и выходное форматирование не обрабатываются командлетами. Это выполняется средой выполнения Windows PowerShell.

  • Процесс командлетов работает с объектами, не находящимися в текстовом потоке, и объекты могут быть переданы в качестве вывода для конвейерной обработки.

  • Командлеты основаны на записях, так как обрабатывают один объект за раз.

Командлеты являются объектами класса .NET Framework; а не только автономные исполняемые файлы.

Командлеты могут быть легко созданы из всего лишь десятка строк кода.

Синтаксический анализ, представление ошибок и выходное форматирование не обрабатываются командлетами. Это выполняется средой выполнения Windows PowerShell.

Процесс командлетов работает с объектами, не находящимися в текстовом потоке, и объекты могут быть переданы в качестве вывода для конвейерной обработки.

Командлеты основаны на записях, так как обрабатывают один объект за раз.

Получать помощь

Первый шаг — перейти к команде Get-Help, которая объясняет, как дать команду и ее параметр.

Получить справку

Powershell — операции с файлами и папками

Ниже приведены примеры сценариев powershell для файлов и папок.

Sr.No. Операция и описание
1 Создание папок

Пример сценария, показывающий, как создавать папки с использованием сценариев PowerShell.

2 Создание файлов

Пример сценария, показывающий, как создавать файлы с использованием сценариев PowerShell.

3 Копирование папок

Пример сценария, показывающий, как копировать файлы с использованием сценариев PowerShell.

4 Копирование файлов

Пример сценария, показывающий, как создавать файлы с использованием сценариев PowerShell.

5 Удаление папок

Пример сценария, показывающий, как удалять папки с использованием сценариев PowerShell.

6 Удаление файлов

Пример сценария, показывающий, как удалять файлы с помощью сценариев PowerShell.

7 Перемещение папок

Пример сценария, чтобы показать, как перемещать папки (папки) с помощью сценариев PowerShell.

8 Перемещение файлов

Пример сценария, показывающий, как перемещать файлы с использованием сценариев PowerShell.

9 Переименовать папки

Пример сценария, показывающий, как переименовать папку (и) с помощью сценариев PowerShell.

10 Переименовать файлы

Пример сценария, чтобы показать, как переименовать файл (ы) с помощью сценариев PowerShell.

11 Получение предмета

Пример сценария, чтобы показать, как получить элемент (ы) с помощью сценариев PowerShell.

12 Проверить наличие папки

Пример Script, чтобы показать, как проверить существование папки с помощью скриптов PowerShell.

13 Проверить наличие файла

Пример Script, чтобы показать, как проверить существование файла с помощью скриптов PowerShell.

Пример сценария, показывающий, как создавать папки с использованием сценариев PowerShell.

Пример сценария, показывающий, как создавать файлы с использованием сценариев PowerShell.

Пример сценария, показывающий, как копировать файлы с использованием сценариев PowerShell.

Пример сценария, показывающий, как создавать файлы с использованием сценариев PowerShell.

Пример сценария, показывающий, как удалять папки с использованием сценариев PowerShell.

Пример сценария, показывающий, как удалять файлы с помощью сценариев PowerShell.

Пример сценария, чтобы показать, как перемещать папки (папки) с помощью сценариев PowerShell.

Пример сценария, показывающий, как перемещать файлы с использованием сценариев PowerShell.

Пример сценария, показывающий, как переименовать папку (и) с помощью сценариев PowerShell.

Пример сценария, чтобы показать, как переименовать файл (ы) с помощью сценариев PowerShell.

Пример сценария, чтобы показать, как получить элемент (ы) с помощью сценариев PowerShell.

Пример Script, чтобы показать, как проверить существование папки с помощью скриптов PowerShell.

Пример Script, чтобы показать, как проверить существование файла с помощью скриптов PowerShell.

Powershell — Операции с датой и временем

Ниже приведены примеры сценариев powershell для системной даты и времени.

Sr.No. Операция и описание
1 Получить системную дату

Пример скрипта, чтобы показать, как получить системную дату, используя скрипты PowerShell.

2 Установить системную дату

Пример скрипта, чтобы показать, как установить системную дату с помощью скриптов PowerShell.

3 Получить системное время

Пример скрипта, чтобы показать, как получить системное время, используя скрипты PowerShell.

4 Установить системное время

Пример скрипта, чтобы показать, как установить системное время с помощью скриптов PowerShell.

Пример скрипта, чтобы показать, как получить системную дату, используя скрипты PowerShell.

Пример скрипта, чтобы показать, как установить системную дату с помощью скриптов PowerShell.

Пример скрипта, чтобы показать, как получить системное время, используя скрипты PowerShell.

Пример скрипта, чтобы показать, как установить системное время с помощью скриптов PowerShell.

Powershell — операции ввода-вывода файлов

Ниже приведены примеры сценариев PowerShell для создания и чтения различных типов файлов.

Sr.No. Операция и описание
1 Создать текстовый файл

Пример сценария, показывающий, как создать текстовый файл с использованием сценариев PowerShell.

2 Читать текстовый файл

Пример сценария, чтобы показать, как читать текстовый файл с помощью сценариев PowerShell.

3 Создать XML-файл

Пример сценария, показывающий, как создать файл XML с использованием сценариев PowerShell.

4 Читать XML-файл

Пример сценария, показывающий, как читать XML-файл с помощью сценариев PowerShell.

5 Создать CSV-файл

Пример сценария, показывающий, как создать файл CSV с использованием сценариев PowerShell.

6 Читать файл CSV

Пример сценария, показывающий, как читать файл CSV с помощью сценариев PowerShell.

7 Создать HTML-файл

Пример сценария, показывающий, как создать файл HTML с использованием сценариев PowerShell.

8 Читать HTML-файл

Пример Script, чтобы показать, как читать HTML-файл, используя скрипты PowerShell.

9 Стирание содержимого файла

Пример сценария, показывающий, как удалить содержимое файла с помощью сценариев PowerShell.

10 Добавить текстовые данные

Пример сценария, показывающий, как добавлять текст к содержимому файла с помощью сценариев PowerShell.

Пример сценария, показывающий, как создать текстовый файл с использованием сценариев PowerShell.

Пример сценария, чтобы показать, как читать текстовый файл с помощью сценариев PowerShell.

Пример сценария, показывающий, как создать файл XML с использованием сценариев PowerShell.

Пример сценария, показывающий, как читать XML-файл с помощью сценариев PowerShell.

Пример сценария, показывающий, как создать файл CSV с использованием сценариев PowerShell.

Пример сценария, показывающий, как читать файл CSV с помощью сценариев PowerShell.

Пример сценария, показывающий, как создать файл HTML с использованием сценариев PowerShell.

Пример Script, чтобы показать, как читать HTML-файл, используя скрипты PowerShell.

Пример сценария, показывающий, как удалить содержимое файла с помощью сценариев PowerShell.

Пример сценария, показывающий, как добавлять текст к содержимому файла с помощью сценариев PowerShell.

Powershell — продвинутые командлеты

Командлеты

Командлет или «Команда let» — это облегченная команда, используемая в среде Windows PowerShell. Среда выполнения Windows PowerShell вызывает эти командлеты из командной строки. Вы можете создавать и вызывать их программно через API Windows PowerShell. Ниже приведен расширенный пример использования командлетов.

Sr.No. Тип и описание командлета
1 Командлет Get-Unique

Пример программы для демонстрации командлета Get-Unique.

2

Командлет Group-Object

Пример программы для демонстрации командлета Group-Object.

3 Командлет Measure-Object

Пример программы для демонстрации командлета Measure-Object.

4 Командлет Compare-Object

Пример программы для демонстрации командлета Compare-Object.

5 Командлет Format-List

Пример программы для демонстрации командлета Format-List.

6 Широкий формат командлета

Пример программы для демонстрации командлета Format-Wide.

7 Командлет Where-Object

Пример программы для демонстрации командлета Where-Object.

8 Командлет Get-ChildItem

Пример программы для демонстрации командлета Get-ChildItem.

9 Командлет ForEach-Object

Пример программы для демонстрации командлета ForEach-Object.

10 Командлет Start-Sleep

Пример программы для демонстрации командлета Start-Sleep.

11 Командлет Read-Host

Пример программы для демонстрации командлета Read-Host.

12 Командлет Select-Object

Пример программы для демонстрации командлета Select-Object.

13 Командлет Sort-Object

Пример программы для демонстрации командлета Sort-Object.

14 Командлет предупреждения о записи

Пример программы для демонстрации командлета Write-Warning.

15 Командлет Write-Host

Пример программы для демонстрации командлета Write-Host.

16 Командлет Invoke-Item

Пример программы для демонстрации командлета Invoke-Item.

17 Командлет Invoke-Expression

Пример программы для демонстрации командлета Invoke-Expression.

18 Командлет Measure-Command

Пример программы для демонстрации командлета Measure-Command.

19 Командлет Invoke-History

Пример программы для демонстрации командлета Invoke-History.

20 Командлет Add-History

Пример программы для демонстрации командлета Add-History.

21 Командлет Get-History

Пример программы для демонстрации командлета Get-History.

22 Командлет Get-Culture

Пример программы для демонстрации командлета Get-Culture.

Пример программы для демонстрации командлета Get-Unique.

Командлет Group-Object

Пример программы для демонстрации командлета Group-Object.

Пример программы для демонстрации командлета Measure-Object.

Пример программы для демонстрации командлета Compare-Object.

Пример программы для демонстрации командлета Format-List.

Пример программы для демонстрации командлета Format-Wide.

Пример программы для демонстрации командлета Where-Object.

Пример программы для демонстрации командлета Get-ChildItem.

Пример программы для демонстрации командлета ForEach-Object.

Пример программы для демонстрации командлета Start-Sleep.

Пример программы для демонстрации командлета Read-Host.

Пример программы для демонстрации командлета Select-Object.

Пример программы для демонстрации командлета Sort-Object.

Пример программы для демонстрации командлета Write-Warning.

Пример программы для демонстрации командлета Write-Host.

Пример программы для демонстрации командлета Invoke-Item.

Пример программы для демонстрации командлета Invoke-Expression.

Пример программы для демонстрации командлета Measure-Command.

Пример программы для демонстрации командлета Invoke-History.

Пример программы для демонстрации командлета Add-History.

Пример программы для демонстрации командлета Get-History.

Пример программы для демонстрации командлета Get-Culture.

Powershell — Сценарии

Windows PowerShell — это оболочка командной строки и язык сценариев, разработанный специально для системного администрирования. Его аналог в Linux называется Bash Scripting. Основанная на .NET Framework, Windows PowerShell помогает ИТ-специалистам контролировать и автоматизировать администрирование операционной системы Windows и приложений, работающих в среде Windows Server.

Команды Windows PowerShell, называемые командлетами , позволяют управлять компьютерами из командной строки. Поставщики Windows PowerShell позволяют получать доступ к хранилищам данных, таким как реестр и хранилище сертификатов, так же легко, как и к файловой системе.

Кроме того, Windows PowerShell имеет расширенный синтаксический анализатор выражений и полностью разработанный язык сценариев. Таким образом, простыми словами вы можете выполнить все задачи, которые вы делаете с графическим интерфейсом и многое другое. Windows PowerShell Scripting — это полностью разработанный язык сценариев, имеющий богатый анализатор выражений /

Характеристики

  • Командлеты — Командлеты выполняют общие задачи системного администрирования, например, управление реестром, службами, процессами, журналами событий и использование инструментария управления Windows (WMI).

  • Ориентация на задачи — язык сценариев PowerShell основан на задачах и обеспечивает поддержку существующих сценариев и инструментов командной строки.

  • Согласованный дизайн — поскольку командлеты и хранилища системных данных используют общий синтаксис и имеют общие соглашения об именах, обмен данными становится простым. Вывод одного командлета может быть передан другому командлету без каких-либо манипуляций.

  • Простота использования — упрощенная навигация на основе команд позволяет пользователям перемещаться по реестру и другим хранилищам данных, аналогичным навигации по файловой системе.

  • Основанный на объектах — PowerShell обладает мощными возможностями манипулирования объектами. Объекты могут быть отправлены в другие инструменты или базы данных напрямую.

  • Расширяемый интерфейс. — PowerShell можно настраивать, поскольку независимые поставщики программного обеспечения и корпоративные разработчики могут создавать собственные инструменты и утилиты, используя PowerShell для администрирования своего программного обеспечения.

Командлеты — Командлеты выполняют общие задачи системного администрирования, например, управление реестром, службами, процессами, журналами событий и использование инструментария управления Windows (WMI).

Ориентация на задачи — язык сценариев PowerShell основан на задачах и обеспечивает поддержку существующих сценариев и инструментов командной строки.

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

Простота использования — упрощенная навигация на основе команд позволяет пользователям перемещаться по реестру и другим хранилищам данных, аналогичным навигации по файловой системе.

Основанный на объектах — PowerShell обладает мощными возможностями манипулирования объектами. Объекты могут быть отправлены в другие инструменты или базы данных напрямую.

Расширяемый интерфейс. — PowerShell можно настраивать, поскольку независимые поставщики программного обеспечения и корпоративные разработчики могут создавать собственные инструменты и утилиты, используя PowerShell для администрирования своего программного обеспечения.

переменные

Переменные PowerShell являются именованными объектами. Поскольку PowerShell работает с объектами, эти переменные используются для работы с объектами.

Создание переменной

Имя переменной должно начинаться с $ и может содержать буквенно-цифровые символы и подчеркивание в их именах. Переменную можно создать, введя правильное имя переменной.

Введите следующую команду в консоли PowerShell ISE. Предполагая, что вы находитесь в папке D: \ test.

$location = Get-Location

Здесь мы создали переменную $ location и присвоили ей вывод командлета Get-Location. Теперь он содержит текущее местоположение.

Используя переменную

Введите следующую команду в консоли PowerShell ISE.

 $location

Выход

Вы можете увидеть следующий вывод в консоли PowerShell.

Path                                                                                    
----                                                                                    
D:\test                                                                                 

Получение информации о переменной

Командлет Get-Member может указать тип используемой переменной. Смотрите пример ниже.

 $location | Get-Member

Выход

Вы можете увидеть следующий вывод в консоли PowerShell.

   TypeName: System.Management.Automation.PathInfo

Name          MemberType   Definition                                               
----          ----------   ----------                                               
Equals        Method       bool Equals(System.Object obj)                           
GetHashCode   Method       int GetHashCode()                                        
GetType       Method       type GetType()                                           
ToString      Method       string ToString()                                        
Drive         Property     System.Management.Automation.PSDriveInfo Drive {get;}    
Path          Property     System.String Path {get;}                                
Provider      Property     System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath  Property     System.String ProviderPath {get;}

Powershell — специальные переменные

PowerShell Специальные переменные хранят информацию о PowerShell. Они также называются автоматическими переменными. Ниже приведен список автоматических переменных —

оператор Описание
$$ Представляет последний токен в последней строке, полученной сеансом.
$? Представляет статус выполнения последней операции. Он содержит ИСТИНА, если последняя операция прошла успешно, и ЛОЖЬ, если она не удалась.
$ ^ Представляет первый токен в последней строке, полученной сеансом.
$ _ То же, что $ PSItem. Содержит текущий объект в объекте конвейера. Вы можете использовать эту переменную в командах, которые выполняют действие для каждого объекта или для выбранных объектов в конвейере.
$ ARGS Представляет массив необъявленных параметров и / или значений параметров, которые передаются в функцию, сценарий или блок сценария.
$ ConsoleFileName Представляет путь к файлу консоли (.psc1), который последний раз использовался в сеансе.
$ ERROR Представляет массив объектов ошибок, которые представляют самые последние ошибки.
$ EVENT Представляет объект PSEventArgs, представляющий обрабатываемое событие.
$ EventArgs Представляет объект, представляющий первый аргумент события, который является производным от EventArgs события, которое обрабатывается.
$ EventSubscriber Представляет объект PSEventSubscriber, который представляет подписчика на событие, которое обрабатывается.
$ ExecutionContext Представляет объект EngineIntrinsics, который представляет контекст выполнения хоста PowerShell.
$ FALSE Представляет ЛОЖЬ. Вы можете использовать эту переменную для представления FALSE в командах и сценариях вместо использования строки «false».
$ FOREACH Представляет перечислитель (не результирующие значения) цикла ForEach. Вы можете использовать свойства и методы перечислителей для значения переменной $ ForEach.
$ HOME Представляет полный путь к домашнему каталогу пользователя.
$ HOST Представляет объект, представляющий текущее хост-приложение для PowerShell.
$ ВХОД Представляет перечислитель, который перечисляет все входные данные, которые передаются в функцию.
$ LASTEXITCODE Представляет код завершения последней программы для Windows, которая была запущена.
$ МАТЧИ Переменная $ Matches работает с операторами -match и -notmatch.
$ MYINVOCATION $ MyInvocation заполняется только для скриптов, функций и блоков скриптов. Свойства PSScriptRoot и PSCommandPath автоматической переменной $ MyInvocation содержат информацию о вызывающем или вызывающем скрипте, а не о текущем скрипте.
$ NESTEDPROMPTLEVEL Представляет текущий уровень подсказки.
$ NULL $ null — это автоматическая переменная, которая содержит NULL или пустое значение. Вы можете использовать эту переменную для представления отсутствующего или неопределенного значения в командах и сценариях.
$ PID Представляет идентификатор процесса (PID) процесса, в котором размещается текущий сеанс PowerShell.
$ PROFILE Представляет полный путь профиля PowerShell для текущего пользователя и текущего хост-приложения.
$ PSCMDLET Представляет объект, представляющий командлет или расширенную функцию, которая выполняется.
$ PSCOMMANDPATH Представляет полный путь и имя файла запускаемого сценария.
$ PSCULTURE Представляет имя культуры, используемой в настоящее время в операционной системе.
$ PSDebugContext Во время отладки эта переменная содержит информацию о среде отладки. В противном случае он содержит значение NULL.
$ PSHOME Представляет полный путь к каталогу установки для PowerShell.
$ PSITEM То же, что $ _. Содержит текущий объект в объекте конвейера.
$ PSSCRIPTROOT Представляет каталог, из которого выполняется скрипт.
$ PSSENDERINFO Представляет информацию о пользователе, запустившем сеанс PSSession, включая идентификатор пользователя и часовой пояс исходного компьютера.
$ PSUICulture Представляет имя культуры пользовательского интерфейса (UI), которая в настоящее время используется в операционной системе.
$ PSVERSIONTABLE Представляет доступную только для чтения хэш-таблицу, в которой отображаются сведения о версии PowerShell, запущенной в текущем сеансе.
$ SENDER Представляет объект, который сгенерировал это событие.
$ SHELLID Представляет идентификатор текущей оболочки.
$ StackTrace Представляет трассировку стека для самой последней ошибки.
$ ЭТА В блоке сценария, который определяет свойство сценария или метод сценария, переменная $ This ссылается на расширяемый объект.
$ ИСТИНА Представляет ИСТИНА. Вы можете использовать эту переменную для представления ИСТИНА в командах и скриптах.

Powershell — операторы

PowerShell предоставляет богатый набор операторов для работы с переменными. Мы можем разделить все операторы PowerShell на следующие группы:

  • Арифметические Операторы
  • Операторы присваивания
  • Операторы сравнения
  • Логические Операторы
  • Перенаправленные операторы
  • Разлитые и присоединяющиеся операторы
  • Операторы типа
  • Унарные операторы

Арифметические операторы

Арифметические операторы используются в математических выражениях так же, как они используются в алгебре. В следующей таблице перечислены арифметические операторы —

Предположим, что целочисленная переменная A содержит 10, а переменная B содержит 20, тогда —

Показать примеры

оператор Описание пример
+ (Дополнение) Добавляет значения по обе стороны от оператора. А + Б даст 30
— (вычитание) Вычитает правый операнд из левого операнда. A — B даст -10
* (Умножение) Умножает значения по обе стороны от оператора. А * Б даст 200
/ (Отдел) Делит левый операнд на правый операнд. Б / у даст 2
% (Модуль) Делит левый операнд на правый операнд и возвращает остаток. B% A даст 0

Операторы сравнения

Ниже приведены операторы присваивания, поддерживаемые языком PowerShell.

Предположим, что целочисленная переменная A содержит 10, а переменная B содержит 20, тогда —

Показать примеры

оператор Описание пример
экв (равно) Сравнивает два значения, чтобы быть равными или нет. A -eq B даст ложь
ne (не равно) Сравнивает два значения, чтобы быть не равным. A -ne B даст истинное
GT (больше чем) Сравнивает первое значение с большим, чем второе. B -GT даст верный
ge (больше или равно) Сравнивает первое значение, которое больше или равно второму. B -ge A даст истинное
л (меньше чем) Сравнивает первое значение с меньшим, чем второе. Б-л д даст ложь
ле (меньше или равно) Сравнивает первое значение с меньшим или равным второму. B -le A даст ложное

Операторы присваивания

Ниже приведены операторы присваивания, поддерживаемые языком PowerShell.

Показать примеры

оператор Описание пример
знак равно Простой оператор присваивания. Назначает значения от правых операндов к левому операнду. C = A + B назначит значение A + B в C
+ = Добавить И оператор присваивания. Он добавляет правый операнд к левому операнду и присваивает результат левому операнду. C + = A эквивалентно C = C + A
знак равно Вычитание И оператор присваивания. Вычитает правый операнд из левого операнда и присваивает результат левому операнду. C — = A эквивалентно C = C — A

Логические операторы

В следующей таблице перечислены логические операторы —

Предположим, что булевы переменные A верны, а переменная B ложна, тогда —

Показать примеры

оператор Описание пример
И (логическое и) Называется логический оператор И. Если оба операнда отличны от нуля, условие становится истинным. (A -AND B) является ложным
ИЛИ (логический или) Вызывается логическим оператором ИЛИ. Если любой из двух операндов отличен от нуля, условие становится истинным. (A -OR B) верно
НЕ (логично, нет) Вызывается логическим оператором НЕ. Используйте для изменения логического состояния своего операнда. Если условие истинно, то оператор Логический НЕ будет делать ложь. -НЕТ (А-И Б) верно

Разные операторы

Ниже приведены различные важные операторы, поддерживаемые языком PowerShell.

Показать примеры

оператор Описание пример
> (Перенаправленный оператор) Перенаправленный оператор. Назначает вывод для печати на перенаправленный файл / устройство вывода. dir> test.log напечатает список каталогов в файле test.log

Powershell — Looping

Может возникнуть ситуация, когда вам нужно выполнить блок кода несколько раз. В общем случае операторы выполняются последовательно: первый оператор в функции выполняется первым, затем второй и так далее.

Языки программирования предоставляют различные управляющие структуры, которые допускают более сложные пути выполнения.

Оператор цикла позволяет нам выполнять оператор или группу операторов несколько раз, и в большинстве языков программирования ниже приводится общая форма инструкции цикла.

Петлевая архитектура

Язык программирования PowerShell предоставляет следующие типы циклов для обработки требований циклов. Нажмите на следующие ссылки, чтобы проверить их детали.

Sr.No. Цикл и описание
1 для цикла

Выполнить последовательность операторов несколько раз и сократить код, который управляет переменной цикла.

2 цикл forEach

Улучшено для цикла. Это в основном используется для обхода коллекции элементов, включая массивы.

3 в то время как цикл

Повторяет оператор или группу операторов, пока данное условие выполняется. Он проверяет условие перед выполнением тела цикла.

4 делать … пока цикл

Как оператор while, за исключением того, что он проверяет условие в конце тела цикла.

Выполнить последовательность операторов несколько раз и сократить код, который управляет переменной цикла.

Улучшено для цикла. Это в основном используется для обхода коллекции элементов, включая массивы.

Повторяет оператор или группу операторов, пока данное условие выполняется. Он проверяет условие перед выполнением тела цикла.

Как оператор while, за исключением того, что он проверяет условие в конце тела цикла.

Powershell — Условия

Структуры принятия решений имеют одно или несколько условий, которые должны быть оценены или протестированы программой, а также оператор или операторы, которые должны быть выполнены, если условие определено как истинное, и, необязательно, другие операторы, которые должны быть выполнены, если условие определено быть ложным.

Ниже приводится общая форма типичной структуры принятия решений, встречающейся в большинстве языков программирования.

Принятие решения

Язык сценариев PowerShell предоставляет следующие типы операторов принятия решений. Нажмите на следующие ссылки, чтобы проверить их детали.

Sr.No. Заявление и описание
1 если заявление

Оператор if состоит из логического выражения, за которым следует одно или несколько операторов.

2 если … еще заявление

За оператором if может следовать необязательный оператор else , который выполняется, когда логическое выражение имеет значение false.

3 вложенный оператор if

Вы можете использовать один оператор if или elseif внутри другого оператора if или elseif .

4 заявление о переключении

Оператор switch позволяет проверять переменную на соответствие списку значений.

Оператор if состоит из логического выражения, за которым следует одно или несколько операторов.

За оператором if может следовать необязательный оператор else , который выполняется, когда логическое выражение имеет значение false.

Вы можете использовать один оператор if или elseif внутри другого оператора if или elseif .

Оператор switch позволяет проверять переменную на соответствие списку значений.

Powershell — Array

PowerShell предоставляет структуру данных, массив , в котором хранится последовательная коллекция фиксированного размера элементов любого типа. Массив используется для хранения коллекции данных, но часто более полезно думать о массиве как о коллекции переменных или объектов.

Вместо того, чтобы объявлять отдельные переменные, такие как number0, number1, … и number99, вы объявляете одну переменную массива, такую ​​как числа, и используете числа [0], числа [1] и …, числа [99] для представления отдельные переменные.

В этом руководстве рассказывается, как объявлять переменные массива, создавать массивы и обрабатывать массивы с использованием индексированных переменных.

Объявление переменных массива

Чтобы использовать массив в программе, вы должны объявить переменную для ссылки на массив и указать тип массива, на который может ссылаться переменная. Вот синтаксис для объявления переменной массива —

Синтаксис

$A = 1, 2, 3, 4
or
$A = 1..4  

Примечание. По умолчанию тип объектов массива — System.Object. Метод GetType () возвращает тип массива. Тип можно передать.

пример

Следующие фрагменты кода являются примерами этого синтаксиса —

[int32[]]$intA = 1500,2230,3350,4000

$A = 1, 2, 3, 4
$A.getType()

Это даст следующий результат —

Выход

IsPublic    IsSerial    Name                        BaseType                     
--------    --------    ----                        --------                     
True        True        Object[]                    System.Array 

Доступ к элементам массива осуществляется через индекс . Индексы массива основаны на 0; то есть они начинаются с 0 до arrayRefVar.length-1 .

пример

Следующий оператор объявляет переменную массива myList, создает массив из 10 элементов двойного типа и присваивает его ссылку на myList —

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

Следующая картинка представляет массив myList. Здесь myList содержит десять двойных значений и индексы от 0 до 9.

Array myList

Обработка массивов

При обработке элементов массива мы часто используем цикл for или цикл foreach, поскольку все элементы в массиве относятся к одному типу, а размер массива известен.

пример

Вот полный пример, показывающий, как создавать, инициализировать и обрабатывать массивы —

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

write-host("Print all the array elements")
$myList

write-host("Get the length of array")
$myList.Length

write-host("Get Second element of array")
$myList[1]

write-host("Get partial array")
$subList = $myList[1..3]

write-host("print subList")
$subList

write-host("using for loop")
for ($i = 0; $i -le ($myList.length - 1); $i += 1) {
   $myList[$i]
}

write-host("using forEach Loop")
foreach ($element in $myList) {
   $element
}

write-host("using while Loop")
$i = 0
while($i -lt 4) {
   $myList[$i];
   $i++
}

write-host("Assign values")
$myList[1] = 10
$myList

Это даст следующий результат —

Выход

Print all the array elements
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
Get the length of array
10
Get Second element of array
4.5
Get partial array
print subList
4.5
3.3
13.2
using for loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using forEach Loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using while Loop
5.6
4.5
3.3
13.2
Assign values
5.6
10
3.3
13.2
4
34.33
34
45.45
99.993
11123

Примеры методов массивов

Вот полный пример, показывающий операции над массивами с использованием его методов

$myList = @(0..4)

write-host("Print array")
$myList

$myList = @(0..4)

write-host("Assign values")
$myList[1]  = 10
$myList

Это даст следующий результат —

Выход

Clear array
Print array
0
1
2
3
4
Assign values
0
10
2
3
4

Powershell — Hashtables

Hashtable хранит пары ключ / значение в хеш-таблице. При использовании Hashtable вы указываете объект, который используется в качестве ключа, и значение, которое вы хотите связать с этим ключом. Обычно мы использовали строку или числа в качестве ключей.

В этом руководстве рассказывается, как объявлять хеш-таблицы, создавать хеш-таблицы и обрабатывать хеш-таблицы с использованием его методов.

Объявление хеш-переменных

Чтобы использовать хеш-таблицу в программе, вы должны объявить переменную для ссылки на хеш-таблицу. Вот синтаксис для объявления хеш-переменной:

Синтаксис

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{} 

Примечание. Упорядоченные словари могут быть созданы с использованием аналогичного синтаксиса. Упорядоченные словари поддерживают порядок добавления записей, а хеш-таблицы — нет.

пример

Следующие фрагменты кода являются примерами этого синтаксиса —

$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}

Распечатать хеш-таблицу.

$hash

Выход

Name                           Value    
----                           -----                                                    
ID                             1                                                        
Color                          Blue                                                     
Shape                          Square 

Доступ к значениям хеш-таблицы осуществляется через ключи .

> $hash["ID"]
 1

Обработка Hashtable

Точечная нотация может использоваться для доступа к ключам или значениям хеш-таблиц.

> $hash.keys
ID
Color
Shape

> $hash.values
1
Blue
Square

пример

Вот полный пример, показывающий, как создавать, инициализировать и обрабатывать хеш-таблицу —

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}

write-host("Print all hashtable keys")
$hash.keys

write-host("Print all hashtable values")
$hash.values

write-host("Get ID")
$hash["ID"]

write-host("Get Shape")
$hash.Number

write-host("print Size")
$hash.Count

write-host("Add key-value")
$hash["Updated"] = "Now"

write-host("Add key-value")
$hash.Add("Created","Now")

write-host("print Size")
$hash.Count

write-host("Remove key-value")
$hash.Remove("Updated")

write-host("print Size")
$hash.Count

write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key

Это даст следующий результат —

Выход

Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key

Name                           Value                                                                                                   
----                           -----                                                                                                   
Color                          Blue                                                                                                    
Created                        Now                                                                                                     
ID                             1                                                                                                       
Shape                          
Square    

Powershell — регулярное выражение

Регулярное выражение — это специальная последовательность символов, которая помогает вам сопоставлять или находить другие строки или наборы строк, используя специальный синтаксис, содержащийся в шаблоне. Их можно использовать для поиска, редактирования или манипулирования текстом и данными.

Вот таблица со списком всех синтаксисов метасимволов регулярных выражений, доступных в PowerShell:

Подвыражение Матчи
^ Соответствует началу строки.
$ Соответствует концу строки.
, Соответствует любому отдельному символу, кроме новой строки. Использование опции m позволяет ему соответствовать и новой строке.
[…] Соответствует любому отдельному символу в скобках.
[^ …] Соответствует любому отдельному символу не в скобках.
\ A Начало всей строки.
\ г Конец всей строки.
\ Z Конец всей строки, кроме допустимого конечного конца строки.
ре * Соответствует 0 или более вхождений предыдущего выражения.
ре + Соответствует 1 или более из предыдущей вещи.
повторно? Соответствует 0 или 1 вхождению предыдущего выражения.
re {n} Совпадает ровно с числом вхождений предыдущего выражения.
re {n,} Соответствует n или более вхождений предыдущего выражения.
re {n, m} Соответствует не менее n и не более m вхождений предыдущего выражения.
| б Соответствует либо a, либо b.
(Ре) Группирует регулярные выражения и запоминает сопоставленный текст.
(?: re) Группирует регулярные выражения без запоминания сопоставленного текста.
(?> re) Соответствует независимому образцу без возврата.
\ ш Соответствует слову символов.
\ W Соответствует несловесным символам.
\ s Соответствует пробелу. Эквивалентно [\ t \ n \ r \ f].
\ S Соответствует непробельному пространству.
\ d Соответствует цифрам. Эквивалентно [0-9].
\ D Совпадает с нецифрами.
\ A Соответствует началу строки.
\ Z Соответствует концу строки. Если новая строка существует, она совпадает непосредственно перед новой строкой.
\ г Соответствует концу строки.
Соответствует точке, где закончился последний матч.
\ п Обратная ссылка для захвата номера группы «n».
\ б Соответствует границам слов вне скобок. Соответствует возврату (0x08) внутри скобок.
\ B Соответствует границам без слов.
\ n, \ t и т. д. Сопоставляет переводы строк, возврат каретки, вкладки и т. Д.
\ Q Побег (цитата) всех символов до \ E.
\ E Завершает цитирование, начинающееся с \ Q.

Вот полные примеры, показывающие, как использовать регулярные выражения в PowerShell;

Sr.No. Соответствие и описание
1 Совпадение персонажей

Пример поддерживаемых символов регулярного выражения.

2 Соответствие классов персонажей

Пример поддерживаемых классов символов.

3 Квантификаторы совпадений

Пример поддерживаемых квантификаторов.

Пример поддерживаемых символов регулярного выражения.

Пример поддерживаемых классов символов.

Пример поддерживаемых квантификаторов.

Powershell — Backtick

Оператор Backtick (`) также называется оператором переноса слов. Это позволяет команде записываться в несколько строк. Он также может использоваться для новой строки (`n) или табуляции (` t) в предложениях. Смотрите примеры ниже —

Пример 1

Get-Service * | Sort-Object ServiceType `
| Format-Table Name, ServiceType, Status -AutoSize

Это станет

Get-Service * | Sort-Object ServiceType | Format-Table Name, ServiceType, Status -AutoSize

Проверьте вывод как

Name                                                   ServiceType  Status
----                                                   -----------  ------
MSSQLServerADHelper100                             Win32OwnProcess Stopped
ntrtscan                                           Win32OwnProcess Running
...

Пример 2

Использование новой строки и табуляции.

> Write-host "Title Subtitle"
Title Subtitle

> Write-host "Title `nSubtitle"
Title 
Subtitle

> Write-host "Title `tSubtitle"
Title   Subtitle

Powershell — Кронштейны

Powershell поддерживает три типа кронштейнов.

  • Скобки в скобках. — ()

  • Брекеты-скобки. — {}

  • Квадратные скобки. — []

Скобки в скобках. — ()

Брекеты-скобки. — {}

Квадратные скобки. — []

Скобки в скобках

Этот тип скобок используется для

  • передавать аргументы

  • приложить несколько инструкций

  • разрешить неоднозначность

  • создать массив

передавать аргументы

приложить несколько инструкций

разрешить неоднозначность

создать массив

пример

> $array = @("item1", "item2", "item3")
 
> foreach ($element in $array) { $element }
item1
item2
item3

Скобки скобки

Этот тип скобок используется для

  • приложить заявления

  • блокировать команды

приложить заявления

блокировать команды

пример

$x = 10

if($x -le 20){
   write-host("This is if statement")
}

Это даст следующий результат —

Выход

This is if statement.

Квадратные скобки

Этот тип скобок используется для

  • доступ к массиву

  • доступ к хеш-таблицам

  • фильтр с использованием регулярного выражения

доступ к массиву

доступ к хеш-таблицам

фильтр с использованием регулярного выражения

пример

> $array = @("item1", "item2", "item3")
 
> for($i = 0; $i -lt $array.length; $i++){ $array[$i] }
item1
item2
item3
 
>Get-Process [r-s]*
 Handles    NPM(K)     PM(K)    WS(K)   VM(M)   CPU(s)     Id    ProcessName
-------    ------     -----     -----   -----   ------     --    -----------  
    320        72     27300     33764    227     3.95    4028    SCNotification 
   2298        77     57792     48712    308             2884    SearchIndexer
   ...

Powershell — Alias

Псевдоним PowerShell — это другое имя командлета или любого элемента команды.

Создание псевдонима

Используйте командлет New-Alias для создания псевдонима. В приведенном ниже примере мы создали справку по псевдониму для командлета Get-Help.

 New-Alias -Name help -Value Get-Help  

Теперь вызовите псевдоним.

 help Get-WmiObject -Detailed  

Вы увидите следующий вывод.

NAME
   Get-WmiObject
    
SYNOPSIS
   Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes.    
    
SYNTAX
   Get-WmiObject [
...

Получение псевдонима

Используйте командлет get-alias , чтобы получить все псевдонимы, присутствующие в текущем сеансе powershell.

 Get-Alias

Вы увидите следующий вывод.