Ejercicios de PowerShell

Ejercicios de PowerShell#

Crea un script llamado disk.ps1 que imprima por pantalla el porcentaje que esta ocupada la partición C:

Crea un script llamado mem.ps1, obtiene solamente la memoria en MB ocupada y se escriban en un archivo llamado free.log cada vez que se ejecute, sin borrar el anterior registro.

Crea un script llamado cpu.ps1 que saque por pantalla el nombre del procesador instalado en el equipo

Crea un script llamado mac.ps1 que obtiene la MAC de las tarjetas de red que estén en estado Up

Haz un script llamado edad.ps1 que te pregunte en que año naciste y te diga la edad que tienes

Haz un script llamado tres_numeros.ps1 que te pregunte al usuario tres numero enteros y devuelva la suma:

Haz un script llamado mult.ps1 que pide un número al usuario y muestre su tabla de multiplicar

Crea una carpeta llamada Ejercicio, dentro ejecuta lo siguiente:

mkdir Ejercicio

cd .\Ejercicio\

for ($i=0;$i -lt 10;$i++){
  echo archivo $i > archivo_$i.dat
}

Si hacemos (C:Users….Ejercicio ls) veremos que se han creado 10 archivos. Puedes también recorrerlos de la siguiente forma:

foreach ($i In $(Get-ChildItem -Filter *.dat )){
  echo "i = $i"
  }

Haz un script llamado ext.ps1 que cambie a todos los archivos la extensión .dat por .txt

Haz un script llamado puerta.ps1, que permite al usuario seleccionar entre cuatro puertas de diferentes colores (roja, azul, verde y amarilla). Si el usuario ingresa un código diferente de 1 a 4, se mostrará un mensaje indicando que la puerta es incorrecta.

Haz un script llamado puerta2.ps1 parecido al anterior, en este caso si el usuario selecciona una puerta que no sea la verde, se muestra un mensaje indicando que ha perdido. Si selecciona la puerta verde, se le permite lanzar una moneda para ver si gana o pierde.

Haz un script llamado usuario.ps1 que reciba los siguientes parámetros:

usuario.ps1 -Nombre Mario -Apellido López -Usuario mario33 -Nacimiento 200

El script debe:

Calcular la edad del usuario.
Si el usuario tiene 14 años o más:

Mostrar el mensaje: Se ha creado a [Nombre] [Apellido] el usuario [Usuario]

Si el usuario tiene menos de 14 años:

Mostrar el mensaje: No se puede crear el usuario [Usuario] a [Nombre] [Apellido] por tener menos de 14

Haz un script llamado monedas.ps1 que simule el lanzamiento de 3 monedas y calcule la probabilidad de obtener 3 caras

Haz un script llamado rnd.ps1 que escoja un numero aleatorio entre 1 y 20, pregunte al usuario, le diga si es más pequeño o más grande y que continué hasta que acierte. Cuando el usuario acierte haz que muestre el número de intentos.

Haz un script llamado dados.ps1 que obtenga dos números aleatorios entre el 1 y el 6, haz que la salida se vuelque en un archivo llamado tiradas.csv, en tres columnas, siendo la tercera columna la suma de los dos dados, crea un archivo con al menos 100 tiradas.

Haz que el número de tiradas lo reciba como un argumento, por ejemplo:

.\dados.ps1 100

En el caso de que no reciba ningún argumento haz que pregunte cuantas tiradas quieres.

.\dados.ps1

¿Cuántas tiradas quieres hacer?
100

En el caso de que reciba el argumento help, muestre la siguiente ayuda:

.\dados.ps1 help

Uso del script dados.ps1:
.\dados.ps1 <número_de_tiradas>
Ejemplo: .\dados.ps1 100
Si no se proporciona ningún argumento, se preguntará cuántas tiradas deseas hacer.
Si se usa el argumento 'help', se mostrará esta ayuda.

Lee el archivo que has generado en el ejercicio anterior y haz que salga por pantalla el numero de tiradas y el porcentaje de veces que sale cada una, por ejemplo

$ ./analisis.ps1

De 1000 tiradas : 2(1%) 3(7%) 4(10%) 5(12%) 6(14%) 7(17%) 8(14%) 9(12%) 10(10%) 11(7%) 12(1%)

Un jugador comienza con 100 € para jugar en una máquina tragamonedas. El funcionamiento de la máquina es el siguiente:

  • Cada partida cuesta 1 €.

  • La máquina tiene 3 rulos. $rulos = @('limon', 'manzana', 'platano', 'siete')

    • Tres frutas iguales (por ejemplo, 3 limones): el jugador gana 1 €.

    • Tres sietes: el jugador gana 100 €.

  • Si el jugador no tiene suficiente dinero para jugar (menos de 1 €), deja de jugar.

Simula la evolución del dinero del jugador durante 1000 partidas o hasta que su dinero se agote, lo que ocurra primero.

El objetivo es determinar cuánto dinero tiene el jugador al final de las 1000 partidas y cuántas partidas logró jugar en total.

Crea un script en PowerShell llamado csv.ps1 que cumpla con las siguientes características:

csv.ps1 -usuario [nombre usuario] -grupo [grupo]

El script debe agregar una entrada al archivo usuarios.csv (si no existe, debe crearlo). El archivo usuarios.csv tendrá el siguiente formato:

