PowerShellPowerShell

PowerShell — это оболочка командной строки на основе задач, созданная на базе .NET Framework, с языком сценариев. Она позволяет системным администраторам и опытным пользователям быстро автоматизировать администрирование различных операционных систем (Linux, macOS, Unix и Windows) и процессов, связанных с работающими в этих операционных системах приложениями.Built on the .NET Framework, PowerShell is a task-based command-line shell and scripting language; it is designed specifically for system administrators and power-users, to rapidly automate the administration of multiple operating systems (Linux, macOS, Unix, and Windows) and the processes related to the applications that run on those operating systems.

Исходный код 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

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

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

Windows PowerShell упрощает обнаружение своих возможностей.Windows 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 emit objects which can be manipulated and then rendered into text for display. Чтобы полностью понять выходные данные этого командлета, передайте их в командлет Get-Member.To fully understand the output of that cmdlet, pipe its 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 endeavor and tools that have a consistent interface help to control the inherent complexity. К сожалению, согласованность не обеспечивают ни программы командной строки, ни COM-объекты сценариев.Unfortunately, neither command-line tools nor scriptable COM objects have been known for their consistency.

Согласованность Windows PowerShell является одним из его важнейших преимуществ.The consistency of Windows 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 do not have to learn the different sorting routines of each cmdlet.

Кроме того, разработчикам командлетов не нужно проектировать возможности сортировки для своих командлетов.In addition, cmdlet developers do not have to design sorting features for their cmdlets. Windows PowerShell дает им платформу, которая предоставляет основные возможности и обеспечивает соответствие по многим аспектам интерфейса.Windows PowerShell gives them a framework that provides the basic features and forces them to be consistent about many aspects of the interface. Платформа частично лишает разработчиков свободы выбора, а взамен существенно упрощает разработку удобных и надежных командлетов.The framework eliminates some of the choices that are typically left to the developer, but, in return, it makes the development of robust and easy-to-use cmdlets much simpler.

Интерактивные среды и среды сценариевInteractive and Scripting Environments

Windows PowerShell — это объединенная интерактивная среда сценариев, которая предоставляет доступ к программам командной строки и COM-объектам, а также позволяет использовать возможности библиотеки классов .NET Framework.Windows PowerShell is a combined interactive and scripting environment that gives you access to command-line tools and COM objects, and also enables you to use the power of the .NET Framework Class Library (FCL).

Эта среда улучшает работу с командной строкой Windows, которая предоставляет интерактивную среду с несколькими программами командной строки.This environment improves upon the Windows Command Prompt, which provides an interactive environment with multiple command-line tools. Она также улучшает работу сценариев сервера сценариев Windows, которые позволяют использовать несколько программ командной строки и COM-объекты автоматизации, но не предоставляют интерактивную среду.It also improves upon Windows Script Host (WSH) scripts, which let you use multiple command-line tools and COM automation objects, but do not provide an interactive environment.

Объединяя доступ ко всем этим функциям, Windows PowerShell расширяет возможности интерактивного пользователя и разработчика сценариев, а также упрощает администрирование системы.By combining access to all of these features, Windows PowerShell extends the ability of the interactive user and the script writer, and makes system administration more manageable.

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

Хотя для взаимодействия с Windows PowerShell используются команды в текстовой форме, Windows PowerShell основан на объектах, а не тексте.Although you interact with Windows PowerShell by typing commands in text, Windows PowerShell is based on objects, not text. Выходные данные команды — это объект.The output of a command is an object. Его можно отправить в другую команду в качестве входных данных.You can send the output object to another command as its input. В результате Windows PowerShell предлагает привычный интерфейс для пользователей, знакомых с другими оболочками, а также представляет новую и эффективную концепцию командной строки.As a result, Windows PowerShell provides a familiar interface to people experienced with other shells, while introducing a new and powerful command-line paradigm. Он расширяет возможности передачи данных между командами, позволяя отправлять объекты, а не текст.It extends the concept of sending data between commands by enabling you to send objects, rather than text.

Легкий переход к сценариямEasy Transition to Scripting

Windows PowerShell облегчает переход от интерактивного ввода команд к созданию и выполнению сценариев.Windows PowerShell makes it easy to transition from typing commands interactively to creating and running scripts. Можно ввести команды в командной строке Windows PowerShell, чтобы найти команды, выполняющие какую-либо задачу.You can type commands at the Windows PowerShell command prompt to discover the commands that perform a task. Затем эти команды можно сохранить в записи или журнале, прежде чем скопировать их в файл для использования в качестве сценария.Then, you can save those commands in a transcript or a history before copying them to a file for use as a script.