Какие версии операционной системы windows поддерживают оболочку powershell

Как нет двух одинаковых операционных систем Windows, так и нет двух одинаковых версий оболочки Windows PowerShell. Шаги, которые нужно предпринять для запуска оболочки PowerShell 2.0 в системе Windows 8 (http://windowsitpro.com/windows-client/windows-8) заметно отличаются от действий, необходимых для запуска версии PowerShell 3.0 на сервере Windows Server 2008. При этом обилие документации по оболочке PowerShell может усложнить поиск точных сведений о том, что именно следует сделать для настройки определенной версии PowerShell в конкретной операционной системе

.

Я попытаюсь упростить информацию о системных требованиях, разделив ее в соответствии с используемой операционной системой. Точнее, я затрону те операционные системы, в которых могут быть запущены обе версии оболочки PowerShell (2.0 и 3.0): Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2 и Server 2008. Для каждой операционной системы я подробно расскажу о запуске обеих версий PowerShell, а также среды разработки PowerShell Integrated Scripting Environment (ISE). Иногда отличий между операционными системами с точки зрения запуска оболочки PowerShell будет немного, но даже в этих случаях я постараюсь четко их обозначить, чтобы вы ясно понимали, как развернуть оболочку PowerShell в своем окружении.

Windows 8

Если вы уже используете систему Windows 8, вам повезло. Ядро PowerShell 3.0 и среда ISE в ней установлены и активированы. Вы можете запустить любое из этих двух решений, как и любое другое приложение, из меню Start, с рабочего стола или из командной строки Windows. Оболочка PowerShell 3.0 готова к запуску и ждет только вашего решения использовать ее.

К сожалению, сказанное не распространяется на оболочку PowerShell 2.0. Хотя ядро PowerShell 2.0 является частью пакета, то есть установлено в системе Windows 8, необходимо сначала активировать компонент Microsoft. NET Framework 3.5. И на то есть причина. Так как ядро PowerShell 2.0 скомпилировано в среде Common Language Runtime (CLR) 2.0, ему требуется платформа. NET версии 3.5 или ниже (назад к. NET 2.0). Оболочке PowerShell 3.0 необходимы версии. NET 4.0 или. NET 4.5, каждая из которых построена на основе CLR 4.0. В системе Windows 8 компоненты. NET 4.5 установлены и активированы по умолчанию, и именно по этой причине вы можете задействовать оболочку PowerShell 3.0 без предварительной настройки.

Если вам необходима возможность использовать как версию PowerShell 3.0, так и версию PowerShell 2.0, вы должны сначала активировать компонент. NET Framework 3.5 (включает версии. NET 2.0 и 3.0) в окне Windows Features. Это шаг активирует платформу.NET 3.5 и позволяет запускать версию PowerShell 2.0 наравне с PowerShell 3.0. Однако вы не найдете пункт меню Start, запускающий оболочку PowerShell 2.0. Для запуска потребуется выполнить следующую команду из командной строки системы Windows или оболочки PowerShell:

powershell -version 2

После запуска этой команды все последующие команды, запущенные в рамках текущей сессии, будут обработаны ядром PowerShell 2.0. Однако имейте в виду, что оболочка PowerShell 3.0 обратно совместима с командами, провайдерами, сценариями, модулями и привязками из версии PowerShell 2.0. Поэтому единственный случай, когда вам может понадобиться использовать ядро PowerShell 2.0, это если вы хотите проверить совместимость сценария или основной программы, написанной специально для оболочки PowerShell 2.0 и среды CLR 2.0.

Также будьте готовы к тому, что вы не сможете запустить среду PowerShell 2.0 ISE, если установлена оболочка PowerShell 3.0. При таких условиях вам удастся запустить версию PowerShell 2.0 только из командной оболочки. Однако вы можете использовать среду PowerShell 3.0 ISE для создания сценария, и потом запустить созданный сценарий в оболочке PowerShell 2.0 для проверки совместимости. Может быть это и не оптимальное, но все же решение.

Windows Server 2012

Если говорить об оболочке PowerShell, то система Server 2012 во многом похожа на Windows 8. По умолчанию установлены, активированы и готовы к использованию ядро и среда ISE версии PowerShell 3.0. Вы можете запустить их из меню Start, с рабочего стола или из командной строки Windows. Кроме того, вы можете запустить оболочку PowerShell 3.0 из окна Server Manager.

Однако для работы оболочки PowerShell 2.0 требуется немного другой подход к подготовке системы, чем при работе с Windows 8. Для начала вы должны добавить компонент. NET 3.5, а не просто включить его. Для этого используйте функцию Add roles and Features в окне диспетчера сервера, чтобы добавить в систему компонент. NET Framework 3.5 (включающий версии 2.0 и 3.0). Чтобы получить доступ к этому компоненту, выберите тип установки Role based или Feature based, когда попадете на страницу выбора типа установки.

Следующий шаг в подготовке к PowerShell 2.0 — это добавление актуального ядра. Снова используйте функцию Add Roles and Features в окне Server Manager, выберите тип установки Role-based или Feature-based и компонент Windows PowerShell 2.0 Engine.

После того как вы добавили возможности пакета. NET 3.5 и ядра PowerShell 2.0, вы сможете запустить ядро PowerShell 2.0. Для этого введите следующую команду в командной строке Windows или PowerShell:

powershell -version 2

Windows 7

В отличие от систем Windows 8 и Server 2012, в состав системы Windows 7 не входят предустановленные ядро PowerShell 3.0 Engine и среда ISE. Наоборот, в состав Windows 7 входят установленные, активированные и готовые к запуску ядро PowerShell и редактор ISE версии 2.0.

Имейте в виду, что если вы щелкаете правой кнопкой мыши на значке PowerShell в меню Start и выбираете пункт Properties, то в строке Target может быть прописана версия v1.0, как показано на приведенном экране. Однако при этом оболочка PowerShell остается работоспособной и вы можете проверить данное утверждение, открыв окно PowerShell и запустив команду Get-Host.

Свойства PowerShell

Экран. Свойства PowerShell

Вы можете запустить оболочку PowerShell или редактор ISE из меню Start или командной строки. Чтобы запустить оболочку PowerShell 2.0 с помощью командной строки, введите команду:

powershell

Чтобы запустить редактор PowerShell 2.0 ISE из командной строки, введите команду:

powershell_ise

Система Windows 7 поддерживает использование версии PowerShell 3.0, но для ее запуска вам нужно будет выполнить несколько шагов.

  1. Установите пакет обновления Windows 7 SP1 (http://www.microsoft.com/en-us/download/details.aspx?id=5842), если еще не сделали этого.
  2. Выполните полную установку компонентов. NET 4.0 (http://www.microsoft.com/en-us/download/details.aspx?id=17851) или. NET 4.5(http://www.microsoft.com/en-us/download/details.aspx?id=30653).
  3. Удалите все предыдущие сборки Windows Management Framework (WMF) 3.0.
  4. Установите последнюю сборку WMF 3.0 (http://www.microsoft.com/en-us/download/details.aspx?id=34595).

Вдобавок к ядру PowerShell 3.0 и среде ISE пакет WMF 3.0 включает и другие компоненты, необходимые для запуска оболочки PowerShell 3.0.

  • WS-Management 3.0. Этот компонент поддерживает работу службы Windows Remote Management (WinRM) и протокола WSMan, которые делают возможным использование компонентов PowerShell, связанных с дистанционным управлением.
  • Windows Management Instrumentation (WMI) 3.0. Этот компонент поддерживает функции, которым необходим инструментарий WMI, например команды Common Information Model (CIM).

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

  • Microsoft System Center 2012 Configuration Manager;
  • Microsoft System Center 2012 Virtual Machine Manager;
  • Microsoft Exchange Server 2012;
  • Microsoft Exchange Server 2007;
  • Microsoft SharePoint 2010;
  • Windows Small Business Server 2011;
  • Windows Small Business Server 2008.

Если в вашей системе были установлены приложения из приведенного списка, вам не следует устанавливать пакет WMF 3.0, а следовательно обновление до версии PowerShell 3.0 становится невыполнимой задачей (если только вы не найдете обходной путь).

Однако если рассматривать вариант, в котором вы сможете выполнить установку пакета WMF 3.0, то оболочка PowerShell 3.0 и среда ISE будут готовы к запуску, как только закончится установка. В системе Windows 7 запуск ядра PowerShell выполняется точно так же как запуск оболочки PowerShell и редактора ISE версии 2.0 (то есть из меню Start или из командной строки). Если вы хотите запустить ядро оболочки PowerShell 2.0, введите в командную строку следующую команду:

powershell -version 2

Однако имейте в виду, что после установки пакета WMF 3.0 вы сможете получить доступ к ядру оболочки PowerShell 2.0 только через эту команду. Кроме того, вы больше не сможете использовать редактор PowerShell ISE и запускать ядро PowerShell 2.0 из оболочки PowerShell 3.0. Вам придется задействовать командную оболочку PowerShell, чтобы выполнять операции версии 2.0. Однако, как и при работе с системами Windows 8 и Server 2012, вы сможете использовать редактор PowerShell 3.0 ISE, чтобы создавать свои сценарии и запускать их на ядре PowerShell 2.0 для проверки совместимости.

Windows Server 2008 R2

Система Server 2008 R2 очень похожа на Windows 7 с точки зрения настройки PowerShell. По умолчанию ядро PowerShell 2.0 и редактор ISE установлены в системе. Однако, в отличие от системы Windows 7, на платформе Server 2008 R2 активировано ядро, но не среда ISE. Вам придется установить ее вручную при помощи функции Add Features в окне Server Manager, позволяющей добавить компонент Windows PowerShell Integrated Scripting Environment (ISE). Как только этот компонент будет добавлен, вы сможете запускать и оболочку PowerShell 2.0, и ISE, точно так же, как в системе Windows 7 (с помощью меню Start или командной строки).

Процесс обновления оболочки PowerShell 2.0 до версии Powershell 3.0 похож на процесс обновления в системе Windows 7. Вы устанавливаете пакет обновления SP1, загружаете компоненты. NET 4.0 или. NET 4.5, удаляете все предыдущие сборки WMF 3.0 и устанавливаете самую последнюю сборку WMF 3.0, соблюдая все предосторожности, описанные в разделе, посвященном системе Windows 7. Однако если вы хотите использовать редактор РоwerShell 3.0 ISE после обновления, вы должны быть уверены, что редактор PowerShell 2.0 ISE был активирован до установки пакета WMF 3.0.

После установки пакета WMF 3.0 вы сможете запустить ядро PowerShell 3.0 и редактор ISE, точно так же, как вы запускали их в системе Windows 7 (то есть с помощью меню Start или командной строки). Чтобы получить доступ к ядру PowerShell 2.0, нужно ввести следующую команду в командной строке системы Windows или оболочки PowerShell:

powershell -version 2

Windows Server 2008

Когда дело дойдет до настройки PowerShell, вы увидите, что платформа Windows Server 2008 действительно отличается от других систем. Эта операционная система не включает в себя предустановленных компонентов PowerShell 2.0 или PowerShell 3.0. В результате вам придется проделать больше работы, чтобы запустить какую-либо из этих версий в своей системе.

Если вы хотите установить ядро PowerShell 2.0 и редактор ISE на компьютер с системой Server 2008, сначала придется удалить все предыдущие версии служб PowerShell или WinRM. Затем, вам нужно установить пакет WMF Core (http://support.microsoft.com/kb/968929/en-us), включающий в себя ядро PowerShell 2.0, среду ISE, а также пакет WinRM 2.0. Теперь вы сможете запускать компоненты PowerShell точно так же, как вы запускали их в системах Windows 7 или Server 2008 R2.

Процесс установки ядра PowerShell 3.0 и ISE не так прост и требует дополнительных шагов.

  • Установите пакет обновления Server 2008 SP2 (http://www.microsoft.com/en-us/download/details.aspx?id=16468), если он еще не был установлен.
  • Установите пакет WMF Core (http://support.microsoft.com/kb/968929/en-us), если он еще не был установлен. Наличие компонента WMF Core — это предварительное условие для установки пакета WMF 3.0 на компьютерах с системой Server 2008.
  • Полностью установите компоненты. NET 4.0 (http://www.microsoft.com/en-us/download/details.aspx?id=17851) или. NET 4.5 (http://www.microsoft.com/en-us/download/details.aspx?id=30653).
  • Установите компонент Extended Protection for Authentication (http://support.microsoft.com/kb/968389). Этот компонент защищает вашу систему от возможных атак и позволяет использовать параметр UseSSL при создании удаленной сессии.
  • Удалите все предыдущие сборки WMF 3.0.
  • Установите самую последнюю сборку WMF 3.0 (http://www.microsoft.com/en-us/download/details.aspx?id=34595).

После завершения процесса установки вы можете обратиться к ядру PowerShell и редактору ISE, как при запуске в системах Windows 7 или Server 2008 R2 (то есть из меню Start или командной строки). Вы можете получить доступ к ядру PowerShell 2.0 так же, как и в других системах, с помощью следующей команды в командной строке системы Windows или оболочки PowerShell:

powershell -version 2

Игра в PowerShell

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

Помните, что вы можете запустить ядро PowerShell 3.0 и среду ISE в любой из перечисленных здесь операционных систем. С версией PowerShell 3.0 вы не только получаете несколько важных новых команд, но и такие компоненты как Windows PowerShell Web Access, интеграцию с моделью Common Information Model (CIM), отключенные сессии и поддержку для Windows Workflow Foundation. Редактор PowerShell 3.0 ISE был значительно расширен с добавлением поддержки таких технологий как IntelliSense, автоматическое сохранение, копирование блока, сопоставление с эталоном и раскрывающиеся-закрывающиеся разделы. И самое главное, что вы по-прежнему можете получить доступ к ядру PowerShell 2.0.

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

Начало: «Windows: терминалы и консоли».

Название «Windows PowerShell» появилось в 2006 году. Вообще эта программа (оболочка операционной системы) начала разрабатываться гораздо раньше и к 2006 году была известна под несколькими другими названиями. В 2006 году программа «Windows PowerShell» стала частью операционной системы «Windows» (тогда это была «Windows Vista»).

Но то дела давно минувших дней, кому любопытно, можно заглянуть в соответствующую статью википедии и погрузиться в чтение истории этой программы (а эта история очень интересная!):
https://en.wikipedia.org/wiki/PowerShell

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

Как узнать номер версии этой программы

В моей операционной системе «Windows 10 Pro» после запуска этой программы необходимо ввести команду $PSVersionTable:

Программа выдает целую таблицу с разнообразной информацией. Нас интересует первая строка этой таблицы.

Windows PowerShell, версия 5.1

Сейчас поддерживается версия 5.1 программы «Windows PowerShell». Она включена в состав моей операционной системы «Windows 10 Pro» (64-разрядной). Исполняемый файл этой программы обычно расположен в следующем каталоге:

%windir%\System32\WindowsPowerShell\v1.0\

У меня это такой каталог:

C:\Windows\System32\WindowsPowerShell\v1.0\

Я не знаю, почему в названии каталога указана версия 1.0. Но так есть по факту.

Название исполняемого файла: «powershell.exe». Следовательно, вызов программы «Windows PowerShell» из командной строки производится командой «powershell». Это важно!

Также указанный каталог содержит исполняемый файл «powershell_ise.exe». Программа «Windows PowerShell ISE» (ISE — интегрированная среда для написания сценариев) является приложением с графическим оконным интерфейсом. Из названия примерно понятно, для чего оно предназначено: для написания и отладки скриптов. Как я понимаю, программа «Windows PowerShell ISE» является вспомогательным инструментом для «Windows PowerShell» и входит в ее состав.

Важно: версия 5.1 — это самая свежая версия программы «Windows PowerShell». Со следующей версии (с версии 6) программу переименовали на просто «PowerShell».

В 2016 году компания «Microsoft» решила переименовать программу «Windows PowerShell» на «PowerShell» потому, что она решила сделать эту программу кроссплатформенной (то есть способной работать не только в операционных системах «Windows», но и в Unix-подобных операционных системах, в частности в «macOS» и «Linux»), независимой от «Windows», бесплатной и с открытым исходным кодом:
https://github.com/PowerShell/PowerShell

PowerShell, версии 7.0, 7.1, 7.2

Самые свежие (и поддерживаемые) версии программы «PowerShell» на данный момент это 7.0, 7.1, 7.2 (готовится к выпуску 7.3).

Тут важно понимать, что программа «PowerShell» ни в какой версии пока не включена по умолчанию в операционные системы «Windows» (так как она считается отдельным проектом). При желании эту программу можно свободно скачать и установить:
https://github.com/PowerShell/PowerShell/releases/
(под каждой версией (релизом) есть раздел «Assets», в котором можно найти ссылку на нужный дистрибутив)

Еще одна важная деталь: вместе со сменой названия с «Windows PowerShell» на «PowerShell» изменилось название исполняемого файла программы: было «powershell.exe», стало «pwsh.exe». Следовательно, вызов программы «PowerShell» из командной строки производится командой «pwsh».

Документация к этой оболочке на сайте компании «Microsoft»

Документация доступна по адресу:
https://docs.microsoft.com/en-us/powershell/ (на английском)
https://docs.microsoft.com/ru-ru/powershell/ (на русском)

Как пользоваться документацией:
https://docs.microsoft.com/en-us/powershell/scripting/how-to-use-docs
https://docs.microsoft.com/ru-ru/powershell/scripting/how-to-use-docs

По последней ссылке можно увидеть, что для каждой статьи в документации слева есть выпадающий список «Версия». Для программы «Windows Powershell» версии 5.1 следует выбирать пункт «5.1». Также есть пункты «7.0 (LTS)», «7.1», «7.2 (LTS)», «7.3 (prerelease)» для программы «PowerShell» соответствующих версий. Для неподдерживаемых версий есть пункт «Previous versions» (по-русски «Предыдущие версии»).

Путаница между командами «pwsh» и «powershell»

Ну, действительно, легко запутаться. Сейчас уже написано множество руководств, в которых для запуска программы «PowerShell» рекомендуют команду «pwsh». И это правильно. Однако, я, не разбираясь в этой путанице с версиями этой оболочки операционной системы, стал эту команду применять и потом удивлялся, почему она не работает. Я знал, что у меня установлена программа «Windows PowerShell», но не знал, что это другая программа (другая версия) и запускать ее следует командой «powershell».

Table of Contents

Introduction

Powershell has evolved over the years, with some old functionality not working in later versions.

If you have created a script in Powershell v1 or v2, it might not work with Powershell v3 or later. It is possible using a simple command to change the version of Powershell.

Which version of Powershell you are running depends on the installed Windows version.

The general recommendation is to update your environment to the latest version of Powershell, so all scripts are created for the same version. Talking from experience, failure to do so will cause a lot of issues.

In this blog post, I cover how to run the Powershell window using another version.

Powershell versions for each Windows OS

Here is a table of the different Powershell versions that come shipped with each version of Windows:

Version Released Windows OS
Powershell 1.0 November 2006 Windows Server 2008
Powershell 2.0 October 2009 Windows Server 2008 R2 (SP1), Windows 7 (SP1)
Powershell 3.0 September 2012 Windows Server 2012, Windows 8
Powershell 4.0 October 2013 Windows Server 2012 R2, Windows 8.1
Powershell 5.0 February 2016 Windows 10
Powershell 5.1 January 2017 Windows Server 2016, Windows 10 Anniversary Update
Powershell Core 6.0 January 2018 Windows 10, macOS, Linux, Windows Server 2019
Powershell Core 6.1 September 2018 Windows 10, macOS, Linux, Windows Server 2019
Powershell Core 6.2 March 2019 Windows 10, macOS, Linux, Windows Server 2019
Powershell 7 Upcoming Upcoming
Powershell versions for different versions of Windows

How to check the version of Powershell

To check the Powershell version, open a Powershell command prompt, and enter:

Check Powershell version using PSVersionTable

Above, you can see that the command returns the version of Powershell.

To change the version to v2, enter this command on a machine:

Update environment to latest Powershell version

Unless you have a good reason not to, I highly recommend upgrading all your machines in your environment to the latest Powershell version.

One way of doing this is through MEMCM (SCCM). Just create an application with the latest Windows Management Framework (WMF), and deploy it to your clients.

Conclusion

Changing the version of Powershell will be required in some cases, but in most cases you should upgrade all clients to the latest version of Powershell.

I hope that you have found the blog post helpful. Let me know if I’ve missed anything!

Sources

  • Microsoft Docs – Powershell documentation

Содержание

  1. Какие версии Windows поддерживают PowerShell?
  2. Какие версии операционной системы Windows поддерживают оболочку PowerShell?
  3. PowerShell: основные принципы и функциональность
  4. Windows XP и PowerShell
  5. Поддержка PowerShell в Windows Vista и Windows 7
  6. Новые возможности PowerShell в Windows 8 и Windows 10
  7. PowerShell и Server Core: как это работает
  8. PowerShell в последних версиях Windows: новые улучшения и функции

Какие версии Windows поддерживают PowerShell?

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

Однако, не все версии Windows поддерживают данную оболочку. В этой статье мы рассмотрим, какие именно версии операционной системы Windows поддерживают PowerShell и как установить его, если оно не предустановлено.

Версии Windows, которые поддерживают PowerShell:

1. Windows XP SP2 и выше: PowerShell был впервые внедрен в операционную систему Windows XP Service Pack 2 и может быть установлен отдельно.

2. Windows Server 2003: PowerShell доступен для установки на серверах Windows Server 2003 с пакетом обновления Service Pack 1 и выше.

3. Windows Vista: PowerShell предустановлен в операционной системе Windows Vista и не требует дополнительной установки.

4. Windows Server 2008: PowerShell также предустановлен в операционной системе Windows Server 2008 и был значительно улучшен в этой версии.

5. Windows 7 и Windows Server 2008 R2: PowerShell уже предустановлен в этих версиях Windows и готов к использованию.

6. Windows 8 и Windows Server 2012: PowerShell 3.0 поставляется с операционной системой Windows 8 и Windows Server 2012.

7. Windows 8.1 и Windows Server 2012 R2: PowerShell 4.0 поставляется с операционной системой Windows 8.1 и Windows Server 2012 R2 и включает ряд новых возможностей и улучшений.

8. Windows 10 и Windows Server 2016: PowerShell 5.0 предустановлен в операционных системах Windows 10 и Windows Server 2016. Эта версия PowerShell включает поддержку сценариев классической оболочки cmd.exe.

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

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

Какие версии операционной системы Windows поддерживают оболочку PowerShell?

PowerShell был впервые выпущен вместе с Windows 7 и Windows Server 2008 R2, и с тех пор стал стандартной оболочкой в операционных системах Windows. Он также доступен для установки на более ранние версии Windows, такие как Windows XP и Windows Vista. Хотя это не является стандартной функцией этих ОС, пользователи могут скачать и установить Powershell отдельно.

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

  • Windows PowerShell 1.0 — поставляется с Windows 7 и Windows Server 2008 R2.
  • Windows PowerShell 2.0 — поставляется с Windows 7 SP1 и Windows Server 2008 R2 SP1. Эту версию можно также установить на Windows XP SP3 и более поздние версии.
  • Windows PowerShell 3.0 — предустановлен на Windows 8 и Windows Server 2012. Может быть установлен на Windows 7 SP1, Windows Server 2008 R2 SP1 и Windows Server 2008 SP2.
  • Windows PowerShell 4.0 — предустановлен на Windows 8.1 и Windows Server 2012 R2. Может быть установлен на Windows 7 SP1 и Windows Server 2008 R2 SP1.

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

PowerShell: основные принципы и функциональность

PowerShell был выпущен в 2006 году и стал преемником командной строки MS-DOS и более ранних версий командной оболочки Windows. Его особая особенность заключается в том, что он основан на платформе .NET Framework, что позволяет использовать все возможности этой платформы для работы с объектами, файлами, реестром и другими компонентами операционной системы.

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

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

  • Выполнять команды с помощью командной строки;
  • Печатать результаты команды;
  • Работать с переменными;
  • Автоматизировать задачи с помощью сценариев;
  • Управлять файлами и папками;
  • Настраивать и администрировать компьютерную сеть;
  • И многое другое.

PowerShell поддерживается на различных версиях операционной системы Windows, начиная с Windows 7 и Windows Server 2008 R2. Он также встроен в новые версии операционной системы, такие как Windows 10 и Windows Server 2016. Более ранние версии Windows, такие как Windows XP и Windows Server 2003, не имеют встроенной поддержки PowerShell, но могут установить его отдельно.

Windows XP и PowerShell

Windows XP является одной из самых популярных версий операционной системы Windows, однако, PowerShell не входит в ее состав. Официально, поддержка PowerShell начала появляться только в Windows Vista, Windows Server 2003 и более новых версиях операционной системы Windows. Тем не менее, существует возможность установки PowerShell на Windows XP с помощью дополнительных пакетов.

Версия PowerShell, доступная для установки на Windows XP, называется Windows Management Framework Core. Этот пакет включает в себя не только PowerShell, но и другие компоненты, необходимые для его нормальной работы. Установка Windows Management Framework Core на Windows XP позволяет использовать возможности PowerShell для автоматизации задач и управления операционной системой. Однако, стоит отметить, что поддержка PowerShell на Windows XP ограничена, и некоторые современные функции могут быть недоступны.

Поддержка PowerShell в Windows Vista и Windows 7

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

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

Одним из преимуществ PowerShell в Windows Vista и Windows 7 является возможность создания собственных сценариев и автоматического выполнения задач на основе этих сценариев. PowerShell предоставляет мощные инструменты для создания скриптов, которые могут автоматизировать сложные задачи и упростить рутинные операции. Это позволяет сэкономить время и улучшить производительность работы пользователей систем Windows Vista и Windows 7.

Новые возможности PowerShell в Windows 8 и Windows 10

Одним из основных преимуществ PowerShell является его способность работать со всеми версиями Windows, начиная с Windows 7 и Windows Server 2008 R2. Однако в Windows 8 и Windows 10 были представлены новые возможности PowerShell, которые облегчают и упрощают процесс автоматизации и управления системой.

Одна из главных новых функций PowerShell в Windows 8 и Windows 10 — это возможность установки, обновления и удаления программ с использованием командлетов PowerShell. Теперь пользователи могут использовать синтаксис PowerShell для управления установкой и удалением программ, что делает процесс более прозрачным и эффективным.

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

  • Возможность управлять сетевыми настройками и подключениями — PowerShell также предоставляет инструменты для управления сетевыми настройками и подключениями в Windows 8 и Windows 10. С его помощью можно создавать, изменять и удалять сетевые подключения, а также настраивать параметры, такие как IP-адрес и DNS-серверы.
  • Взаимодействие с файловой системой — PowerShell позволяет пользователям выполнять различные операции с файловой системой, такие как создание, удаление, перемещение и копирование файлов и папок. Он также предоставляет возможность выполнения более сложных операций, таких как поиск файлов по определенным критериям и фильтрация результатов.

PowerShell и Server Core: как это работает

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

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

PowerShell в последних версиях Windows: новые улучшения и функции

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

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

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

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

Аннотация: Описываются возможности оболочки Windows PowerShell и отличие ее от традиционных оболочек и языков сценариев. Обсуждаются основные концепции PowerShell (типы команд, структура командлетов, псевдонимы команд). Рассматриваются особенности справочной системы PowerShell

Введение в оболочку командной строки Windows PowerShell

На настоящий момент мы рассмотрели уже три разных инструмента, предназначенных для автоматизации работы в операционной системе Windows: оболочки командной строки Cmd.exe и WMIC, а также сервер сценариев WSH. Зачем же компании Microsoft понадобилась разработка еще одной полностью новой оболочки командной строки со своим языком сценариев?

Причины и цели создания новой оболочки

Чтобы ответить на этот вопрос, вспомним основные требования к «идеальному» средству автоматизации, которые мы обсуждали в первой лекции, и посмотрим, в какой степени удовлетворяют этим требованиям перечисленные выше инструменты (табл.16.1).

Таблица
16.1.
Требования к инструменту автоматизации

Требование Cmd.exe WSH WMIC
Работа во всех версиях операционной системы без установки дополнительного программного обеспечения Да Да Нет (только Windows XP и выше)
Интеграция с командной строкой Да Нет Да
Согласованный и непротиворечивый синтаксис команд и утилит Нет Нет Да
Поддержка псевдонимов (кратких синонимов) для длинных названий команд Нет Нет Да
Автоматическое завершения команд и имен файлов при вводе их с клавиатуры Частично (автоматическое завершение имен файлов и папок) Нет Нет
Поддержка истории введенных команд с возможностью их повторного вызова, просмотра и редактирования Да Нет Да
Наличие подробной встроенной справки по командам с примерами использования Частично Нет Да
Возможность автоматического выполнения сценариев Да (язык командных файлов) Да (языки сценариев VBScript, JScript и т.д.) Частично (команды WMIC можно встраивать в командные файлы)
Доступ и использование всех технологий и возможностей, поддерживаемых операционной системой Нет (нет прямого доступа к объектам COM, WMI, ADSI, .NET) Да Нет (доступ только к объектам WMI)

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

Новая оболочка Windows PowerShell (предварительно она была названа Monad) была задумана разработчиками Microsoft как более мощная среда для написания сценариев и работы из командной строки. Разработчики PowerShell преследовали несколько целей. Главная и самая амбициозная из них – создать среду составления сценариев, которая наилучшим образом подходила бы для современных версий операционной системы Windows и была бы более функциональной, расширяемой и простой в использовании, чем какой-либо аналогичный продукт для любой другой операционной системы. В первую очередь эта среда должна была подходить для решения задач, стоящих перед системными администраторами (тем самым Windows получила бы дополнительное преимущество в борьбе за сектор корпоративных платформ), а также удовлетворять требованиям разработчиков программного обеспечения, предоставляя им средства для быстрой реализации интерфейсов управления к создаваемым приложениям.

Для достижения этих целей были решены следующие задачи:

  • Обеспечение прямого доступа из командной строки к объектам COM, WMI и .NET. В новой оболочке присутствуют команды, позволяющие в интерактивном режиме работать с COM-объектами, а также с экземплярами классов, определенных в информационных схемах WMI и .NET.
  • Организация работы с произвольными источниками данных в командной строке по принципу файловой системы. Например, навигация по системному реестру или хранилищу цифровых сертификатов выполняется из командной строки с помощью аналога команды CD интерпретатора Cmd.exe.
  • Разработка интуитивно понятной унифицированной структуры встроенных команд, основанной на их функциональном назначении. В новой оболочке имена всех внутренних команд (в PowerShell они называются командлетами) соответствуют шаблону «глагол-существительное», например, Get-Process (получить информацию о процессе), Stop-Service (остановить службу), Clear-Host (очистить экран консоли) и т.д. Для одинаковых параметров внутренних команд используются стандартные имена, структура параметров во всех командах идентична, все команды обрабатываются одним синтаксическим анализатором. В результате облегчается запоминание и изучение команд.
  • Обеспечение возможности расширения встроенного набора команд. Внутренние команды PowerShell могут дополняться командами, создаваемыми пользователем. При этом они полностью интегрируются в оболочку, информация о них может быть получена из стандартной справочной системы PowerShell.
  • Организация поддержки знакомых команд из других оболочек. В PowerShell на уровне псевдонимов собственных внутренних команд поддерживаются наиболее часто используемые стандартные команды из оболочки Cmd.exe и Unix-оболочек. Например, если пользователь, привыкший работать с Unix-оболочкой, выполнит ls, то он получит ожидаемый результат: список файлов в текущем каталоге (то же самое относится к команде dir).
  • Разработка полноценной встроенной справочной системы для внутренних команд. Для большинства внутренних команд в справочной системе дано подробное описание и примеры использования. В любом случае встроенная справка по любой внутренней команде будет содержать краткое описание всех ее параметров.
  • Реализация автоматического завершения при вводе с клавиатуры имен команд, их параметров, а также имен файлов и папок. Данная возможность значительно упрощает и ускоряет ввод команд с клавиатуры.

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

Отличие PowerShell от других оболочек – ориентация на объекты

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

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

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

В-третьих, работая в оболочке с объектами, можно с помощью их свойств и методов легко получать нужные данные, не занимаясь разбором и анализом символьной информации, как это происходит во всех традиционных тексто-ориентированных оболочках командной строки. Рассмотрим пример. В Windows XP есть консольная утилита tasklist.exe, которая выдает информацию о процессах запущенных в системе:

C:\>tasklist

Имя образа                   PID Имя сессии       № сеанса       Память
========================= ====== ================ ======== ============
System Idle Process            0                         0        16 КБ
System                         4                         0        32 КБ
smss.exe                     560                         0        68 КБ
csrss.exe                    628                         0     4 336 КБ
winlogon.exe                 652                         0     3 780 КБ
services.exe                 696                         0     1 380 КБ
lsass.exe                    708                         0     1 696 КБ
svchost.exe                  876                         0     1 164 КБ
svchost.exe                  944                         0     1 260 КБ
svchost.exe                 1040                         0    10 144 КБ
svchost.exe                 1076                         0       744 КБ
svchost.exe                 1204                         0       800 КБ
spoolsv.exe                 1296                         0     1 996 КБ
kavsvc.exe                  1516                         0     9 952 КБ
klnagent.exe                1660                         0     5 304 КБ
klswd.exe                   1684                         0        64 КБ

Предположим, что мы в командном файле интерпретатора Cmd.exe с помощью этой утилиты хотим определить, сколько оперативной памяти тратит процесс kavsvc.exe. Для этого нужно выделить из выходного потока команды tasklist соответствующую строку, извлечь из нее подстроку, содержащую нужное число и убрать пробелы между разрядами (при этом следует учесть, что в зависимости от настроек операционной системы разделителем разрядов может быть не пробел, а другой символ). В PowerShell аналогичная задача решается с помощью команды get-process, которая возвращает коллекцию объектов, каждый из которых соответствует одному запущенному процессу. Для определения памяти, затрачиваемой процессом kavsvc.exe, нет необходимости в дополнительных манипуляциях с текстом, достаточно просто взять значение свойства WS объекта, соответствующего данному процессу.

Наконец, объектная модель .NET позволяет PowerShell напрямую использовать функциональность различных библиотек, являющихся частью платформы .NET. Например, чтобы узнать, каким днем недели было 9 ноября 1974 года, в PowerShell можно выполнить следующую команду:

(get-date "09.11.1974").DayOfWeek

В этом случае команда get-date возвращает .NET-объект DateTime, имеющий свойство, при обращении к которому вычисляется день недели для соответствующей даты. Таким образом, разработчикам PowerShell не нужно создавать специальную библиотеку для работы с датами и временем – они просто берут готовое решение в .NET.

Загрузка и установка PowerShell

Оболочка PowerShell может работать не во всех версиях операционной системы, ее можно использовать в Windows XP SP 2, Windows Server 2003 SP 1 и более поздних версиях. Кроме этого, в системе должна быть установлена платформа .NET Framework 2.0 (в Windows XP данную среду придется устанавливать дополнительно, дистрибутив можно загрузить с сайта Microsoft по адресу http://msdn.microsoft.com/netframework/downloads/updates/default.aspx).

Загрузить PowerShell можно с сайта Microsoft, открыв страницу http://microsoft.com/powershell, где имеются ссылки на файл установки последней версии и пакеты документации на разных языках. Запустив загруженный файл, следуйте указаниям мастера установки. В 32-разрядных версиях Windows оболочка PowerShell устанавливается по умолчанию в каталог %SystemRoot%\System32\WindowsPowerShell\v1.0. В 64-разрядных версиях Windows 32-разрядная версия PowerShell устанавливается в каталог %SystemRoot%\SystemWow64\WindowsPowerShell\v1.0, а 64-разрядная версия Windows PowerShell устанавливается в каталог %SystemRoot%\System32\WindowsPowerShell\v1.0.

Запуск оболочки. Выполнение команд

Установив оболочку в системе, можно начать новый интерактивный сеанс. Для этого следует нажать на кнопку Пуск (Start), открыть меню Все программы (All Programs) и выбрать элемент Windows PowerShell. Другой вариант запуска оболочки – пункт Выполнить… (Run) в меню Пуск (Start), ввести имя файла powershell и нажать кнопку OK.

В результате откроется новое командное окно с приглашением вводить команды (рис. 16.1).

Выполним первую команду в PowerShell. Пусть это будет что-то знакомое, например dir (команды в PowerShell обрабатываются без учета регистра). На экран будет выведен список файлов в текущем каталоге:

PS C:\Documents and Settings\User> dir
    Каталог: Microsoft.PowerShell.Core\FileSystem::C:\Documents 
      and Settings\User
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d---s        14.12.2007     10:10            Cookies
d----        12.05.2005     17:16            DoctorWeb
d----        06.11.2004     13:03            Phone Browser
d---s        22.09.2004     23:49            UserData
d-r--        04.10.2004     15:33            Главное меню
d-r--        05.12.2007      0:49            Избранное
d-r--        31.10.2007     21:03            Мои документы
d----        05.12.2007     10:54            Рабочий стол
-a---        24.05.2006     21:22       8304 gsview32.ini

Типы команд PowerShell

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

Первый тип – так называемые командлеты (cmdlet). Этот термин используется пока только внутри PowerShell. Командлет представляет собой класс .NET, порожденный от базового класса Cmdlet ; разрабатываются командлеты с помощью пакета PowerShell Software Developers Kit (SDK). Единый базовый класс Cmdlet гарантирует совместимый синтаксис всех командлетов, а также автоматизирует анализ параметров командной строки и описание синтаксиса командлетов для встроенной справки.

Данный тип команд компилируется в динамическую библиотеку (DLL) и подгружается к процессу PowerShell во время запуска оболочки (то есть сами по себе командлеты не могут быть запущены как приложения, но в них содержатся исполняемые объекты). Так как компилированный код подгружается к процессу оболочки, данный тип команд выполняется наиболее эффективно. Командлеты – это аналог внутренних команд традиционных оболочек.

Следующий тип команд – функции. Функция – это блок кода на языке PowerShell, имеющий название и находящийся в памяти до завершения текущего сеанса командной оболочки. Функции, как и командлеты, поддерживают именованные параметры. Анализ синтаксиса функции производится один раз при ее объявлении.

Сценарий – это блок кода на языке PowerShell, хранящийся во внешнем файле с расширением ps1. Анализ синтаксиса сценария производится при каждом его запуске.

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

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Пароль для windows 10 домашняя для одного языка
  • Просмотр картинок windows по умолчанию
  • Как войти под другой учетной записью windows 10 при загрузке
  • Автономные карты windows 10 что это
  • Как долго можно пользоваться неактивированной windows 10