Parcourir la source

Обновить 'Лекции/HTML/PowerShell.md'

Petrov Timofey il y a 1 semaine
Parent
commit
fcc9d02902
1 fichiers modifiés avec 13 ajouts et 13 suppressions
  1. 13 13
      Лекции/HTML/PowerShell.md

+ 13 - 13
Лекции/HTML/PowerShell.md

@@ -2,11 +2,11 @@
 
 Windows PowerShell позволяет системным администраторам автоматизировать большинство рутинных задач. С ее помощью можно менять настройки, останавливать и запускать сервисы, а также производить обслуживание большинства установленных приложений. Воспринимать синее окошко как еще один интерпретатор команд было бы неправильно. Такой подход не отражает сути предложенных корпорацией Microsoft инноваций. На самом деле возможности Windows PowerShell гораздо шире: в небольшом цикле статей мы попробуем разобраться, чем решение Microsoft отличается от более привычных нам средств.
 
-**Основные возможности **
+**Основные возможности** 
 
 Разумеется Windows PowerShell — это в первую очередь командная оболочка с языком сценариев, изначально созданная на основе платформы .NET Framework, а позднее — на .NET Core. В отличие от принимающих и возвращающих текстовые данные оболочек, Windows PowerShell работает с классами .NET, у которых есть свойства и методы. PowerShell позволяет выполнять обычные команды, а также дает доступ к объектам COM, WMI и ADSI. В ней используются различные хранилища, вроде файловой системы или реестра Windows, для доступа к которым созданы т.н. поставщики (providers). Стоит отметить возможность встраивания исполняемых компонентов PowerShell в другие приложения для реализации различных операций, в т.ч. через графический интерфейс. Верно и обратное: многие приложения для Windows предоставляют доступ к своим интерфейсам управления через PowerShell. 
 
-Windows PowerShell позволяет:
+**Windows PowerShell позволяет:**
 
 1)Менять настройки операционной системы;
 
@@ -31,7 +31,7 @@ Windows PowerShell позволяет:
 
 ![PowerShell 1.png](PowerShell 1.png)
 
-Для работы с оболочкой нужно запомнить некоторые сочетания клавиш:
+**Для работы с оболочкой нужно запомнить некоторые сочетания клавиш:**
 
 Стрелки вверх и вниз прокручивают историю для повтора ранее набранных команд;
 Стрелка вправо в конце строки перенабирает предыдущую команду посимвольно;
@@ -46,7 +46,7 @@ Windows PowerShell ISE является полноценной средой ра
 
 ![PowerShell 3.png](PowerShell 3.png)
 
-Командлеты 
+**Командлеты** 
 
 В Windows PowerShell появились т.н. командлеты (cmdlets). Это специализированные классы .NET, в которые заложена разнообразная функциональность. Именуются они по принципу «Действие-Объект» (или «Глагол-Существительное, если вам так больше нравится), а разделенная дефисом связка напоминает сказуемое и подлежащее в предложениях естественных языков. Например, Get-Help буквально означает «Получить-Помощь» или в контексте PowerShell: «Показать-Справку». По сути это аналог команды man в Unix-системах и мануалы в PowerShell нужно запрашивать именно так, а не вызывая командлеты с ключом --help или /?.. Не стоит забывать и об онлайн-документации по PowerShell: у Microsoft она достаточно подробная.
 
