PowerShellPowerShell

PowerShell, basado en .NET Framework, es un lenguaje de scripting y shell de línea de comandos basado en tareas. Está diseñado específicamente para que los administradores del sistema y los usuarios avanzados automaticen rápidamente la administración de varios sistemas operativos (Linux, macOS, Unix y Windows) y los procesos relacionados con las aplicaciones que se ejecutan en dichos sistemas operativos.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 es de código abiertoPowerShell is open source

El código fuente base de PowerShell ahora está disponible en GitHub y admite las contribuciones de la comunidad.PowerShell base source code is now available in GitHub and open to community contributions. Vea el código de PowerShell en GitHub.See PowerShell source on GitHub.

Puede empezar con los fragmentos que necesita en Get PowerShell (Obtener PowerShell)You can start with the bits you need at get PowerShell. o, si lo prefiere, con el paseo introductorio incluido en esta introducción.Or, perhaps, with a quick tour at Getting Started

Objetivos de diseño de PowerShellPowerShell design goals

Windows PowerShell está diseñado para mejorar el entorno de scripting y línea de comandos mediante la eliminación de antiguos problemas y la adición de nuevas características.Windows PowerShell is designed to improve the command-line and scripting environment by eliminating long-standing problems and adding new features.

DetectabilidadDiscoverability

Windows PowerShell facilita la detección de sus características.Windows PowerShell makes it easy to discover its features. Por ejemplo, para buscar una lista de cmdlets con la finalidad de ver y cambiar los servicios de Windows, escriba:For example, to find a list of cmdlets that view and change Windows services, type:

Get-Command *-Service

Después de detectar qué cmdlet lleva a cabo una tarea, puede obtener más información sobre este mediante el cmdlet Get-Help.After discovering which cmdlet accomplishes a task, you can learn more about the cmdlet by using the Get-Help cmdlet. Por ejemplo, para mostrar la ayuda sobre el cmdlet Get-Service, escriba:For example, to display help about the Get-Service cmdlet, type:

Get-Help Get-Service

La mayoría de los cmdlets emiten objetos que se pueden manipular y después representar en texto para mostrar.Most cmdlets emit objects which can be manipulated and then rendered into text for display. Para comprender la salida de ese cmdlet, canalice su salida al cmdlet Get-Member.To fully understand the output of that cmdlet, pipe its output to the Get-Member cmdlet. Por ejemplo, el siguiente comando muestra información sobre los miembros de la salida del objeto mediante el 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

La administración de sistemas puede ser una tarea muy compleja y las herramientas con una interfaz coherente ayudan a controlar esa complejidad inherente.Managing systems can be a complex endeavor and tools that have a consistent interface help to control the inherent complexity. Lamentablemente, ni las herramientas de línea de comandos ni los objetos COM que permiten ejecutar scripts son famosos por su coherencia.Unfortunately, neither command-line tools nor scriptable COM objects have been known for their consistency.

La coherencia de Windows PowerShell es uno de sus activos principales.The consistency of Windows PowerShell is one of its primary assets. Por ejemplo, si sabe cómo usar el cmdlet Sort-Object, puede usar ese conocimiento para ordenar la salida de cualquier cmdlet.For example, if you learn how to use the Sort-Object cmdlet, you can use that knowledge to sort the output of any cmdlet. No es necesario obtener información sobre las distintas rutinas de ordenación de cada cmdlet.You do not have to learn the different sorting routines of each cmdlet.

Además, los desarrolladores de cmdlets no tienen que diseñar características de ordenación para sus cmdlets.In addition, cmdlet developers do not have to design sorting features for their cmdlets. Windows PowerShell les proporciona un marco que proporciona las características básicas y les obliga a ser coherentes en muchos aspectos de la interfaz.Windows PowerShell gives them a framework that provides the basic features and forces them to be consistent about many aspects of the interface. El marco elimina algunas de las opciones que se suelen dejar al desarrollador, pero a cambio simplifica el desarrollo de cmdlets sólidos y fáciles de usar.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.

Entornos interactivo y de scriptingInteractive and Scripting Environments

Windows PowerShell es un entorno interactivo y de scripting combinado que ofrece acceso a las herramientas de línea de comandos y a los objetos COM, y que permite aprovechar la eficacia de la biblioteca de clases .NET Framework (FCL).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).

Este entorno mejora en el Símbolo del sistema de Windows, que proporciona un entorno interactivo con varias herramientas de línea de comandos.This environment improves upon the Windows Command Prompt, which provides an interactive environment with multiple command-line tools. También mejora en los scripts de Windows Script Host (WSH), que permiten usar varias herramientas de línea de comandos y objetos de automatización COM, pero no proporcionan un entorno interactivo.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.

Al combinar el acceso a todas estas características, Windows PowerShell amplía la capacidad del usuario interactivo y el escritor de scripts, y facilita la administración del sistema.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.

Orientación a objetosObject Orientation

Aunque interactúa con Windows PowerShell escribiendo comandos de texto, Windows PowerShell se basa en objetos, no en texto.Although you interact with Windows PowerShell by typing commands in text, Windows PowerShell is based on objects, not text. La salida de un comando es un objeto.The output of a command is an object. Puede enviar el objeto de salida a otro comando como entrada.You can send the output object to another command as its input. Como resultado, Windows PowerShell proporciona una interfaz conocida a usuarios que tienen experiencia con otros shells, a la vez que introduce un paradigma de línea de comandos nuevo y eficaz.As a result, Windows PowerShell provides a familiar interface to people experienced with other shells, while introducing a new and powerful command-line paradigm. Amplía el concepto de envío de datos entre comandos, ya que permite enviar objetos, en lugar de texto.It extends the concept of sending data between commands by enabling you to send objects, rather than text.

Transición sencilla al scriptingEasy Transition to Scripting

Windows PowerShell facilita la transición de la escritura interactiva de comandos a la creación y ejecución de scripts.Windows PowerShell makes it easy to transition from typing commands interactively to creating and running scripts. Puede escribir comandos en el símbolo del sistema de Windows PowerShell para detectar los comandos que realizan una tarea.You can type commands at the Windows PowerShell command prompt to discover the commands that perform a task. A continuación, puede guardar esos comandos en una transcripción o un historial antes de copiarlos en un archivo para su uso como un script.Then, you can save those commands in a transcript or a history before copying them to a file for use as a script.