Buscar este blog

martes, 15 de octubre de 2013

4. Ejericicios PowerShell

4. Ejericicios PowerShell 



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.

------------------------------------------------------------------------------------------------------------

# Introduce un directorio que muestre la información de su contenido en orden de tamaño mostrando el nombre y el tamaño
# Miguel Revuelta

$i=0
while ($i -eq 0)
{
    Write-Output "Introduce el directorio"
    $direc= Read-Host
    if (Test-Path $direc)
    { $i=1   }
    else { Write-Output "El directorio no existe." }
}
#muestra el contenido del directorio, solo el tamaño y el nombre y lo ordena por tamaño.
cd $direc
Get-ChildItem | Select-Object length, name | Sort-Object -Descending length
cd..




------------------------------------------------------------------------------------------------------------

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.

------------------------------------------------------------------------------------------------------------
#Mostar los puertos abiertos

$Puertos=Get-NetTCPConnection #| Where-Object -FilterScript {$_.state -eq "listen"}
#Write-Output $Puertos
Write-Output "Los puertos que estan abiertos son:"
for($i=0;$i -lt $puertos.length;$i++)
{
    if ($Puertos[$i].State -eq "listen")
    {
        Write-Output "Este puerto esta abierto: " $Puertos[$i]
    }else{
        Write-Output $puertos[$i]
    }
}


------------------------------------------------------------------------------------------------------------

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
------------------------------------------------------------------------------------------------------------
#Write-Output "Introduce el espacio minimo que tiene que tener libre (GB): "
#$espacio= Read-Host
#$espacio=$espacio*1000000
#Write-Output $espacio

$Unidades=Get-PSDrive | select root, used, free

Write-Output $Unidades.Length

for ($unid=0;$unid -lt $Unidades.Length;$unid++) {
 
    $tamaño=$Unidades[$unid].free
    #Write-Output $tamaño
    if ($Unidades[$unid].root -ne "" -and $Unidades[$unid].root -ne "\")
    {
        if ($Unidades[$unid].free -lt 2000000)#$espacio)
        {
             Write-Output $Unidades[$unid].root "tiene poco espacio libre. Espacio libre: "$Unidades[$unid].free
        }
        else
        {
            Write-Output $Unidades[$unid].root "tiene espacio libre. Espacio libre: "$Unidades[$unid].free
        }
    }
}

------------------------------------------------------------------------------------------------------------

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.
------------------------------------------------------------------------------------------------------------


#Gestion de usuario

$tabla_usuario=@{
"Juan"=@{nombre="juan";cuenta="juan";contrasena="12345678"};
"Pablo"=@{nombre="Pablo";cuenta="Pablo";contrasena="12345678"};
"Ana"=@{nombre="Ana";cuenta="Ana";contrasena="12345678"}



}
$valor=0

while ($valor -ne 5)



{
Write-Output "Menu de gestion de un usuario"
Write-Output "-----------------------------------------"
Write-Output " 1 Crear un usuario"
Write-Output " 2 Borrar un usuario"
Write-Output " 3 Buscar un usuario"
Write-Output " 4 Mostar todos los usuarios"
Write-Output " 5 Salir"
$valor=Read-Host

switch($valor)



{
1 { Write-Output " Crear usuario"
Write-Output "-----------------------------------------"
# $verdadero=0
#comprobamos que el nuevo usuario no existe
#Introducimos los datos en la tabla de usuarios
Write-Output "Introduce el nombre del usuario: "
$usuario=Read-Host
Write-Output "Introduce la cuenta de usuario:"
$cuenta=Read-Host
Write-Output "Introduce la contraseña de usuario:"
$contra=Read-Host
$tabla_usuario=@{$usuario=@{nombre=$usuario;cuenta=$cuenta;contrasena=$contra}}



}
2 {
Write-Output " Borrar usuario"
Write-Output "-----------------------------------------"

write-output "Introduce el usuario que quieres eliminar."
$usuario= read-host
#Write-Output $tabla_usuario[$usuario].Values

if($tabla_usuario.ContainsKey($usuario)) {
write-output " El usuario se ha eliminado:"
$tabla_usuario.Remove($usuario)

}else


{
Write-Output "El usuario introducido no existe"


}

}
3 {
Write-Output " Buscar usuario"
Write-Output "-----------------------------------------"
write-output "Introduce el usuario que quieres buscar."
$usuario= read-host

if($tabla_usuario.ContainsKey($usuario)) {
write-output " El usuario buscado es:"
Write-Output $usuario.key
write-output $($usuario.Value["cuenta"])
write-output $($usuario.Value["contrasena"])
Write-Output "-----------------------------------------"

}else


{
Write-Output "El usuario introducido no existe"


}

}
4 {
Write-Output " Mostar usuarios"
Write-Output "-----------------------------------------"
foreach($usuario in $tabla_usuario.GetEnumerator())



{
Write-Output $usuario.key
write-output $($usuario.Value["cuenta"])
write-output $($usuario.Value["contrasena"])
Write-Output "-----------------------------------------"


}

}

}

}

 
Write-Output " Has salido del programa."
------------------------------------------------------------------------------------------------------------

No hay comentarios:

Publicar un comentario