¿Cómo empezar a aprender PowerShell?

«Sí, estoy algo familiarizado con PowerShell» es quizás una de las declaraciones más utilizadas en las conferencias tecnológicas a lo largo de los años. No se pueden hacer muchas afirmaciones que puedan ser igualmente subestimadas o exageradas.

Algunos de los que dicen esto son bastante humildes, aunque probablemente sepan bastante sobre PowerShell. Otros tienden a pensar que conocer PowerShell es lo mismo que saber usarlo. Para aquellos que no saben cómo usarlo, que sigue siendo una parte importante del equipo de ingeniería y soporte de sistemas, puede ser un pensamiento desalentador pensar en dónde comenzar a usar PowerShell en primer lugar. Ha escuchado innumerables discursos técnicos, leído páginas de artículos y hablado mucho con colegas sobre todo lo que puede hacer por usted. Miras esta montaña en crecimiento y todo lo que puedes hacer es concentrarte en la cima y lo obvio se te escapa cuando se trata de planificar cómo llegar a esa cima. Este primer paso está justo frente a ti, al pie de la montaña.

Es posible que no sepa nada sobre PowerShell, y está bien.

Vamos a sacar esto del camino. Si no conoce PowerShell, está perfectamente bien. Está bien si conoce PowerShell, pero está bien confesar si nunca lo ha usado. Asentir con la cabeza en las discusiones con los compañeros y agregar PowerShell a su currículum para darle una ventaja puede convertirse en una realidad mucho más rápido de lo que piensa. Todos tienen su propia historia de PowerShell, y su historia será tan única como su viaje al mundo de la ingeniería y el soporte de TI. ¡No tienes adónde ir sino hacia arriba!

Según Microsoft Docs , “PowerShell es una solución de automatización de tareas multiplataforma que consta de un shell de línea de comandos, un lenguaje de secuencias de comandos y un marco de gestión de configuración. PowerShell funciona en Windows, Linux y macOS». El enfoque de esta publicación será estrictamente la parte de shell de PowerShell y se centrará en eso. Otros aspectos se vuelven un poco más claros a medida que adquiere más experiencia con el shell de PowerShell.

Microsoft desarrolló PowerShell y mejora constantemente PowerShell para interoperar con los sistemas operativos de escritorio de Windows, los sistemas operativos de Windows Server, los recursos de Office 365 y los recursos de la nube de Azure. Se convertirá en una parte integral de casi todo el universo de productos de Microsoft. PowerShell permite que los ingenieros y el personal de soporte administren sus responsabilidades de manera más eficiente al permitir la creación y modificación masiva de recursos, como archivos, carpetas, ajustes y configuraciones. Es mejor conocido por su nomenclatura única y fácil de usar de verbos y sustantivos de cmdlet, que se pronuncia «comando». Los cmdlets son los comandos reales que se usan para realizar alguna acción en PowerShell. Algunos cmdlets se pueden ejecutar exactamente como son, sin definir parámetros. Los escribes, presionas enter y ¡BOOM! Tienes la salida que se te da en la consola. Si está familiarizado con el símbolo del sistema Always Faithful en un entorno de Windows, se sentirá muy cómodo con PowerShell. Muchos de los comandos que normalmente ejecutaría en el símbolo del sistema también se pueden ejecutar desde la consola de PowerShell. De todos modos, pruébalo la próxima vez que uses normalmente la línea de comandos. Vea cómo puede hacer lo mismo dentro de una consola de PowerShell. pruébelo la próxima vez que utilice normalmente la línea de comandos. Vea cómo puede hacer lo mismo dentro de una consola de PowerShell. pruébelo la próxima vez que utilice normalmente la línea de comandos. Vea cómo puede hacer lo mismo dentro de una consola de PowerShell.

Abriendo el velo de la GUI

La mayoría de la gente ama su preciosa GUI. Pueden ver lo que creen que necesitan ver, y obtienen esa sensación cálida y confusa cuando presionan Aplicar y luego Aceptar. ¡A algunos de ellos les gusta vivir al límite y no presionar aplicar en absoluto! Después de todo, a medida que profundice más y más en la administración de servidores, escritorios o Exchange, se encontrará haciendo clic sin parar cuando sea necesario realizar un cambio que requiera agregar 360 usuarios a 20 grupos de seguridad de Active Directory diferentes. ¿Estás listo para esta pesadilla de romperse?

Es seguro decir que PowerShell ayuda a levantar el velo de una GUI preciosa y querida. PowerShell le permite asumir el desafío de agrupar a los usuarios de AD en varios grupos y desarrollar varios comandos para realizar el trabajo en una fracción del tiempo que llevaría hacerlo todo a través de una GUI. La belleza es que Microsoft quiere que uses PowerShell para estas tareas. Con el enfoque en el uso de PowerShell en muchos de los principales exámenes de certificación de Microsoft, ya no es solo para administradores experimentados, sino que se está convirtiendo en algo cada vez más necesario en su kit de herramientas de soporte diario. Con bastante exactitud podemos decir que cualquier acción, botón, opción o configuración que veas en la interfaz gráfica,

Primeros pasos

