Ejercicios de PowerShell: crear un usuario con su contraseña, crear una carpeta para el usuario, compartir esa carpeta y añadir en esa carpeta un fichero con los hash de todos los procesos que se están ejecutando y otro fichero con los hash de los todos los ficheros dll. Todos los valores que necesitamos están escritos en un fichero

– Crear usuario con contraseña leyendo de un fichero utilizando una función, crear una carpeta para el usuario y compartir

# Fichero de ejemplo:
# pepito, P$aswo12

function crearusuario($fichero)
{
    foreach ($usuario in Get-Content $fichero)
    {
        $pass = ConvertTo-SecureString $usuario.Split(",")[1] -AsPlainText -Force
        New-LocalUser -Name $usuario.Split(",")[0] -Password $pass
        New-Item -Name $usuario.Split(",")[0] -ItemType Directory
        New-SmbShare -Name fso2 -Path ("C:\Users\juan\"+$usuario.Split(",")[0]) -FullAccess administrador,todos
        New-PSDrive -Name rutafso3 -PSProvider FileSystem -Root \\localhost\fso3
    }
}

crearusuario .\usuarios.txt

– Hash de los programas que se están ejecutando

function hashprogramas()
{
    foreach ($fichero in Get-Process | select name,path)
    {
        $fichero.name, (Get-FileHash $fichero.Path).Hash
    }
}

Set-Location rutafso3:\
hashprogramas | Out-File resultado.txt

– Hash de todos los ficheros dll

function hashdll()
{
    foreach ($fichero in ((Get-Process).Modules.FileName | group).name)
    {
        Get-FileHash $fichero | select name,hash
    }
}

Set-Location rutafso3:\
hashdll | Out-File resultadodll.txt