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