Как написать модуль сценария powershellhow to write a powershell script module
Содержание:
- Как открыть PowerShell Windows 10 — 1 способ
- Скачать и установить пакет WMF 5.1Download and install the WMF 5.1 package
- Требования к подсистеме Windows PowerShellWindows PowerShell engine requirements
- Операторы сравнения
- ПараметрыParameters
- Задание свойств службSetting Service Properties
- Примеры методов массивов
- Powershell — Hashtables
- Windows Server 2012 или Windows Server 2012 R2On Windows Server 2012 R2 and Windows Server 2012
- Характеристики
- Установка пакета MSIInstalling the MSI package
- Hyper
- Основной функционал Classic Shell
- Как вернуть окно команд в папке Windows 10
- Запуск удаленного сеанса с помощью подсистемы Windows PowerShell 2.0How to start a remote session with the Windows PowerShell 2.0 Engine
- Инструментарий управления Windows 3.0Windows Management Instrumentation 3.0
- PowerShell включает конвейерPowerShell has a pipeline
- Расширенные функцииAdvanced Functions
Как открыть PowerShell Windows 10 — 1 способ
В современных версиях Windows 10, в интерфейсе операционной системы PowerShell заменила командную строку. Сама командная строка никуда не исчезла, просто ОС предлагает применять PowerShell по умолчанию.
Для запуска оболочки в Windows 10 можно использовать контекстное меню кнопки «Пуск»:
- Щелкните правой кнопкой мыши по меню «Пуск», или нажмите на клавиши «Win» + «X».
- В контекстном меню откроются пункты «Windows PowerShell» и «Windows PowerShell (администратор)».
Вы можете запустить Windows PowerShell от имени администратора или в обычном режиме от имени текущего пользователя компьютера.
Если на вашем компьютере вместо PowerShell отображается командная строка, то это значит, что ранее были проведены изменения в настройках Windows 10. Вернуть Windows PowerShell на место можно следующим способом:
- Запустите приложение «Параметры».
- Откройте «Персонализация».
- Войдите в раздел «Панель задач».
- В опции «Заменить командную строку оболочкой Windows PowerShell в меню, которое появляется при щелчке правой кнопкой мыши по кнопке “Пуск” или при нажатии клавиш Windows + X» передвиньте ползунок переключателя в положение «Включено».
После этого, вместо командной строки в контекстном меню кнопки «Пуск» станут отображаться пункты для запуска PowerShell.
Скачать и установить пакет WMF 5.1Download and install the WMF 5.1 package
Скачайте пакет WMF 5.1 для той операционной системы и архитектуры, в которой будет производиться установка.Download the WMF 5.1 package for the operating system and architecture you wish to install it on:
Операционная системаOperating System | Предварительные требованияPrerequisites | Ссылки на пакетыPackage Links |
---|---|---|
Windows Server 2012 R2Windows Server 2012 R2 | Win8.1AndW2K12R2-KB3191564-x64.msuWin8.1AndW2K12R2-KB3191564-x64.msu | |
Windows Server 2012Windows Server 2012 | W2K12-KB3191565-x64.msuW2K12-KB3191565-x64.msu | |
Windows Server 2008 R2Windows Server 2008 R2 | .NET Framework 4.5.2.NET Framework 4.5.2 | Win7AndW2K8R2-KB3191566-x64.ZIPWin7AndW2K8R2-KB3191566-x64.ZIP |
Windows 8.1Windows 8.1 | x64: Win8.1AndW2K12R2-KB3191564-x64.msux64: Win8.1AndW2K12R2-KB3191564-x64.msux86: Win8.1-KB3191564-x86.msux86: Win8.1-KB3191564-x86.msu | |
Windows 7 с пакетом обновления 1 (SP1)Windows 7 SP1 | .NET Framework 4.5.2.NET Framework 4.5.2 | x64: Win7AndW2K8R2-KB3191566-x64.ZIPx64: Win7AndW2K8R2-KB3191566-x64.ZIPx86: Win7-KB3191566-x86.ZIPx86: Win7-KB3191566-x86.ZIP |
- Перед установкой WMF 5.1 RTM нужно удалить предварительную версию WMF 5.1.WMF 5.1 Preview must be uninstalled before installing WMF 5.1 RTM.
- WMF 5.1 можно установить непосредственно на WMF 5.0 или WMF 4.0.WMF 5.1 may be installed directly over WMF 5.0 or WMF 4.0.
- Устанавливать WMF 4.0 перед установкой WMF 5.1 в Windows 7 и Windows Server 2008 R2 не требуется.It is not required to install WMF 4.0 prior to installing WMF 5.1 on Windows 7 and Windows Server 2008 R2.
Требования к подсистеме Windows PowerShellWindows PowerShell engine requirements
Windows PowerShell 4.0 предназначен для обратной совместимости с Windows PowerShell 3.0 и Windows PowerShell 2.0.Windows PowerShell 4.0 is designed to be backwards compatible with Windows PowerShell 3.0 and Windows PowerShell 2.0. Командлеты, поставщики, оснастки, модули и сценарии, написанные для Windows PowerShell 2.0, выполняются и в Windows PowerShell 3.0, и в Windows PowerShell 4.0 без изменений.Cmdlets, providers, snap-ins, modules, and scripts written for Windows PowerShell 2.0 and Windows PowerShell 3.0 run unchanged in Windows PowerShell 4.0.
Однако из-за изменений в политике активации среды выполнения в Microsoft .NET Framework 4 основные программы Windows PowerShell, написанные для Windows PowerShell 2.0 и скомпилированные с помощью среды CLR 2.0, не могут выполняться без изменения в Windows PowerShell 3.0, которые компилируются в среде CLR 4.0.However, due to a change in the runtime activation policy in Microsoft .NET Framework 4, Windows PowerShell host programs that were written for Windows PowerShell 2.0 and compiled with Common Language Runtime (CLR) 2.0 can’t run without modification in Windows PowerShell 3.0, which is compiled with CLR 4.0.
Подсистеме Windows PowerShell 2.0 требуется Microsoft .NET Framework версии не ниже 2.0.50727.The Windows PowerShell 2.0 engine’s minimum requirement is Microsoft .NET Framework 2.0.50727. Этому требованию удовлетворяет Microsoft .NET Framework 3.5 с пакетом обновления 1 (SP1).This requirement is fulfilled by Microsoft .NET Framework 3.5 Service Pack 1. Этому требованию не удовлетворяет Microsoft .NET Framework 4 и более поздних версий.This requirement isn’t fulfilled by Microsoft .NET Framework 4 and later releases of Microsoft .NET Framework.
Дополнительные сведения о добавлении или установке подсистемы Windows PowerShell 2.0 и требуемых версий Microsoft .NET Framework см. в статье Установка подсистемы Windows PowerShell 2.0.For information about adding or installing the Windows PowerShell 2.0 engine, and adding or installing the required versions of the Microsoft .NET Framework, see Installing the Windows PowerShell 2.0 Engine. Дополнительные сведения о запуске подсистемы Windows PowerShell 2.0 см. в статье Запуск подсистемы Windows PowerShell 2.0.For information about starting the Windows PowerShell 2.0 engine, see Starting the Windows PowerShell 2.0 Engine.
Операторы сравнения
Ниже приведены операторы присваивания, поддерживаемые языком PowerShell.
Предположим, что целочисленная переменная A содержит 10, а переменная B содержит 20, тогда —
оператор | Описание | пример |
---|---|---|
экв (равно) | Сравнивает два значения, чтобы быть равными или нет. | A -eq B даст ложь |
ne (не равно) | Сравнивает два значения, чтобы быть не равным. | A -ne B даст правду |
GT (больше чем) | Сравнивает первое значение с большим, чем второе. | B -GT даст верный |
ge (больше или равно) | Сравнивает первое значение с большим или равным второму. | B -ge A даст истинное |
л (меньше чем) | Сравнивает первое значение, чтобы быть меньше, чем второе. | Б-л д даст ложь |
le (меньше или равно) | Сравнивает первое значение с меньшим или равным второму. | B -le A даст ложное |
ПараметрыParameters
Не присваивайте значения статически!Don’t statically assign values! Используйте параметры и переменные.Use parameters and variables. Когда дело доходит до именования параметров, по возможности используйте те же имена, что и у командлетов по умолчанию.When it comes to naming your parameters, use the same name as the default cmdlets for your parameter names whenever possible.
Почему в качестве имени параметра я использовал ComputerName, а не Computer, ServerName или Host?Why did I use ComputerName and not Computer, ServerName, or Host for my parameter name? Потому что я хотел, чтобы мои функции были стандартизированы как стандартные командлеты.It’s because I wanted my function standardized like the default cmdlets.
Я создам функцию, которая будет запрашивать все команды в системе и возвращать количество команд с конкретными именами параметров.I’ll create a function to query all of the commands on a system and return the number of them that have specific parameter names.
Как видно в приведенных ниже результатах, у 39 команд есть параметр ComputerName.As you can see in the results shown below, 39 commands that have a ComputerName parameter. Командлеты с такими параметрами, как Computer, ServerName, Host или Machine, не найдены.There aren’t any cmdlets that have parameters such as Computer, ServerName, Host, or Machine.
Кроме того, имена параметров рекомендуется указывать в том же регистре, что и имена командлетов по умолчанию.I also recommend using the same case for your parameter names as the default cmdlets. Используйте , а не .Use , not . В этом случае функции выглядят и работают как командлеты по умолчанию.This makes your functions look and feel like the default cmdlets. Это очень удобно для пользователей, уже знакомых с PowerShell.People who are already familiar with PowerShell will feel right at home.
Задание свойств службSetting Service Properties
Командлет изменяет свойства службы на локальном или удаленном компьютере.The cmdlet changes the properties of a service on a local or remote computer. Так как состояние службы является свойством, этот командлет можно использовать для запуска, остановки и приостановки службы.Because the service status is a property, you can use this cmdlet to start, stop, and suspend a service.
Командлет Set-Service также имеет параметр StartupType, позволяющий изменять тип запуска службы.The Set-Service cmdlet also has a StartupType parameter that lets you change the service startup type.
Чтобы использовать командлет в Windows Vista и более поздних версиях Windows, откройте среду Windows PowerShell, используя параметр «Запуск от имени администратора».To use on Windows Vista and later versions of Windows, open Windows PowerShell with the «Run as administrator» option.
Дополнительные сведения см. в статье о Set-Service.For more information, see Set-Service
Примеры методов массивов
Вот полный пример, показывающий операции над массивами с использованием его методов
$myList = @(0..4) write-host("Print array") $myList $myList = @(0..4) write-host("Assign values") $myList = 10 $myList
Это даст следующий результат —
Выход
Clear array Print array 0 1 2 3 4 Assign values 0 10 2 3 4
Powershell — Hashtables
Hashtable хранит пары ключ / значение в хеш-таблице. При использовании Hashtable вы указываете объект, который используется в качестве ключа, и значение, которое вы хотите связать с этим ключом. Обычно мы использовали строку или числа в качестве ключей.
В этом руководстве рассказывается, как объявлять хеш-таблицы, создавать хеш-таблицы и обрабатывать хеш-таблицы с помощью его методов.
Windows Server 2012 или Windows Server 2012 R2On Windows Server 2012 R2 and Windows Server 2012
Для добавления подсистемы Windows PowerShell 2.0 и компонентов Microsoft .NET Framework 3.5 используйте описанные ниже процедуры.Use the following procedures to add the Windows PowerShell 2.0 Engine and Microsoft .NET Framework 3.5 features. Подсистеме Windows PowerShell 2.0 требуется Microsoft .NET Framework версии не ниже 2.0.50727.The Windows PowerShell 2.0 Engine requires Microsoft .NET Framework 2.0.50727 at a minimum. Этому требованию удовлетворяет Microsoft .NET Framework 3.5.This requirement is fulfilled by Microsoft .NET Framework 3.5.
Добавление компонента .NET Framework 3.5To add the .NET Framework 3.5 feature
-
В меню Управление****диспетчера сервера выберите Добавить роли и компоненты.In Server Manager , from the Manage menu, select Add Roles and Features.
Можно также выбрать Все серверы в диспетчере сервера , щелкнуть имя сервера правой кнопкой мыши и выбрать Добавить роли и компоненты.Or in Server Manager , click All Servers , right-click a server name, and then select Add Roles and Features.
-
На странице Тип установки выберите Установка ролей или компонентов.On the Installation Type page, select Role-based or feature-based installation.
-
На странице Компоненты разверните узел Компоненты .NET Framework 3.5 и выберите команду .NET Framework 3.5 (включает .NET 2.0 и 3.0).On the Features page, expand the .NET 3.5 Framework Features node and select .NET Framework 3.5 (includes .NET 2.0 and 3.0).
Другие параметры в этом узле для подсистемы Windows PowerShell 2.0 не требуются.The other options under that node are not required for the Windows PowerShell 2.0 Engine.
Характеристики
-
Командлеты — Командлеты выполняют общие задачи системного администрирования, например, управление реестром, службами, процессами, журналами событий и использованием инструментария управления Windows (WMI).
-
Ориентация на задачи — язык сценариев PowerShell основан на задачах и обеспечивает поддержку существующих сценариев и инструментов командной строки.
-
Согласованный дизайн — поскольку командлеты и хранилища системных данных используют общий синтаксис и имеют общие соглашения об именах, обмен данными становится простым. Вывод одного командлета может быть передан другому командлету без каких-либо манипуляций.
-
Простота в использовании — упрощенная навигация на основе команд позволяет пользователям перемещаться по реестру и другим хранилищам данных, аналогичным навигации по файловой системе.
-
Основанный на объектах — PowerShell обладает мощными возможностями манипулирования объектами. Объекты могут быть отправлены в другие инструменты или базы данных напрямую.
-
Расширяемый интерфейс. — PowerShell можно настраивать, поскольку независимые поставщики программного обеспечения и корпоративные разработчики могут создавать собственные инструменты и утилиты, используя PowerShell для администрирования своего программного обеспечения.
Установка пакета MSIInstalling the MSI package
MSI-файл выглядит примерно так: .The MSI file looks like . Пример:For example:
После скачивания дважды щелкните установщик и следуйте инструкциям на экране.Once downloaded, double-click the installer and follow the prompts.
Программа установки создает ярлык в меню Windows «Пуск».The installer creates a shortcut in the Windows Start Menu.
- По умолчанию пакет устанавливается в каталог .By default the package is installed to
- Вы можете запустить PowerShell с помощью меню «Пуск» или файла .You can launch PowerShell via the Start Menu or
Примечание
PowerShell 7.1 устанавливается в новом каталоге и работает параллельно с Windows PowerShell 5.1.PowerShell 7.1 installs to a new directory and runs side-by-side with Windows PowerShell 5.1.
PowerShell 7.1 устанавливается как обновление на месте взамен PowerShell 6.xPowerShell 7.1 is an in-place upgrade that replaces PowerShell 6.x. или PowerShell 7.0.or PowerShell 7.0.
- PowerShell 7.1 устанавливается в папке .PowerShell 7.1 is installed to
- Папка добавляется в переменную .The folder is added to
- Папка удалена.The folder is deleted
Если вам нужно запустить PowerShell 7.1 параллельно с другими версиями, используйте метод , чтобы установить новую версию в другую папку.If you need to run PowerShell 7.1 side-by-side with other versions, use the method to install the other version to a different folder.
Установка администратором из командной строкиAdministrative install from the command line
MSI-пакеты можно устанавливать из командной строки, что позволяет администраторам развертывать их без взаимодействия с пользователем.MSI packages can be installed from the command line allowing administrators to deploy packages without user interaction. MSI-пакет включает в себя следующие свойства для управления параметрами установки:The MSI package includes the following properties to control the installation options:
- ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL. Это свойство позволяет добавлять пункт Открыть PowerShell в контекстное меню проводника.ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL — This property controls the option for adding the Open PowerShell item to the context menu in Windows Explorer.
- ENABLE_PSREMOTING. Это свойство позволяет включать удаленное взаимодействие PowerShell во время установки.ENABLE_PSREMOTING — This property controls the option for enabling PowerShell remoting during installation.
- REGISTER_MANIFEST. Это свойство позволяет регистрировать манифест ведения журнала событий Windows.REGISTER_MANIFEST — This property controls the option for registering the Windows Event Logging manifest.
В следующих примерах показано, как выполнить автоматическую установку PowerShell со всеми включенными параметрами.The following example shows how to silently install PowerShell with all the install options enabled.
Полный список параметров командной строки для см. здесь.For a full list of command-line options for , see Command line options.
Разделы реестра, созданные во время установкиRegistry keys created during installation
Начиная с версии PowerShell 7.1, пакет MSI создает разделы реестра, которые хранят данные о расположении установки и версии PowerShell.Beginning in PowerShell 7.1, the MSI package creates registry keys that store the installation location and version of PowerShell. Эти значения можно найти в разделе .These values are located in . Значение уникально для каждого типа сборки (выпуск или предварительная версия), основного номера версии и архитектуры.The value of is unique for each build type (release or preview), major version, and architecture.
ReleaseRelease | ArchitectureArchitecture | Ключ реестраRegistry Key |
---|---|---|
Выпуск версии 7.1.x7.1.x Release | x86x86 | |
Выпуск версии 7.1.x7.1.x Release | X64x64 | |
Предварительная версия 7.1.x7.1.x Preview | x86x86 | |
Предварительная версия 7.1.x7.1.x Preview | X64x64 |
Может использоваться администраторами и разработчиками для поиска пути к PowerShell.This can be used by administrators and developers to find the path to PowerShell. Значения будут одинаковыми для всех выпусков предварительных и дополнительных версий.The values will be the same for all preview and minor version releases. Значения отличаются для каждого выпуска основной версии.The values are changed for each major release.
Hyper
От рассмотренных нами выше аналогов командной строки терминал Hyper отличается не столько функциональностью, сколько настраиваемым дизайном и расширяемостью. Приложение основано на базе Electron с использованием языков HTML, CSS и JS, настройки хранит в конфигурационном файле, который нужно редактировать вручную.
Особенности терминала:
- Поддержка плагинов и тем оформления.
- Использование вкладок, разделение окна по вертикали и горизонтали.
- Полноэкранный режим работы и масштабирование текста.
- Копирование и вставка с помощью мыши.
- Поддержка команд PowerShell.
Для работы с некоторыми консольными утилитами Hyper нужно запускать с правами администратора. Так, если вы откроете терминал с правами обычного пользователя и вызовите утилиту diskpart, она запустится в классической командной строке.
Основной функционал Classic Shell
Программа разрабатывалась для того, чтобы в новых версиях Windows пользователь мог вернуть стандартное меню «Пуск», так как в Windows 8 его вообще нет. Однако функционал программы позволяет сделать намного больше, чем просто поменять интерфейс «Восьмёрки» или «Десятки» на интерфейс более ранних версий Windows.
- Classic Start Menu – элемент помогающий вернуть классический интерфейс меню «Пуск» либо изменить его под свои нужды;
- Classic Explorer – отвечает за настройку стандартного «Проводника» Windows;
- За настройку интерфейса Internet Explorer отвечает Classic IE;
- За постоянные обновления самой программы отвечает Classic Shell Update.
Установка Classic Shell
В процессе инсталляции программы нет ничего сложного. Дополнительно программа не предлагает вам установить какое-либо рекламное ПО. Единственное с чем вам придётся соглашаться во время установки – лицензионное соглашение. Итак, рассмотрим процесс установки по шагам:
Предварительные настройки программы
Когда установка завершена можно переходить непосредственно к настройкам меню «Пуск» и других элементов системы. Но для начала нужно выполнить некоторые настройки в интерфейсе самой программы:
- Кликните провой кнопкой мыши по меню «Пуск». Из контекстного меню выберите пункт «Настроить». Это запустит Classic Shell. Если данного пункта нет в контекстном меню, то программу придётся запускать вручную с «Рабочего стола».
- В открывшемся интерфейсе нужно выбрать вкладку «Language», что расположена в верхней части окна. Если этой вкладки нет, то поставьте галочку напротив пункта «Show all settings».
- В списке языков выберите «Русский».
- Однако изменения не применятся сразу же. Для этого придётся нажать на кнопку «Check for Updates».
- Затем кликните по текстовой ссылке «Click here to install it».
- Нажмите «Ок».
- Для применения настроек рекомендуется перезагрузить компьютер.
Настройка меню «Пуск»
Теперь можно переходить к настройке самого меню «Пуск»:
- Запустите Classic Shell, воспользовавшись контекстным меню или иконкой на «Рабочем столе».
- В верхнем меню откройте вкладку «Стиль меню «Пуск»».
- Вам будет представлено три основных стиля. Эти стили являются шаблонами и каждый из них может быть настроен при помощи дополнительных параметров. В данный момент выберите один из подходящих стилей.
- Можно изменить внешний вид кнопки «Пуск». Для этого поставьте галочку на соответствующий параметр в нижней части окна. Изначально представлено несколько стандартных вариантов внешнего вида кнопки, но вы можете добавить свои с компьютера, нажав на кнопку «Выбрать изображения…».
- В «Проводнике» выберите подходящее вам изображение и нажмите «Открыть».
- Теперь вернёмся к стилизации самого меню «Пуск». Чтобы изменить внешний вид стандартного шаблона, нажмите на текстовую ссылку «Выбрать обложку» или в верхних вкладках откройте «Обложка».
- Напротив параметра «Обложка» раскройте выпадающий список и выберите в нём тот вариант оформления, который вам больше нравится.
- В окне ниже можно задать дополнительные параметры отображения меню, используя галочки напротив тех или иных параметров. Изменения можно проследить, тыкая по кнопке «Пуска», так как они применяются мгновенно.
- Можно настроить элементы, отображаемые в меню. Для этого перейдите во вкладку «Особые элементы» и поставьте маркеры на нужных пунктах либо снимите с ненужных.
- Во вкладке «Настройка меню «Пуск»» можно произвести ещё более детальную настройку. Например, переместить одни элементы в другую колонку, сделав меню ещё более гибким.
- Дополнительно можно настроить параметры анимации, размеры значков, сглаживание шрифтов, скорость реакции на нажатие и т.д. Все эти параметры можно найти во вкладках «Общее поведение» или «Вид меню».
- Перед применением настроек можно сделать архивацию параметров, чтобы вернуться к ним. Для этого используйте выпадающее меню «Архивация параметров» напротив кнопки «Ок».
- Чтобы окончательно применить настройки в Classic Shell нажмите на кнопку «Ок». Перезагружать компьютер необязательно.
Основываясь на инструкциях из данной статьи, вы смогли понять, как работать с основным функционалом рассматриваемой программы. Также не стоит забывать, что программа предоставляет и дополнительные функции, изучить которые можно самостоятельно, если таковая необходимость возникнет.
Как вернуть окно команд в папке Windows 10
Если же Вы используете последнюю сборку операционной системы Windows 10 тогда пункт открыть окно команд контекстном меню папки отсутствует. Но пользователи после использования ниже описанного способа смогут вернуть открыть окно команд в контекстное меню. Перед использованием которого необходимо создать резервную копию реестра, чтобы всегда иметь возможность откатить изменения системы обратно.
- Открываем редактор реестра выполнив команду regedit в окне Win+R.
- Дальше переходим в следующее расположение: HKEY_CLASSES_ROOT\ Directory\ shell\ cmd.
- Нажмите правой кнопкой мыши на ветке cmd и выберите пункт Разрешения.
- В открывшемся окне достаточно нажать кнопку Дополнительно.
- Теперь напротив пункта Владелец TrustedInstaller нажимаем кнопку Изменить.
- Потом указываем своего пользователя в пункте выбора имен выбираемых объектов, и нажимаем кнопку Проверить имена и ОК.
- Дальше в окне дополнительных параметров безопасности отмечаем пункты Заменить владельца подконтейнеров и объектов и Заменить все записи разрешений дочернего объекта наследуемыми от этого объекта, и нажимаем ОК.
- В окне разрешений для группы cmd выбираем группу пользователей Администраторы и отмечаем пункт Разрешить полный доступ.
- Последним шагом необходимо в текущем расположении реестра переименовать параметр HideBasedOnVelocityId добавив любой символ в начале имени.
После переименования параметра HideBasedOnVelocityId появится возможность выбрать пункт открыть окно команд даже без необходимости перезапуска Проводника Windows 10. Многие опытные пользователи рекомендуют просто удалять текущий параметр, чего делать однозначно не стоит, особенно если Вы не любитель создания резервных копий реестра и системы в целом. Похожий способ мы использовали в статье: Вам отказано в доступе к этой папке Windows 10.
Запуск удаленного сеанса с помощью подсистемы Windows PowerShell 2.0How to start a remote session with the Windows PowerShell 2.0 Engine
Чтобы запустить подсистему Windows PowerShell 2.0 в удаленном сеансе, создайте конфигурацию сеанса (которая также называется конечной точкой ) на удаленном компьютере, которая загружает подсистему Windows PowerShell 2.0.To run the Windows PowerShell 2.0 Engine in a remote session, create a session configuration (also known as an endpoint ) on the remote computer that loads the Windows PowerShell 2.0 Engine. Конфигурация сеанса сохраняется на удаленном компьютере; любой авторизованный пользователь может использовать ее для создания сеансов на основе Windows PowerShell 2.0.The session configuration is saved on the remote computer and can be used by any authorized user to create sessions that use the Windows PowerShell 2.0 Engine.
Это сложная задача, которая обычно выполняется системным администратором.This is an advanced task that is typically performed by a system administrator.
Следующая процедура использует параметр PSVersion командлета Register-PSSessionConfiguration для создания конфигурации сеанса с подсистемой Windows PowerShell 2.0.The following procedure uses the PSVersion parameter of the Register-PSSessionConfiguration cmdlet to create a session configuration that uses the Windows PowerShell 2.0 Engine. Можно также использовать параметр PowerShellVersion командлета New-PSSessionConfigurationFile, чтобы создать файл конфигурации для сеанса, который загружает подсистему Windows PowerShell 2.0, и параметр PSVersion командлета Set-PSSessionConfiguration, чтобы изменить конфигурацию сеанса для использования подсистемы Windows PowerShell 2.0.You can also use the PowerShellVersion parameter of the New-PSSessionConfigurationFile cmdlet to create a session configuration file for a session that loads the Windows PowerShell 2.0 Engine and you can use the PSVersion parameter of the Set-PSSessionConfiguration parameter to change a session configuration to use the Windows PowerShell 2.0 Engine.
Дополнительные сведения о файлах конфигураций сеансов см. в разделе about_Session_Configuration_Files.For more information about session configuration files, see about_Session_Configuration_Files.
Дополнительные сведения о конфигурациях сеансов см. в разделе about_Session_Configurations.For information about session configurations, including setup and security, see about_Session_Configurations.
Инструментарий управления Windows 3.0Windows Management Instrumentation 3.0
Windows PowerShell 3.0 и Windows PowerShell 4.0 требуют инструментарий управления Windows (WMI) 3.0.Windows PowerShell 3.0 and Windows PowerShell 4.0 require Windows Management Instrumentation 3.0 (WMI). Эта программа входит в Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows Management Framework 4.0 и Windows Management Framework 3.0.This program is included in Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows Management Framework 4.0, and Windows Management Framework 3.0. Если эта программа не установлена на компьютере, компоненты, нуждающиеся в инструментарии WMI, например команды CIM, не выполняются.If this program isn’t installed on the computer, features that require WMI, such as CIM commands, don’t run.
PowerShell включает конвейерPowerShell has a pipeline
Пожалуй, конвейеры являются наиболее полезной концепцией в интерфейсах командной строки.Pipelines are arguably the most valuable concept used in command-line interfaces. При правильном использовании конвейеры упрощают работу со сложными командами и отслеживание потока выполнения.When used properly, pipelines reduce the effort of using complex commands and make it easier to see the flow of work. Каждая команда в конвейере передает свои выходные данные, элемент за элементом, следующей команде.Each command in a pipeline passes its output, item by item, to the next command. Команды обрабатывают только один объект за раз.Commands don’t have to handle more than one item at a time. Это снижает потребление ресурсов и позволяет получать выходные данные немедленно.The result is reduced resource consumption and the ability to get output immediately.
Эта нотация конвейера похожа на нотацию, которая используется в других оболочках.The notation used for pipelines is similar to the notation used in other shells. На первый взгляд не совсем понятно, чем отличаются конвейеры в PowerShell.At first glance, it may not be apparent how pipelines are different in PowerShell. Хотя вы видите на экране текст, PowerShell передает по конвейеру между командами не текст, а объекты.Although you see text on the screen, PowerShell pipes objects, not text, between commands.
Например, вы можете использовать командлет для принудительного постраничного отображения выходных данных из другой команды. На экране эти данные будут показаны как обычный текст, разбитый на страницы:For example, if you use the cmdlet to force a page-by-page display of output from another command, the output looks just like the normal text displayed on the screen, broken up into pages:
Разбиение на страницы также снижает потребление ресурсов ЦП, так обработку продолжает командлет , когда он получает всю страницу для отображения.Paging also reduces CPU utilization because processing transfers to the cmdlet when it has a complete page ready to display. Командлет, стоящий в конвейере выше, приостанавливает выполнение, пока не будет готова следующая страница выходных данных.The cmdlets that precede it in the pipeline pause execution until the next page of output is available.
Объекты в конвейереObjects in the pipeline
При запуске командлета в PowerShell вы видите выходные данные в виде текста — именно так в окне консоли и должны отображаться объекты.When you run a cmdlet in PowerShell, you see text output because it is necessary to represent objects as text in a console window. В текстовом представлении могут отображаться не все свойства выводимого объекта.The text output may not display all of the properties of the object being output.
Например, рассмотрим командлет .For example, consider the cmdlet. Эти выходные данные в виде текста содержат сводную информацию, а не полное представление объекта, возвращаемого командлетом .The text output is a summary of information, not a complete representation of the object returned by . Процесс, который форматирует данные для отображения на экране, добавляет к выходным данным заголовок.The heading in the output is added by the process that formats the data for onscreen display.
При передаче выходных данных по конвейеру в командлет отображаются сведения об объекте, возвращаемом .Piping the output to the cmdlet displays information about the object returned by .
Командлет возвращает объект PathInfo , который содержит текущий путь и другие сведения. returns a PathInfo object that contains the current path and other information.
Расширенные функцииAdvanced Functions
Функцию в PowerShell можно легко преобразовать в расширенную.Turning a function in PowerShell into an advanced function is really simple. Одно из различий между функцией и расширенной функцией заключается в том, что расширенные функции имеют ряд общих параметров, которые добавляются в функцию автоматически.One of the differences between a function and an advanced function is that advanced functions have a number of common parameters that are added to the function automatically. К этим общим параметрам относятся такие параметры, как Verbose и Debug.These common parameters include parameters such as Verbose and Debug.
Я начну с функции , которая использовалась в предыдущем разделе.I’ll start out with the function that was used in the previous section.
Хочу обратить ваше внимание на то, что функция не имеет общих параметров.What I want you to notice is that the function doesn’t have any common parameters. Существует несколько различных способов просмотра общих параметров.There are a couple of different ways to see the common parameters
Один из них — просмотр синтаксиса с помощью .One is by viewing the syntax using .
Другой — детализация параметров с помощью .Another is to drill down into the parameters with .
Добавьте , чтобы преобразовать функцию в расширенную.Add to turn the function into an advanced function.
При добавлении общие параметры добавляются автоматически.Adding adds the common parameters automatically. Для требуется блок , но блок может быть пустым. requires a block, but the block can be empty.
Если выполнить детализацию параметров с помощью , можно увидеть имена параметров, включая общие параметры.Drilling down into the parameters with shows the actual parameter names including the common ones.