Use Windows PowerShell

Completado

Aunque las herramientas de administración de GUI suelen ser más fáciles de usar que las herramientas de línea de comandos, el jefe del departamento de TI de Contoso cree que puede lograr muchas tareas administrativas más rápidamente mediante un sencillo script o un solo comando. Por ejemplo, el proceso de actualizar la misma información para varias cuentas de usuario mediante Usuarios y equipos de Active Directory puede llevar mucho tiempo. Sin embargo, el uso del módulo de Active Directory en Windows PowerShell permite al administrador realizar esta tarea repetitiva rápidamente. Ha decidido investigar cómo afecta el uso de Windows PowerShell a la administración de la infraestructura de servidor en Contoso.

Información general

Windows PowerShell es un entorno de línea de comandos y scripting que se puede usar para administrar todos los aspectos del sistema operativo Windows. Windows PowerShell usa comandos especiales denominados cmdlets que se componen de pares de verbo-sustantivo, por ejemplo, Restart-Computer.

También se puede usar Windows PowerShell para conectarse de forma remota a otros equipos e incluso ejecutar cmdlets de Windows PowerShell en una lista de equipos, lo que le permite realizar acciones en varios equipos mediante una única instrucción de línea de comandos.

Comandos y cmdlets de Windows PowerShell

Los comandos son bloques de creación que se agrupan mediante el lenguaje de scripting de Windows PowerShell. Proporcionan la funcionalidad principal de Windows PowerShell. Con los comandos, puede crear soluciones personalizadas para problemas administrativos complejos.

Los cmdlets son los componentes fundamentales de los comandos. Hay miles de cmdlets de Windows PowerShell disponibles en los sistemas operativos Windows y otros productos de Microsoft. Como se mencionó anteriormente, los cmdlets se componen de un par de verbo-sustantivo.

Verbos de cmdlet

La parte del verbo del nombre del cmdlet indica lo que hace el cmdlet. Existe un conjunto de verbos aprobados que usan los creadores de cmdlets, lo que proporciona coherencia en sus nombres. Los verbos comunes se describen en la siguiente tabla.

Verbo Explicación
Obtener Recupera un recurso, como un archivo o un usuario.
Set Cambia los datos asociados a un recurso, como una propiedad de archivo o de usuario.
Nuevo Crea un recurso, como un archivo o un usuario.
Sumar Agrega un recurso a un contenedor de varios recursos.
Remove Elimina un recurso a un contenedor de varios recursos.

Nombres de cmdlet

La parte de sustantivo del nombre del cmdlet indica a qué tipos de recursos u objetos afecta el cmdlet. Todos los cmdlets que operan en el mismo recurso deben usar el mismo nombre. Por ejemplo, el nombre Service se usa para los cmdlets que trabajan con servicios de Windows y el nombre Process se utiliza para administrar los procesos de un equipo.

Formato de los parámetros

Los parámetros modifican las acciones que realiza un cmdlet. Cada cmdlet puede tener un parámetro, varios parámetros o ningún parámetro. Los nombres de parámetro comienzan con un guion (-). Un espacio separa el valor que se quiere pasar del nombre del parámetro. Si el valor que pasa contiene espacios, deberá escribir el texto entre comillas. Algunos parámetros aceptan varios valores, que están separados por comas y sin espacios.

Ejemplos

Puede estudiar los ejemplos siguientes para ayudar a determinar cómo podría usar Windows PowerShell para realizar tareas administrativas comunes. El siguiente comando muestra una lista de los servicios en ejecución.

Get-Service | Where-Object {$_.Status -eq "Running"}

El siguiente comando muestra una lista de los servicios que tienen un nombre que comienza por "win" y que excluye el servicio denominado WinRM.

Get-Service -Name "win*" -Exclude "WinRM"

Este comando siguiente genera una lista de todos los servicios en un archivo de texto con formato de salida HTML.

Get-Service | ConvertTo-Html > File.html

Una variación del comando anterior solo genera los datos seleccionados sobre los servicios y, luego, exporta el resultado a un archivo CSV.

Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv

El siguiente comando recupera la información especificada (el número de teléfono de la oficina y el nombre principal de usuario) sobre los usuarios de Active Directory.

Get-ADUser -Filter * -Properties OfficePhone | FT OfficePhone,UserPrincipalName

En este último ejemplo se recupera un subconjunto de usuarios de AD DS (los de la unidad organizativa de marketing) y se modifican sus propiedades agregando una descripción a cada cuenta.

Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Marketing,DC=Contoso,DC=Com" | Set-ADUser -Description "Member of the Marketing Department"