Comencemos con algunos cmdlets que puede usar ahora mismo si está leyendo esto en una PC con Windows. Una cosa con la que interactúan la mayoría de los administradores e ingenieros de sistemas es la consola de servicios. Si abre una consola de PowerShell, simplemente Get-Serviceescriba y presione Entrar para obtener una lista de los servicios instalados. Obtendrá una descripción general rápida de todos los servicios instalados en el sistema local y su estado actual de En ejecución o Detenido. Esta salida sería útil para ver si un servicio de aplicación en particular se está ejecutando o no.

Quizás no necesite la lista completa de servicios y esté buscando un servicio específico. Supongamos que desea verificar si el servicio de cola de impresión se está ejecutando. Puede llamarlo por su nombre usando el parámetro -ServiceName así:

Get-Service -ServiceName spooler

Esta salida le dará una lista única del servicio de cola de impresión y su estado. Digamos que un servicio se está ejecutando o detenido y desea detenerlo o iniciarlo. Puede usar la siguiente entrada para detener/iniciar el servicio de cola de impresión:

Start-Service -ServiceName spooler

Stop-Service -ServiceName cola de impresión

Por defecto, estas líneas no muestran el estado del servicio cuando se envía el comando. Deberá ejecutar Get-Service -ServiceName spoolerpara ver el estado actual.

Afortunadamente, PowerShell es muy compatible con los comodines cuando enumera objetos y nombres. Digamos que necesita verificar un servicio en particular, pero no está muy seguro de cómo se llama «oficialmente». Solo sabes que la primera palabra ha sido eliminada. Es simple:

Get-Service -ServiceName remote*

Esta entrada enumerará todos los servicios, comenzando con el remoto, y le permitirá restringir su búsqueda para encontrar el servicio específico que está buscando y tomar las medidas que necesite. No olvide que también existe el cmdlet Restart-Service.

Llevando este pequeño conocimiento de los servicios un paso más allá, veamos los servicios en una máquina remota. Supongamos que está en un entorno de dominio de Windows y tiene acceso administrativo a las computadoras remotas que administra. Puede usar los mismos cmdlets mencionados anteriormente, pero debe agregar un parámetro y un valor. Para verificar el servicio de cola de impresión en un servidor remoto llamado PrintServer01:

Get-Service -ComputerName PrintServer01

Esta salida enumerará todos los servicios instalados en la máquina remota, al igual que en el sistema local que hicimos anteriormente. Este cmdlet le ahorra la molestia de usar RDP para iniciar sesión en un servidor remoto para probar un servicio o agregar el servidor remoto a su complemento MMC local. Esta habilidad en sí misma se amortiza muy rápidamente.

Otro comando que se puede usar de inmediato, sin parámetros, es Get-NetIPAddress. Este cmdlet le dará una lista de todos los adaptadores de red en el sistema local y mucha información sobre cada adaptador. En esta salida, puede ver el funcionamiento interno de la GUI. Puede ver mucha más información sobre las cosas que normalmente vería como un icono en la GUI. La belleza de ver información adicional es que siempre puede usar PowerShell para procesar y buscar cualquier información adicional. Por ejemplo, si desea realizar cambios en adaptadores de red específicos, solo puede buscar o filtrar aquellos que tengan un valor específico. ¡Las posibilidades son infinitas!

Dónde encontrar más

Ahora que tiene lo mínimo de lo que PowerShell tiene para ofrecer, depende de usted continuar escalando la montaña de la que hablamos anteriormente. Poner un pie delante del otro es tan fácil como navegar a través de algunos recursos para obtener sugerencias de PowerShell. Una simple búsqueda en Google del cmdlet es un buen comienzo. Microsoft Docs tiene una biblioteca poderosa para cada cmdlet individual, con muchos ejemplos de cómo usarlos. PowerShell en sí mismo es una buena fuente de explicaciones y ejemplos. El comando Get-Help Get-Servicele dará más información sobre nuestro ejemplo anterior.

Un recurso que muchos usuarios experimentados de PowerShell recuerdan es el libro mejor valorado de Don Jones y Jeffrey Hicks. Estos gigantes de PowerShell poseen los hombros en los que muchos se apoyan cuando se trata de conquistar Mount PowerShell. El libro se llama Aprenda Windows PowerShell en un mes de almuerzos. Este libro fácil de leer lo lleva a través de los conceptos básicos de PowerShell en fragmentos pequeños y, en última instancia, es el recurso al que recurrirá constantemente cuando se encuentre en una situación en la que necesite usar PowerShell.

La comunidad de PowerShell también es un lugar muy abierto y útil para aprender. El subreddit r/PowerShell y PowerShell.org tienen una comunidad muy próspera de personas de todos los niveles. Siempre puede obtener alguna orientación de estos recursos. No puede escalar esta montaña si no toma medidas, así que póngase manos a la obra y vea cómo PowerShell puede ayudarlo con las tareas mundanas y mundanas del día a día que a veces le dan pavor. ¡Es posible que se encuentre en un frenesí de planificación y automatización de gran parte de su carga de trabajo para tener tiempo de aprender más sobre PowerShell!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.