Capítulo 2: Los primeros pasos

Publicado por P. Ruiz en

Ejecutar el primer script

Para ejecutar un script, sólo hay que escribir su nombre en el prompt de PowerShell. En ese momento, el sistema buscará, en su ruta predeterminada, un script con ese nombre. Y, si lo encuentra, lo ejecutará.

Llamamos prompt al texto que utiliza el sistema para indicarnos que está esperando una orden.

PowerShell-UD02-006

Sin embargo, si has seguido las indicaciones del apartado anterior, lo más probable es que recibas un error como el de la siguiente imagen.

Sencillamente, no se ha podido encontrar el script.

PowerShell-UD02-007

El motivo es que, el directorio donde se encuentra el script, no está entre los directorios predeterminados donde busca el sistema. Por esto, al nombre del script debemos anteponerle la ruta donde encontrarlo.

En el ejemplo anterior, hemos guardado el script en la carpeta donde nos encontrábamos (C:\Users\usuario). Por lo tanto, deberíamos escribir algo parecido a esto:

C:\Users\usuario\ejemplo01.ps1

No obstante, si la ruta en cuestión coincide con la ruta actual en el momento de ejecutarlo, podemos simplificarlo, escribiendo algo así:

.\ejemplo01.ps1

Por lo tanto, basta con escribir la orden anterior y pulsar la tecla Intro.

PowerShell-UD02-008

Al hacerlo, se ejecutará el script.

Comprobamos que, ahora sí, obtenemos la salida esperada.

PowerShell-UD02-009

Si necesitas saber cuál es la ruta predeterminada del sistema, basta con escribir la siguiente orden:

$env:path

Al pulsar la tecla Intro obtenemos la información que buscamos.

PowerShell-UD02-010

Como ves en la imagen, en mi sistema la salida es esta:

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\usuario\AppData\Local\Microsoft\WindowsApps;

Observando más detenidamente verás que, en realidad se trata de varias rutas separadas por caracteres de punto y coma(;)

C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Windows\System32\OpenSSH\;
C:\Users\usuario\AppData\Local\Microsoft\WindowsApps;

Bastaría con guardar el script en cualquiera de esos directorios para que pudiésemos eliminar la ruta del nombre del archivo.

Actividades resueltas: Trata de resolver las siguientes cuestiones, antes de consultar la respuesta:

    1. En el capítulo anterior, aprendimos a utilizar el cmdlet Get-WmiObject Win32_ComputerSystem para obtener información sobre el sistema. Además, el resultado de dicha consulta lo guardábamos en un archivo de texto llamado informacion.csv del directorio activo.

      Como comprobaste en ese momento, la orden que obteníamos funcionaba correctamente. Sin embargo, tenía un inconveniente: si la vamos a utilizar con frecuencia, es muy larga e incómoda de escribir. La solución es crear un pequeño script que, en realidad, solo contenga esa orden. Así, el nombre del script puede ser mucho más corto y fácil de recordar.

      Para comprobarlo, te sugerimos crear un nuevo archivo, llamado actividad01.ps1 que implemente dicha idea.

      Como ves en la siguiente imagen, usamos la orden notepad actividad01.ps1 para crear el documento.

      Después, en el área de edición del Bloc de notas, escribimos la orden que conocemos del capítulo anterior y guardamos los cambios.

      PowerShell-UD02-046

      Cuando terminemos, cerramos el Bloc de notas, ejecutamos el script y volvemos a utilizarlo para comprobar el resultado.

      Debemos obtener algo parecido al contenido de la siguiente imagen:

      PowerShell-UD02-047

    2. La solución anterior puede aplicarse a casi cualquier situación. Por ejemplo, el último ejemplo de tuberías del capítulo anterior es aún más largo y costoso de escribir. Como recordarás, se trataba de filtrar eventos y dirigirlos a un archivo de salida, con una orden como esta:

      PowerShell-036

      Es evidente que, si vamos a necesitar escribirla con frecuencia, nos va a resultar muy útil convertirla en un pequeño script. Esto es lo que te sugerimos en esta actividad. Puedes llamarlo, por ejemplo actividad02.ps1.

      Como en el ejemplo anterior, hemos usado la orden notepad actividad02.ps1 para crear el documento.

      Después, en el área de edición del Bloc de notas, hemos escrito la orden anterior y hemos guardado los cambios.

      PowerShell-UD02-048

      Después, hemos cerrado el Bloc de notas, ejecutado el script y hemos vuelto a usarlo para comprobar el resultado.

      El resultado ha sido el que ves en la imagen siguiente:

      PowerShell-UD02-049