Windows PowerShell ISE

El ISE es un entorno totalmente gráfico que proporciona un editor de scripts, funcionalidades de depuración, una consola interactiva y varias herramientas que le ayudan a descubrir y aprender nuevos comandos de Windows PowerShell. En este módulo se proporciona un conocimiento básico del funcionamiento de ISE.

Captura de pantalla de Administrador: Windows PowerShell ISE. El administrador ha habilitado la ventana de vista previa de comandos. El administrador acaba de ejecutar Get-localuser en el panel de scripts sin título.

Paneles

El ISE ofrece dos paneles principales: un panel de scripts (o editor de scripts) y el panel de consola. Puede colocarlos uno encima del otro o en paralelo en un diseño de dos paneles. También puede maximizar un panel y alternar entre los paneles. De forma predeterminada, también se muestra un panel de complementos de comandos, que le permite buscar o examinar los comandos disponibles, y revisar y rellenar los parámetros de un comando que seleccione. Asimismo, hay una ventana de comandos flotante que proporciona la misma funcionalidad.

Personalización de la vista

El ISE proporciona varias maneras de personalizar la vista. Un control deslizante en el área inferior derecha de la ventana cambia el tamaño de fuente activo. El cuadro de diálogo Opciones permite personalizar la selección de fuentes y colores de muchos elementos de texto de Windows PowerShell diferentes, como palabras clave y valores de cadena. El ISE admite la creación de temas visuales. Un tema es una colección de valores de fuente y color que se puede aplicar como grupo para personalizar la apariencia del ISE. Hay varios temas integrados que empaquetan las personalizaciones con fines como hacer presentaciones. El ISE también le ofrece la opción de crear temas personalizados. Otras características del ISE son:

  • Una biblioteca de fragmentos de código integrada y extensible que puede usar para almacenar los comandos de uso frecuente.
  • La posibilidad de cargar complementos creados por Microsoft o por terceros que proporcionan funcionalidad adicional.
  • Integración con las funcionalidades de depuración de Windows PowerShell.

Comunicación remota de Windows PowerShell

El propósito de la comunicación remota de Windows PowerShell es conectarse a los equipos remotos para que pueda ejecutar comandos en ellos y, luego, devolver los resultados al equipo local. Esto le permite ejecutar comandos de Windows PowerShell en varios equipos de la red desde el equipo cliente, en lugar de crear una conexión a cada equipo.

Uno de los principales objetivos de la comunicación remota de Windows PowerShell es permitir la administración por lotes, que posibilita la ejecución de comandos en un conjunto de equipos remotos a la vez. Puede usar la comunicación remota de una de las tres maneras que se describen en la tabla siguiente.

Método Descripción
Comunicación remota uno a uno En el escenario de comunicación remota uno a uno (también conocido como comunicación remota interactiva), se conecta a un único equipo remoto y ejecuta en él comandos de Windows PowerShell, exactamente como si hubiera iniciado sesión en el equipo y abriera una ventana de Windows PowerShell.
Comunicación remota de uno a varios En el escenario de comunicación remota de uno a varios (también conocida como comunicación-remota de distribución ramificada de salida), se emite un comando que se ejecutará en uno o varios equipos remotos en paralelo. No trabaja con cada equipo remoto de forma interactiva. En su lugar, los comandos se emiten y se ejecutan en un lote, y los resultados se devuelven al equipo para que los use.
Comunicación remota de varios a uno En el escenario de comunicación remota de varios a uno (también conocida como comunicación remota de distribución ramificada de entrada), varios administradores realizan conexiones remotas a un único equipo. Normalmente, esos administradores tendrán permisos diferentes en el mismo equipo remoto y podrían estar trabajando en una sesión de Windows PowerShell restringida.

Precaución

Al ejecutar comandos en varios equipos, tenga en cuenta las diferencias entre los equipos remotos, como las que existen en los sistemas operativos, las estructuras del sistema de archivos y los registros del sistema.

PowerShell Direct

Muchos administradores eligen ejecutar algunos de sus servidores en entornos virtualizados. Para permitir una administración más sencilla de las máquinas virtuales de Hyper-V con Windows 10 o Windows Server, puede usar una característica llamada PowerShell Direct.

PowerShell Direct le permite ejecutar un script o un cmdlet de Windows PowerShell dentro de una máquina virtual desde el sistema operativo host con independencia de las configuraciones de red, firewall y administración remota.