usuario,grupo,password
alice,B,12D7087D61
bob,A,5CD356CE5

La contraseña debe generarse de forma aleatoria, haz que sea una cadena alfanumérica de 8 caracteres.

Al ejecutar el script, debe mostrar un mensaje en la terminal indicando que el usuario ha sido creado. El mensaje debe seguir el formato:

El usuario [usuario] ha sido creado con la password [password] en el grupo [grupo].

En el caso de que el usuario exista, la salida será :

El usuario [usuario] ya existe, no se puede crear.

Crea un script llamado crear_usuarios_grupos.ps1 que cree los siguientes grupos:

  • GPWS01

  • GPWS02

  • GPWS09

  1. En el caso de que el grupo no exista, haz que lo cree y saque por pantalla:

    El grupo $nombre_grupo no existe, se crea

  2. En el caso de que el grupo exista haz que no lo intente y saque por pantalla:

    El grupo $nombre_grupo existe, no se crea

ayuda : $nombre_grupo=”GPWS03” ; Get-LocalGroup | Select-String -Pattern $nombre_grupo -Quiet

Haz que el anterior script cree los siguientes usuarios dentro de los grupos correspondientes, con la contraseña alumno. Además haz que estén dentro del grupo Usuarios para que puedan loguearse utilizando el entorno gráfico

  • GPWS01

    • tunombre_gpws01_01

    • tunombre_gpws01_02

    • tunombre_gpws01_08

    • tunombre_gpws01_09

  • GPWS02

    • tunombre_gpws02_01

    • tunombre_gpws02_02

    • tunombre_gpws02_08

    • tunombre_gpws02_09

  • GPWS09

    • tunombre_gpws09_01

    • tunombre_gpws09_02

    • tunombre_gpws09_08

    • tunombre_gpws09_09

  1. En el caso de que el usuario no exista, haz que lo cree y lo incorpore a su grupo, finalmente saque por pantalla:

    El usuario $nombre_usuario con grupo $nombre_grupo no existe, se crea

  2. En el caso de que el usuario exista haz que no lo intente y saque por pantalla:

    El usuario $nombre_usuario existe, no se crea

  3. En el caso de que el usuario no este en el grupo, haz que lo menta dentro del grupo y saque por pantalla:

    El usuario $nombre_usuario no esta en el grupo $nombre_grupo, se hace miembro

  4. En el caso de que el usuario este en el grupo, haz que saque por pantalla:

    El usuario $nombre_usuario ya esta en el grupo $nombre_grupo no se hace nada

ayuda: Puedes borrar los usuarios y grupos :

foreach ($i in  $(Get-LocalUser |sls -Pattern "tunombre_")){
  Remove-LocalUser -Name $i
  }

foreach ($i in  $(Get-LocalGroup |sls -Pattern  "GPWS")){
  Remove-LocalGroup -Name $i
  }

Haz un script llamado crear_usuarios_grupos_csv.ps1, que cree los usuarios que encontraras en el archivo users.csv, tiene que cumplir las siguientes condiciones:

  1. En el caso de que el grupo no exista, haz que lo cree y saque por pantalla:

    El grupo $nombre_grupo no existe, se crea

  2. En el caso de que el grupo exista haz que no lo intente y saque por pantalla:

    El grupo $nombre_grupo existe, no se crea

  3. En el caso de que el usuario exista haz que no lo intente y saque por pantalla:

    El usuario $nombre_usuario existe, no se crea

  4. En el caso de que el usuario no este en el grupo, haz que lo meta dentro del grupo y saque por pantalla:

    El usuario $nombre_usuario no esta en el grupo $nombre_grupo, se hace miembro

  5. En el caso de que el usuario este en el grupo, haz que saque por pantalla:

    El usuario $nombre_usuario ya esta en el grupo $nombre_grupo no se hace nada

  6. En el caso de que el usuario no exista, haz que lo cree y lo incorpore a su grupo, finalmente haz que saque por pantalla:

    El usuario $nombre_usuario con grupo $nombre_grupo no existe, se crea

  7. Además se añada a un archivo el mensaje:

    El usuario $nombre_usuario con $passwrd en el grupo $nombre_grupo se ha creado >> lista_usuarios_creados.dat

  8. En el caso de que el usuario este en el grupo, haz que saque por pantalla:

    El usuario $nombre_usuario ya esta en el grupo $nombre_grupo no se hace nada

Haz un script llamado usuarios.ps1, que implementa un menú para gestionar usuarios en el sistema. El script permite listar usuarios, crear y eliminar usuarios, y modificar el nombre de un usuario existente.

Menú de Usuarios:

  1. Listar usuarios

  2. Crear usuario

  3. Eliminar usuario

  4. Modificar usuario

  5. Salir

Haz el script grupos.ps1, que implementa un menú para gestionar grupos y sus miembros en PowerShell. El script permite listar grupos, ver miembros, crear y eliminar grupos, así como agregar y eliminar miembros de los grupos.

Menú de Grupos:

  1. Listar grupos

  2. Ver miembros de un grupo

  3. Crear grupo (pide nombre grupo)

  4. Elimina grupo (pide nombre grupo)

  5. Crea miembro de un grupo (pide grupo y usuario)

  6. Elimina miembro de un grupo (pide grupo y usuario)

  7. Salir