Ejercicio 4
2- Crea un cmdlet que recoja como parámetro un nombre de directorio. Verifica que ese directorio exista. Luego debes listar los contenidos del directorio ordenados por tamaño, y de cada elemento debes sacar el tamaño y el nombre.
3- Crea un cmdlet llamado CheckPorts que defina un array con los puertos que queremos que estén en listening. Ejecuta el comando para sacar los puertos y verifica que están abiertos los indicados en el array. Vete sacando un mensaje que indique qué puertos están correctamente en estado listening y cuáles no.
4- Crea un cmdlet llamado AlertDist que defina un array relacional con las unidades y el límite de capacidad. Debe ejecutarse un comando que saque el tamaño ocupado en las unidades y que nos avise si se ha superado el límite impuesto.
5- Crea un cmdlet de PowerShell que defina un array relacional con usuarios. Los campos de cada elemento deben ser nombre_cuenta, nombre y password. El programa debe mantener ese array con un menú en el que se pueda:
-añadir
-eliminar
-buscar por nombre
-mostrar todos
Al crear uno nuevo deben solicitarse datos y el campo password debe ocultarse al escribir.
2- Crea un cmdlet que recoja como parámetro un nombre de directorio. Verifica que ese directorio exista. Luego debes listar los contenidos del directorio ordenados por tamaño, y de cada elemento debes sacar el tamaño y el nombre.
# recogerParam.ps1 $nombreDir = $args[1] $comprobar = Test-Path $nombreDir if ($comprobar -eq $true){ Get-ChildItem $nombreDir | Sort-Object size }
3- Crea un cmdlet llamado CheckPorts que defina un array con los puertos que queremos que estén en listening. Ejecuta el comando para sacar los puertos y verifica que están abiertos los indicados en el array. Vete sacando un mensaje que indique qué puertos están correctamente en estado listening y cuáles no.
$ip = "127.0.0.1" # ip del host $puertos = 20,21,22,23,24,25,80 $con = New-Object net.Sockets.TcpClient foreach ($port in $puertos) { try{ $con.Connect($ip,$port) $con.Close() Write-Output "Puerto $port en listening." } catch{ Write-Output "Puerto $port cerrado." } } # fin del programa
4- Crea un cmdlet llamado AlertDist que defina un array relacional con las unidades y el límite de capacidad. Debe ejecutarse un comando que saque el tamaño ocupado en las unidades y que nos avise si se ha superado el límite impuesto.
$unidades = Get-WmiObject Win32_logicaldisk | select -Property DeviceID,FreeSpace foreach ($libre in $unidades){ $id = $libre.DeviceID $espacio = $libre.FreeSpace Write-Output "La unidad $id tiene $espacio de espacio libre." } # fin del programa
5- Crea un cmdlet de PowerShell que defina un array relacional con usuarios. Los campos de cada elemento deben ser nombre_cuenta, nombre y password. El programa debe mantener ese array con un menú en el que se pueda:
-añadir
-eliminar
-buscar por nombre
-mostrar todos
Al crear uno nuevo deben solicitarse datos y el campo password debe ocultarse al escribir.
$alumnos = @{ "juan" = @{ nombre_cuenta = "juan_20"; nombre = "juan"; password = "2345";}; "eneko" = @{ nombre_cuenta = "eneko_23"; nombre = "eneko"; password = "3456";}; "urko" = @{ nombre_cuenta = "urko_33"; nombre = "urko"; password = "4567";} } do { Write-Output "---- MENU ----" Write-Output "1. Añadir alumno" Write-Output "2. Eliminar alumno" Write-Output "3. Buscar por nombre" Write-Output "4. Mostrar alumnos" Write-Output "5. Salir" $op = Read-Host "Selecciona opción: " switch ($op){ 1{ Write-Output "Vas a añadir un alumno." $nombre = Read-Host "Introduce un nombre: " $nombre_cuenta = Read-Host "Introduce un nombre de cuenta: " $password = Read-Host "Introduce una contraseña: " $alumnoNuevo = @{ nombre_cuenta = $nombre_cuenta; nombre = $nombre; password = $password;} $alumnos = $alumnos + $alumnoNuevo } 2{ foreach ($alumno in $alumnos.GetEnumerator()){ Write-Output $alumno.name } $opElim = Read-Host "Mete el nombre del que quieras eliminar: " $alumnos.Remove($opElim); } 3{ $opBuscar = Read-Host "Mete el nombre del que quieras buscar: " $sino = 0 foreach ($alum in $alumnos.GetEnumerator()){ if ($alum.name -eq $opBuscar){ Write-Output "El usuario existe." $sino = 1 } } if ($sino -eq 0){ Write-Output "El usuario no existe." } } 4{ Write-Output "Alumnos existentes: " foreach ($alumno in $alumnos.GetEnumerator()){ Write-Output $alumno.name } } 5{ Write-Output "Saliendo del programa..." exit } default{ Write-Output "Opción incorrecta." } } } while ($op -ne 4) # fin del programa
No hay comentarios:
Publicar un comentario