Ejercicios scripts PowerShell. Usuarios y Grupos

Gestión de usuarios y grupos
script1.ps1 Pide nombre de usuario y crea dicho usuario sin contraseña

$nombre=Read-Host "Dime un nombre para el nuevo usuario"
New-LocalUser $nombre -NoPassword

script2.ps1 Pide nombre de usuario y crea dicho usuario con contraseña

$nombre=Read-Host "Dime un nombre para el nuevo usuario"
$contra=Read-Host "Dime una contraseña para el nuevo usuario" -AsSecureString
New-LocalUser $nombre -Password $contra

script3.ps1 Pide nombre de usuario existente y una descripción nueva y cambia dicha descripción

$nombre=Read-Host "Dime un nombre de usuario existente"
$descripcion=Read-Host "Dime una nueva descripción"
set-LocalUser $nombre -Description "$descripcion"

script4.ps1 Pide un nombre de usuario existente y desactiva dicha cuenta

$nombre=Read-Host "Dime un nombre de usuario existente para desactivarlo"
Disable-LocalUser $nombre

script5.ps1 Menú de usuarios

1. Listar usuarios
2. Crear usuarios (pide usuario y contraseña)
3. Elimina usuarios (pide usuario)
4. Modifica usuarios (pide usuario y nuevo nombre)
5. Salir
Seleccione opción

Una opción es hacerlo con el "do-while"
do 
{
	clear-host
	Write-Host "1.Listar usuarios"
	Write-Host "2.Crear usuarios(pide usuario y contraseña)"
	Write-Host "3.Elimina usuarios(pide usuario)"
	Write-Host "4.Modifica usuarios(pide usuario y nuevo nombre)"
	Write-Host "5.Salir"
	$x=Read-Host "Seleccione opción"

if ($x -eq 1)
{
    cls
    Get-LocalUser|ft
}
if ($x -eq 2)
{
    cls
    $nombrecr=Read-Host "Dime un nombre para el nuevo usuario"
    $contra=Read-Host "Dime una contraseña para el nuevo usuario" -AsSecureString
    New-LocalUser $nombrecr -Password $contra
}
if ($x -eq 3)
{
    cls
    $nombrerm=Read-Host "Dime un nombre de usuario para eliminar"
    Remove-LocalUser $nombrerm -Confirm
}
if ($x -eq 4)
{
    cls
    $nombreviejo=Read-Host "Dime un nombre de usuario existente"
    $newname=Read-Host "Dime un nuevo nombre"
    Rename-LocalUser $nombreviejo -NewName "$newname"
}
if ($x -ne 5){
read-host "Pulse para continuar"
}
} while($x -ne 5)

Y otra opción es hacerlo con el while, definiendo antes un valor para la variable

$x=0
while ($x -ne 5)
{
    Clear-host
Write-Host "1.Listar usuarios"
Write-Host "2.Crear usuarios(pide usuario y contraseña)"
Write-Host "3.Elimina usuarios(pide usuario)"
Write-Host "4.Modifica usuarios(pide usuario y nuevo nombre)"
Write-Host "5.Salir"
$x=Read-Host "Seleccione opción"

if ($x -eq 1)
{
    cls
    Get-LocalUser|ft
}
if ($x -eq 2)
{
    cls
    $nombrecr=Read-Host "Dime un nombre para el nuevo usuario"
    $contra=Read-Host "Dime una contraseña para el nuevo usuario" -AsSecureString
    New-LocalUser $nombrecr -Password $contra
}
if ($x -eq 3)
{
    cls
    $nombrerm=Read-Host "Dime un nombre de usuario para eliminar"
    Remove-LocalUser $nombrerm -Confirm
}
if ($x -eq 4)
{
    cls
    $nombreviejo=Read-Host "Dime un nombre de usuario existente"
    $newname=Read-Host "Dime un nuevo nombre"
    Rename-LocalUser $nombreviejo -NewName "$newname"
}
if ($x -ne 5){
read-host "Pulse para continuar"
}
}


