PowerShellPowerShell

PowerShell — это оболочка командной строки с поддержкой задач и язык скриптов на основе .NET.PowerShell is a task-based command-line shell and scripting language built on .NET. PowerShell позволяет системным администраторам и опытным пользователям быстро автоматизировать задачи для управления процессами и операционными системами (Linux, macOS и Windows).PowerShell helps system administrators and power-users rapidly automate tasks that manage operating systems (Linux, macOS, and Windows) and processes.

Команды PowerShell позволяют управлять компьютерами из командной строки.PowerShell commands let you manage computers from the command line. При использовании поставщиков PowerShell доступ к хранилищам данных, таким как реестр и хранилище сертификатов, становится таким же простым, как и доступ к файловой системе.PowerShell providers let you access data stores, such as the registry and certificate store, as easily as you access the file system. PowerShell включает многофункциональное средство синтаксического анализа выражений и полностью разработанный язык скриптов.PowerShell includes a rich expression parser and a fully developed scripting language.

Исходный код PowerShell является открытымPowerShell is open-source

Базовый исходный код PowerShell теперь доступен в GitHub, и участники сообщества могут вносить в него свои дополнения.PowerShell base source code is now available in GitHub and open to community contributions. См. Код PowerShell в GitHub.See PowerShell source on GitHub.

Вы можете начать с нужных вам элементов в руководстве по получению PowerShell.You can start with the bits you need at Get PowerShell. Или же с краткого обзора в разделе Приступая к работе.Or, perhaps, with a quick tour at Getting Started.

Задачи при проектировании сценариев PowerShellPowerShell design goals

PowerShell помогает улучшить среду командной строки и сценариев за счет устранения застарелых проблем и добавления новых функций.PowerShell is designed to improve the command-line and scripting environment by eliminating long-standing problems and adding new features.

Возможность обнаруженияDiscoverability

В PowerShell можно легко получить представление о предоставляемых возможностях.PowerShell makes it easy to discover its features. Например, чтобы получить список командлетов для просмотра и изменения служб Windows, введите следующее:For example, to find a list of cmdlets that view and change Windows services, type:

Get-Command *-Service

Узнав, какой командлет выполняет задачу, можно получить дополнительные сведения о нем с помощью командлета Get-Help.After discovering which cmdlet accomplishes a task, you can learn more about the cmdlet by using the Get-Help cmdlet. Например, для отображения справки по командлету Get-Service введите:For example, to display help about the Get-Service cmdlet, type:

Get-Help Get-Service

Большинство командлетов возвращают объекты, которые могут быть обработаны и преобразованы как текст для просмотра.Most cmdlets return objects that can be manipulated and then rendered as text for display. Чтобы проанализировать выходные данные этого командлета, передайте их в командлет Get-Member.To fully understand the output of a cmdlet, pipe the output to the Get-Member cmdlet. Например, следующая команда отображает сведения об элементах выходных данных объекта с помощью командлета Get-Service.For example, the following command displays information about the members of the object output by the Get-Service cmdlet.

Get-Service | Get-Member

ConsistencyConsistency

Управление системами может быть непростой задачей.Managing systems can be a complex task. Средства с согласованным интерфейсом помогают справляться с такими трудностями.Tools that have a consistent interface help to control the inherent complexity. К сожалению, программы командной строки и COM-объекты с поддержкой скриптов не обеспечивают согласованность.Unfortunately, command-line tools and scriptable COM objects aren't known for their consistency.

Согласованность возможностей PowerShell является одним его из важнейших преимуществ.The consistency of PowerShell is one of its primary assets. Например, если вы научитесь использовать командлет Sort-Object, эти знания можно применить для сортировки выходных данных любого командлета.For example, if you learn how to use the Sort-Object cmdlet, you can use that knowledge to sort the output of any cmdlet. Вам не нужно изучать разные процедуры сортировки для каждого командлета.You don't have to learn the different sorting routines of each cmdlet.

Кроме того, разработчикам командлетов не нужно создавать функции сортировки для своих командлетов.Additionally, cmdlet developers don't have to design sorting features for their cmdlets. PowerShell предоставляет платформу с базовыми функциями, которая принудительно обеспечивает согласованность.PowerShell provides a framework with the basic features that forces consistency. Эта платформа исключает некоторые функции для разработчика,The framework eliminates some choices that are left to the developer. но при этом она значительно упрощает разработку командлетов.But, in return, it makes the development of cmdlets much simpler.

Интерактивные среды и среды скриптовInteractive and scripting environments

В командной строке Windows предоставляется интерактивная оболочка с доступом к программам командной строки и основным скриптам.The Windows Command Prompt provides an interactive shell with access to command-line tools and basic scripting. Сервер скриптов Windows (WHS) предоставляет программы командной строки и COM-объекты автоматизации с поддержкой скриптов, но не интерактивную оболочку.Windows Script Host (WSH) has scriptable command-line tools and COM automation objects, but doesn't provide an interactive shell.

PowerShell объединяет интерактивную оболочку и среду скриптов.PowerShell combines an interactive shell and a scripting environment. PowerShell может обращаться к программам командной строки, COM-объектам и библиотекам класса .NET.PowerShell can access command-line tools, COM objects, and .NET class libraries. Такое сочетание функций расширяет возможности интерактивного пользователя, разработчика скриптов и системного администратора.This combination of features extends the capabilities of the interactive user, the script writer, and the system administrator.

Ориентация на объектыObject orientation

Основой PowerShell является объект, а не текст.PowerShell is based on object not text. Выходные данные команды — это объект.The output of a command is an object. С помощью конвейера выходной объект можно отправить в другую команду в качестве входных данных.You can send the output object, through the pipeline, to another command as its input.

Этот конвейер предлагает привычный интерфейс для людей, у которых есть опыт работы с другими оболочками.This pipeline provides a familiar interface for people experienced with other shells. PowerShell расширяет эту концепцию, отправляя объекты, а не текст.PowerShell extends this concept by sending objects rather than text.

Легкий переход к скриптамEasy transition to scripting

Возможность обнаружения команд PowerShell упрощает переход от интерактивного ввода команд к созданию и выполнению скриптов.PowerShell's command discoverability makes it easy to transition from typing commands interactively to creating and running scripts. Журнал и записи PowerShell упрощают копирование команд в файл для использования в качестве скрипта.PowerShell transcripts and history make it easy to copy commands to a file for use as a script.