Actividades de scripting en PowerShell
En todos los scripts se debe comprobar si se está haciendo buen uso del script (número de parámetros) y mostrar una ayuda en caso contrario.
Actividades:
-
Sumar-Dos.ps1: sumar dos números pasados por parámetro.
-
Multiplicar-Dos.ps1: Multiplicar dos números pasados por parámetro.
-
Numero-MayorDe3.ps1: comparar los tres números pasados por parámetro y devolver el mayor.
-
Yo-Soy.ps1: mostrar tu nombre de usuario completo (recuperándolo de la variable
$env:USERNAME
). -
Safedit.ps1: abre el
notepad
con el fichero pasado como argumento, de forma que justo antes de abrirlo haga una copia de seguridad del fichero abierto en el directorio$env:TEMP
con el nombre${fichero}.backup
(siendo$fichero
el nombre del fichero pasado por parámetro). -
Fecha-Menor.ps1: comparar dos fechas en formato
DD-MM-AAAA
recibidas por parámetro y devolver la fecha menor. -
Menu-Tres.ps1: mostrar un menú que permita elegir entre los 3 primeros scripts (
Sumar-Dos.ps1
,Multiplicar-Dos.ps1
yNumero-MayorDe3.ps1
), y que pida por teclado los datos que necesitan cada uno en sus argumentos para funcionar. -
Cerrar-Sistema.ps1: hacer el siguiente menú:
a. Reiniciar el sistema b. Apagar el sistema c. Salir
NOTA: Consultar la ayuda de los comandos
Restart-Computer
yStop-Computer
. -
Menu-Instalacion.ps1: hacer un menú que permite elegir entre desinstalar o instalar al menos 3 programas con
choco
(Chocolatey). Si el programa está instalado, tendrá que mostrarse la opción Desinstalar “programa”. Si el programa no está instalado, se mostrará la opción Instalar “programa”.NOTA: Averiguar cómo determinar si un programa ya está instalado en nuestro sistema, sin instalarlo.
-
Media-Aritmetica.ps1: calcule la media aritmética de
n
números introducidos por parámetro.Ejemplo:
PS> ./Media-Aritmetica.ps1 5 7.5 12 9 4 7.5
-
SRMD.ps1: muestre la suma, la resta, la multiplicación y la división de dos números que se introducen por teclado.
-
Cuadrado.ps1: calcule el área de un cuadrado cuyo lado es introducido por parámetro.
-
Rectangulo.ps1: calcule el área de un rectángulo cuyos lados son introducidos por parámetro.
-
Triangulo.ps1: calcule el área de un triángulo cuya base y altura son introducidos por parámetro.
-
Euro-To-Pesetas.ps1: realice la conversión de la cantidad en euros pasada por parámetro a pesetas.
-
Pesetas-To-Euros.ps1: realice la conversión de la cantidad en pesetas pasada por parámetro a euros.
-
Calcular-IGIC.ps1: pida por teclado el precio de un producto y el porcentaje de IGIC a aplicar, y que calcule el precio final.
-
Descuento.ps1: pida por teclado el precio de un producto y el porcentaje de descuento, y que calcule el precio final.
-
Get-InfoFich.ps1: pida por teclado el nombre de un fichero de texto y que a continuación muestre el contenido del fichero y después todos los datos del mismo (propietario, tamaño, fecha de última modificación, fecha de creación, etc.)
-
Reverse.ps1: introduzca por teclado un número
n
de palabras y que luego las muestre en el orden inverso. -
Listar-Hasta100.ps1: Listar los número del 1 al 100.
-
Listar-Rango.ps1: Listar todos los números del rango comprendido entre los dos números pasados por parámetro.
-
Sumar-Todos.ps1: Sumar todos los números pasados por parámetro y mostrar el resultado. Puede aceptar de 1 a N parámetros, pero no 0 parámetros (da error).
-
Sumar-Rango.ps1: Sumar todos los números del rango comprendido entre los dos números pasados por parámetro, y mostrar el resultado.
-
Listar-Usuarios.ps1: Listar sólo los nombres de los usuarios del sistema.
-
Listar-Grupos.ps1: Listar sólo los nombres de todos los grupos del sistema y los miembros de cada grupo.
-
Comprobar-Todos.ps1: Comprobar que todos los ficheros pasados por parámetro existen y que son ficheros.
-
Config-Red.ps1: Mostrar la dirección IP, la máscara de subred y los servidores DNS de la interfaz de red indicada por parámetro (user el alias de la interfaz de red).
Ejemplo:
PS> .\Config-Red.ps1 Ethernet Configuración de la interfaz Ethernet: * Dirección IP: 192.168.1.33 * Máscara de subred: 255.255.255.0 * DNS: 8.8.8.8 172.17.198.5
-
Espacio-Ocupado.ps1: Calcular la cantidad de espacio total en bytes ocupado por todos los ficheros del directorio especificado por parámetro y mostrarla en la salida estándar.
Ejemplo:
PS> .\Espacio-Ocupado.ps1 C:\Users\fvarrui 626809 bytes
-
Espacio-OcupadoPlus.ps1: Mejorar el script anterior para que cumpla la siguiente sintaxis:
Espacio-Ocupado.ps1 [ -Bytes | -KB | -MB ] directorio(s)
Opciones:
-Bytes
: mostrar el resultado en bytes-KB
: mostrar el resultado en kilobytes-MB
: mostrar el resultado en megabytesAdemás acepta 1 o más directorios y deberá devolver el total.
-
Descarga-Masiva.ps1: Descargar, uno detrás de otro, todos los recursos especificados en un fichero de texto mediante sus URLs (ver comando
Invoke-WebRequest
para descargar ficheros a partir de su URL).Ejemplo:
PS> Get-Content direcciones.txt http://www.google.com http://www.iberia.es http://www.fsf.org PS> .\Descarga-Masiva.ps1 direcciones.txt Descargando http://www.google.com...ERROR Descargando http://www.iberia.es...OK Descargando http://www.fsf.org...OK Proceso completado: * Descargados: 2 * Errores: 1
-
Saludar.ps1: Saludar según la hora del sistema:
a. Entre las [ 6h y las 12h ): Buenos días.
b. Entre las [ 12h y las 19h ): Buenas tardes.
c. Entre las [ 19h y las 0h ): Buenas noches.
d. Entre las [ 0h y las 6h ): Vete a acostarte
-
Crear-Usuario.ps1: Pedir todos los datos del usuario por teclado y si no existe, crearlo (ver comando
New-LocalUser
). Los datos a solicitar son nombre de usuario (username), contraseña (password) y nombre completo (por ejemplo, “Perico de los Palotes”). -
Eliminar-Usuario.ps1: Mostrar un listado sólo con los nombres de todos los usuarios activos del sistema y al elegir uno que se elimine completamente del sistema. Debe pedir confirmación antes de eliminarlo.