script6.ps1 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
Seleccione opción

Con el while
$x=0
while ($x -ne 7)
{
   Clear-host
   Write-Host "1. Listar grupos"
   Write-Host "2. Ver miembros de un grupo"
   Write-Host "3. Crear grupo (pide nombre grupo)"
   Write-Host "4. Elimina grupo (pide nombre grupo)"
   Write-Host "5. Crea miembro de un grupo (pide grupo y usuario)"
   Write-Host "6. Elimina miembro de un grupo (pide grupo y usuario)"
   Write-Host "7. Salir"
   $x=Read-Host "Seleccione opción"
   if ($x -eq 1)
   {
        cls
    Get-LocalGroup|ft
   }
   if ($x -eq 2)
   {
       cls
       $nomgr2=Read-Host "Dime el grupo del que deseas ver los miembros"
       Get-LocalGroupMember $nomgr2 |fl

   }
   if ($x -eq 3)
   {
       cls
       $nomgr3=Read-Host "Dime el nombre del nuevo grupo"
       New-LocalGroup $nomgr3
   }
   if ($x -eq 4)
   {
       cls
       $nomgr4=Read-Host "Dime el grupo que deseas eliminar"
       Remove-LocalGroup –Confirm $nomgr4 
   }
   if ($x -eq 5)
   {
       cls
       $nomusu=Read-Host "Dime el nombre del usuario que quieres meter"
       $nomgr5=Read-Host "Dime el nombre del grupo"
       Add-LocalGroupMember $nomgr5 -Member $nomusu 
   }
   if ($x -eq 6)
   {
       cls
       $nomusu2=Read-Host "Dime el nombre del usuario que quieres eliminar"
       $nomgr6=Read-Host "Dime el nombre del grupo"
       Remove-LocalGroupMember $nomgr6 -Member $nomusu2
   }
  if ($x -ne 7){
read-host "Pulse para continuar"
}
}

E igualmente con el do-while

do
{
   Clear-host
   Write-Host "1. Listar grupos"
   Write-Host "2. Ver miembros de un grupo"
   Write-Host "3. Crear grupo (pide nombre grupo)"
   Write-Host "4. Elimina grupo (pide nombre grupo)"
   Write-Host "5. Crea miembro de un grupo (pide grupo y usuario)"
   Write-Host "6. Elimina miembro de un grupo (pide grupo y usuario)"
   Write-Host "7. Salir"
   $x=Read-Host "Seleccione opción"
   if ($x -eq 1)
   {
        cls
    Get-LocalGroup|ft
   }
   if ($x -eq 2)
   {
       cls
       $nomgr2=Read-Host "Dime el grupo del que deseas ver los miembros"
       Get-LocalGroupMember $nomgr2 |fl

   }
   if ($x -eq 3)
   {
       cls
       $nomgr3=Read-Host "Dime el nombre del nuevo grupo"
       New-LocalGroup $nomgr3
   }
   if ($x -eq 4)
   {
       cls
       $nomgr4=Read-Host "Dime el grupo que deseas eliminar"
       Remove-LocalGroup –Confirm $nomgr4 
   }
   if ($x -eq 5)
   {
       cls
       $nomusu=Read-Host "Dime el nombre del usuario que quieres meter"
       $nomgr5=Read-Host "Dime el nombre del grupo"
       Add-LocalGroupMember $nomgr5 -Member $nomusu 
   }
   if ($x -eq 6)
   {
       cls
       $nomusu2=Read-Host "Dime el nombre del usuario que quieres eliminar"
       $nomgr6=Read-Host "Dime el nombre del grupo"
       Remove-LocalGroupMember $nomgr6 -Member $nomusu2
   }
if ($x -ne 7){
read-host "Pulse para continuar"
}
} while ($x -ne 7)

Sé el primero en comentar

Deja un comentario