# PowerShell/Introducción

Esta lección presenta a Windows PowerShell mediante un acercamiento al entorno de PowerShell. Las actividades incluyen PowerShell, PowerShell ISE, y los comandos o cmdlets Get-Host, Get-Help y Update-Help.

## Objetivos y habilidades

Una vez completada esta lección, será capaz de:
* Explicar los conceptos básicos de Windows PowerShell.
* Describir los recursos disponibles de Microsoft para aprender Windows PowerShell.
* Iniciar los programas Windows PowerShell y PowerShell ISE.
* Ejecutar el comando Get-Host en Windows PowerShell y Windows PowerShell ISE.
* Obtener y actualizar la ayuda en Windows PowerShell.

## Lecturas

* PowerShell (en Wikipedia)
* .NET Framework (en Wikipedia)
* Primeros pasos con Windows PowerShell (en Microsoft Technet)

## Multimedios

* PowerShell: Introducción y Tutorial de Scripting (en YouTube)

## Ejemplos
### Get-Help

El comando Get-Help muestra información sobre los comandos y conceptos de Windows PowerShell.

### Get-Host

El comando Get-Host obtiene un objeto que contiene el programa anfitrión actual (ConsoleHost o Windows PowerShell ISE Host), la versión de Windows PowerShell y la configuración regional actual.

### Update-Help

El comando Update-Help descarga e instala los archivos de ayuda más nuevos en tu equipo.

## Actividades

* Visita Microsoft: Windows PowerShell. Identifica los distintos recursos a disposición para aprender y usar PowerShell, y las versiones distintas de PowerShell disponibles para descargar.
* Visita Microsoft TechNet: What's New in Windows PowerShell. Averigua si tienes instalada la versión más reciente de Windows PowerShell. Si no es así, considera descargar e instalar la versión actual. Para este curso debería usarse como mínimo la versión 3.0. Mira el video YouTube: Update PowerShell si necesitas ayuda para actualizar PowerShell.
* Revisa Microsoft MSDN: Starting Windows PowerShell. Inicia PowerShell, luego inicia PowerShell ISE, y finalmente compara los dos entornos de PowerShell.
* Lee Microsoft TechNet: Using the Get-Host Cmdlet. Ejecuta el comando Get-Host en PowerShell y PowerShell ISE. Observa las diferencias entre ambos entornos. Verifica qué versión de Windows PowerShell está instalada.
* Lee Microsoft TechNet: Understanding and Using Updatable PowerShell Help. Ejecuta PowerShell como administraddor y luego ejecuta el comando Update-Help para asegurarse de tener instalada la última versión de los archivos de ayuda.
* Lee Microsoft TechNet: Using the Get-Help Cmdlet. Usa el comando Get-Help para aprender más acerca del comando Get-Host:
    Get-Help Get-Host
* Visita Microsoft: Windows PowerShell Quick Reference. Descarga la guía de referencia e imprímela o guárdala para un uso futuro.

## Resumen

* Windows PowerShell es un marco de trabajo para la automatización de tareas y gestión de configuración creado por Microsoft, que consiste en una interfaz de línea de comandos y su lenguaje de órdenes asociado, construido sobre la base de .NET Framework.
* PowerShell provee un acceso completo a COM y WMI, lo que permite a los administradores realizar tareas administrativas en sistemas Windows locales y remotos.
* Las tareas administrativas en PowerShell por lo general se realizan mediante comandos o cmdlets.
* Se accede a la ayuda de consola de PowerShell con el comando Get-Help y puede actualizarse para obtener contenido nuevo con el comando Update-Help.
* PowerShell puede ejecutar cuatro tipos de comandos con nombre: comandos o cmdlets, guiones/órdenes o scripts, funciones y programas ejecutables.
* Los archivos de órdenes de PowerShell se guardan con una extensión de nombre de archivo .ps1.
* Los comandos o cmdlets tienen un patrón de nomenclatura <verbo>—<sustantivo> en inglés.
* Los comandos emiten sus resultados como objetos.
* PowerShell implementa el concepto de tubería, que permite que la salida de un comando se canalice a la entrada de otro comando.
* Las tuberías de PowerShell se usan para elaborar comandos complejos, utilizando el operador | para conectar etapas.
* Windows PowerShell incluye un lenguaje de órdenes de tipo dinámico que soporta variables, funciones, condiciones, bucles, manejo estructurado de excepciones y errores, así como integración con .NET.
* Las variables en los archivos de órdenes de PowerShell tienen nombres que comienzan con $, y puede asignárseles cualquier valor, incluso la salida de comandos.
* $_ se refiere al objeto actual en la tubería.
* La ejecución de archivos de órdenes PowerShell está deshabilitada por defecto y debe ser habilitada manualmente.
* PowerShell 2.0 está integrado con Windows 7 y Windows Server 2008 R2.
* PowerShell 3.0 está integrado con Windows 8 y Windows Server 2012.
* PowerShell 4.0 está integrado con Windows 8.1 y Windows Server 2012 R2.
* PowerShell 3.0 y 4.0 pueden instalarse manualmente en sistemas operativos Windows 7 y posteriores.

