¿Qué es PowerShell?
- 05/22/2020
- 5 minutos de lectura
-
- j
- s
- s
PowerShell es un framework de gestión de configuración y automatización de tareas multiplataforma, que consiste en un shell de línea de comandos y un lenguaje de scripting. A diferencia de la mayoría de los shells, que aceptan y devuelven texto,PowerShell se construye sobre el tiempo de ejecución de lenguaje común (CLR) de .NET, y acepta y devuelve.NETobjects., Este cambio fundamental trae herramientas y métodos completamente nuevos para la automatización.
la salida está basada en objetos
a diferencia de las interfaces de línea de comandos tradicionales, los cmdlets de PowerShell están diseñados para objects.An objeto es información estructurada que es más que solo la cadena de caracteres que aparecen en la pantalla. La salida del comando siempre lleva información adicional que puede usar si la necesita.
si ha utilizado herramientas de procesamiento de texto para procesar datos en el pasado, descubrirá que se comportan de manera diferente cuando se usan en PowerShell., En la mayoría de los casos, no necesita herramientas de procesamiento de texto para extraer información específica. Puede acceder directamente a partes de los datos mediante objectsyntax estándar de PowerShell.
la familia de comandos es extensible
Las Interfaces como cmd.exe
no proporcionan una forma de extender directamente el conjunto de comandos integrado. Puede crear herramientas de línea de comandos externas que se ejecuten en cmd.exe
. Pero estas herramientas externas no tienen servicios, como la integración de ayuda. cmd.exe
no sabe automáticamente que estas herramientas externas son comandos válidos.,
los comandos de PowerShell se conocen como cmdlets. Puede usar cada cmdlet por separado, pero su potencia se obtiene cuando los combina para realizar tareas complejas. Como muchos shells, PowerShell le da acceso al sistema de archivos en el ordenador. Los proveedores de PowerShell le permiten acceder a otros almacenes de datos, como el registro y los almacenes de certificados, tan fácilmente como accede al sistema de archivos.
Puede crear su propio cmdlet y módulos de funciones mediante código compilado o scripts. Los módulos pueden agregar cmdlets y proveedores al shell., PowerShell también admite scripts que son análogos a los scripts de UNIXshell y cmd.exe
archivos por lotes.
compatibilidad con alias de comandos
PowerShell admite alias para hacer referencia a comandos por nombres alternativos. El alias permite a los usuarios con experiencia en otros shells usar nombres de comandos comunes que ya conocen para operaciones similares en PowerShell.
Aliasing asocia un nuevo nombre con otro comando. Por ejemplo, PowerShell tiene una función interna llamada Clear-Host
que borra la ventana de salida., Puede escribir la etiqueta cls
oclear
alias en un símbolo del sistema. PowerShell interpreta estos alias y ejecuta la funciónClear-Host
.
esta función ayuda a los usuarios a aprender PowerShell. En primer lugar, la mayoría de los cmd.exe
y los usuarios de Unix tienen un gran repertorio de comandos que los usuarios ya conocen por su nombre. Es posible que los equivalentes de PowerShell no produzcan resultados lógicos. Sin embargo, los resultados son lo suficientemente cercanos como para que los usuarios puedan trabajar sin conocer el nombre del comando PowerShell., La «memoria muscular» es otra fuente importante de frustración cuando se aprende un nuevo armazón de comando. Si ha utilizado cmd.exe
durante años, puede escribir reflexivamente el comandocls
para limpiar la pantalla. Sin el alias de Clear-Host
, recibirá un mensaje de error y no sabrá qué hacer para borrar la salida.
PowerShell maneja la entrada de consola y la pantalla
Cuando se escribe un comando, PowerShell siempre procesa la entrada de línea de comandos directamente. PowerShell también formatea la salida que ves en la pantalla., Esta diferencia es significativa porque reduce el trabajo requerido de cada cmdlet. Garantiza que siempre puede hacer las cosas de la misma manera con cualquier cmdlet. Los desarrolladores de cmdlets no necesitan escribir código para analizar los argumentos de la línea de comandos o formatear el resultado.
Las herramientas tradicionales de línea de comandos tienen sus propios esquemas para solicitar y mostrar ayuda. Algunas herramientas de línea de comandos usan /?
para activar la pantalla de ayuda; otras usan -?
, /H
, o incluso//
., Algunos mostrarán la ayuda en una ventana GUI, en lugar de en la pantalla de la consola. Si usa el parámetro wrong, la herramienta podría ignorar lo que escribió y comenzar a ejecutar una tarea automáticamente.Dado que PowerShell analiza y procesa automáticamente la línea de comandos, el parámetro -?
siempre significa «show Me Help for this command».
Nota
si ejecuta una aplicación gráfica en PowerShell, se abrirá la ventana de la aplicación.PowerShell solo interviene cuando se procesa la entrada de línea de comandos que se proporciona o la salida de aplicación devuelta a la ventana de la consola., No afecta el funcionamiento interno de la aplicación.
PowerShell tiene una canalización
las canalizaciones son posiblemente el concepto más valioso utilizado en las interfaces de línea de comandos. Cuando se utilizan correctamente, las canalizaciones reducen el esfuerzo de usar comandos complejos y facilitan la visualización del flujo de trabajo. Cada comando de una canalización pasa su salida, elemento por elemento, al siguiente comando. Los comandos no tienen que manejar más de un elemento a la vez. El resultado es una reducción del consumo de recursos y la capacidad de obtener resultados inmediatamente.,
la notación usada para pipelines es similar a la notación usada en otros shells. A primera vista, puede no ser evidente cómo las canalizaciones son diferentes en PowerShell. Aunque vea texto en la pantalla,PowerShell canaliza objetos, no texto, entre los comandos.,
por ejemplo, si utiliza el cmdlet Out-Host
para forzar una visualización página por página de la salida de otro comando, la salida se ve igual que el texto normal que se muestra en la pantalla, dividido en páginas:
Get-ChildItem | Out-Host -Paging
la paginación también reduce la utilización de la CPU porque 8587d067a1″> cmdlet cuando tiene una página completa lista para mostrar. Los cmdlets que lo preceden en la canalización pause executionuntil que la siguiente página de salida esté disponible.,
objetos de la canalización
cuando se ejecuta un cmdlet en PowerShell, se ve el resultado de texto porque es necesario representar objetos como texto en una ventana de consola. Es posible que el texto de salida no muestre todas las propiedades del objeto de salida.
por ejemplo, considere el cmdlet Get-Location
. La salida de texto es un resumen de la información, no una representación completa del objeto devuelto por Get-Location
. El encabezado en la salida se agrega por el proceso que formatea los datos para su visualización en pantalla.,
Get-Location
Path----C:\
la Tubería de la salida a la etiqueta Get-Member
cmdlet muestra información sobre el objeto que devuelveGet-Location
.
Get-Location | Get-Member
Get-Location
devuelve un objeto PathInfo que contiene la ruta actual y otra información.
sistema de ayuda integrado
Similar a las páginas Unixman
, PowerShell incluye artículos de ayuda detallados que explican los conceptos de PowerShell y la sintaxis de comandos., Utilice el cmdlet Get-Help para mostrar estos artículos en commandprompt o ver las versiones actualizadas más recientes de estos artículos en PowerShell documentationonline.
para obtener más información sobre PowerShell, consulte la sección Aprendizaje de PowerShell de este sitio.