@@ -78,7 +78,7 @@ Get-Help Get-Command -Examples
 
 Справка в Windows PowerShell обновляется командлетом Update-Help. Если строка команд получается слишком длинной, аргументы командлета можно перенести на следующую, написав служебный символ ‘`’ и нажав Enter — просто закончить писать команду на одной строке и продолжить на другой не получится.
 
-Ниже приведем несколько примеров распространенных командлетов: 
+**Ниже приведем несколько примеров распространенных командлетов:** 
 
 Get-Process — показать запущенные в системе процессы;
 Get-Service — показать службы и их статус;
@@ -88,7 +88,7 @@ Get-Content — вывести содержимое файла.
 
 ![PowerShell 5.png](PowerShell 5.png)
 
-Сценарии, функции, модули и язык PowerShell
+**Сценарии, функции, модули и язык PowerShell**
 
 Скрипты Windows PowerShell хранятся в виде обычных текстовых файлов с расширением .ps1. Запустить их двойным кликом нельзя: нужно правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Запустить в PowerShell». Из консоли придется либо указать полный путь к скрипту, либо перейти в соответствующий каталог и написать имя файла. Запуск сценариев также ограничен системной политикой, а для проверки текущих настроек можно использовать командлет Get-ExecutionPolicy, который выдаст одно из следующих значений:
 
@@ -111,11 +111,11 @@ PowerShell для этого придется запустить от имени
 
 Get-ChildItem Env:\PSModulePath | Format-Table -AutoSize
 
-Конвейеры
+**Конвейеры**
 
 В последнем примере мы применили знакомую пользователям оболочек для Unix-систем конструкцию. В Windows PowerShell вертикальная черта также позволяет передать выход одной команды на вход другой, но в реализации конвейера есть и существенная разница: речь здесь идет уже не о наборе символов или каком-то тексте. Встроенные командлеты или пользовательские функции возвращают объекты или массивы объектов, а также могут получать их на входе. Как в Bourne shell и его многочисленных последователях, в PowerShell с помощью конвейера упрощается выполнение сложных задач.
 
-Простейший пример конвейера выглядит так:
+**Простейший пример конвейера выглядит так:**
 
 Get-Service | Sort-Object -property Status
 
@@ -127,7 +127,7 @@ Get-Service | Sort-Object -property Status
 
 Get-Service | Sort-Object -property Status | more
 
-Запуск задач в фоновом режиме 
+**Запуск задач в фоновом режиме** 
 
 Довольно часто бывает нужно запустить некую команду в фоне, чтобы не дожидаться результата ее выполнения в сессии оболочки. В Windows PowerShell есть несколько командлетов на такой случай:
 
@@ -158,7 +158,7 @@ Receive-Job Job1 | more
 
 Всё довольно просто.
 
-Удаленное выполнение команд
+**Удаленное выполнение команд**
 
 Windows PowerShell позволяет выполнять команды и сценарии не только на локальном, но и на удаленном компьютере и даже на целой группе машин. Для этого существует несколько способов:
 
@@ -166,7 +166,7 @@ Windows PowerShell позволяет выполнять команды и сц
 Командлет Enter-PSSession позволяет создать на удаленной машине интерактивный сеанс; 
 С помощью командлета Invoke-Command можно выполнять команды или сценарии на одном или нескольких удаленных компьютерах.
 
-Версии PowerShell
+**Версии PowerShell**
 
 С момента первого релиза в 2006 году PowerShell серьезно изменился. Инструмент доступен для множества систем, работающих на разных аппаратных платформах (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux и OS X. Последний релиз 6.2 выпущен 10 января 2018 года. Написанные для более ранних версий скрипты с высокой вероятностью будут работать в более поздних, а вот с обратным переносом могут возникнуть проблемы, поскольку за годы развития в PowerShell появилось большое количество новых командлетов. Узнать версию установленной на компьютере командной оболочки можно с помощью свойства PSVersion встроенной переменной $PSVersionTable:
 
@@ -174,7 +174,7 @@ $PSVersionTable.PSVersion
 
 ![PowerShell 11.png](PowerShell 11.png)
 
-Также можно воспользоваться командлетом:
+**Также можно воспользоваться командлетом:**
 
 Get-Variable -Name PSVersionTable –ValueOnly
 
@@ -182,6 +182,6 @@ Get-Variable -Name PSVersionTable –ValueOnly
 
 То же самое делается и с помощью командлета Get-Host. На самом деле вариантов множество, но для их применения нужно изучить язык программирования PowerShell.
 
-Итоги 
+**Итоги** 
 
 Корпорации Microsoft удалось создать действительно мощную командную оболочку с удобной интегрированной средой для разработки скриптов. От привычных нам по миру Unix средств ее отличает глубокая интеграция с операционными системами семейства Windows, а также с программным обеспечением для них и платформой .NET Core. PowerShell можно назвать объектно ориентированной оболочкой, потому что командлеты и пользовательские функции возвращают объекты или массивы объектов и могут получать их на входе. Думаем, этим инструментом должны владеть все администраторы серверов на Windows: прошло время, когда они могли обойтись без командной строки. Продвинутая консольная оболочка особенно необходима на наших недорогих VPS, работающих под управлением Windows Server Core, но это уже совсем другая история.