## Términos clave
### CMD.EXE

    El intérprete de línea de comandos suministrado por Microsoft en OS/2 y eComStation, Windows CE y en los sistemas operativos basados en Windows NT (entre ellos Windows 2000, XP, Vista, 7, 8, Server 2003, Server 2008, Server 2008 R2 y Server 2012).

### Component Object Model (COM)

    Un estándar de interfaz binaria para componentes de software lanzada por Microsoft en 1993, usado para permitir la comunicación entre procesos y la creación de objetos dinámicos en múltiples lenguajes de programación.

### COMMAND.COM

    El nombre de archivo de la interfaz de línea de comandos predeterminada para los sistemas operativos DOS y el intérprete de lína de comandos por defecto de Windows 95, 98 y ME.

### compilador

    Un programa de computadora/ordenador (o una serie de programas) que convierten el código fuente escrito en un lenguaje de programación (el lenguaje fuente) en otro lenguaje de computadora (el lenguaje objetivo, a menudo en una forma binaria como código objeto).

### consola

    Una interfaz de línea de comandos usada como medio paa interactuar con un programa de computadora en donde el usuario (o cliente) envía comandos al programa en forma de líneas de texto consecutivas (líneas de comandos).

### Get-Help

    Obtiene una lista de todos los temas de ayuda disponibles.

### Get-Host

    Obtiene un objeto que representa el programa anfitrión actual.

### lenguaje interpretado

    Un lenguaje interpretado es un lenguaje de programación para el que la mayoría de sus implementaciones ejecuta las instrucciones directamente, sin que previamente sea compilado en instrucciones en lenguaje de máquina.

### .NET Framework

    Un marco de trabajo de software desarrollado por Microsoft que funciona principalmente en sistemas Microsoft Windows que comprende una amplia biblioteca de clases conocida como Framework Class Library (FCL) y provee interoperabilidad de lenguajes entre varios lenguajes de programación.

### tubería

    Un conjunto de elementos de procesamiento de datos conectados en serie, en donde la salida de un elemento es la entrada del siguiente.

### lenguaje de órdenes

    Un lenguaje de programación que es compatible con órdenes, programas escritos para un entorno en tiempo de ejecución especial que puede interpretar (en vez de compilar) y automatizar la ejecución de tareas que de otro modo serían ejecutas una a una por un operador humano.

### shell (interfaz de usuario o intérprete)

    Una interfaz de usuario para acceder a los servicios de un sistema operativo. En general, los shell de los sistemas operativos usan una interfaz de línea de comandos o una interfaz gráfica de usuario, dependiendo de la función asignada a la computadora y a la operación en particular.

### Update-Help

    Descarga e instala los archivos de ayuda más nuevos en la computadora del usuario.

### Windows Management Instrumentation (WMI)

    Un conjunto de extensiones al modelo de controladores de Windows (Windows Driver Model) que provee una interfaz de sistema operativo a través de la cual los componentes instrumentados proporcionan información y notificaciones. WMI admite lenguajes de órdenes como VBScript o Windows PowerShell para administrar servidores y computadoras personales con Microsoft Windows, local y remotamente.

### Windows Script Host (WSH)

    Una tecnología de automatización para sistemas operativos Microsoft Windows que posee funcionalidades de órdenes comparables a la de los archivos por lotes, pero con una serie de características soportadas más amplia.