mkdir dlls
cd dlls
"dll1" | Out-File dll1.dll
"dll2" | Out-File dll2.dll
# Recorrrer una a una dll
ls *.dll | %{$_}
# Hacer hash de cada dll
ls *.dll | %{Get-FileHash $_.FullName | Select-Object Hash}
# Hacer hash de cada dll ruta por red
ls '\\localhost\c$\Users\juan\dlls' *.dll | %{Get-FileHash $_.FullName | Select-Object Hash,Path}
# Guardar hash
ls '\\localhost\c$\Users\juan\dlls' *.dll | %{Get-FileHash $_.FullName | Select-Object Hash,Path | Out-File listado.txt -Append}
# Ver listado
gc .\listado.txt
# Modificar dll y detectar el cambio, después mover la dll, solución: el hash de cada dll no se encuentra en el fichero listado.txt, eso quiere decir que se ha modificado y hay que copiar a la carpeta compartida en Linux
# Modificar dll
"dll6" | Out-File dll1.dll
ls '\\localhost\c$\Users\juan\dlls' *.dll | %{
if((gc .\listado.txt) -match (Get-FileHash $_.FullName | Select-Object Hash).hash)
{
}
else
{
$_.Name
"Dll se ha modificado"
}
}
# Meter el código anterior en el recorrido que cada alumno tenga
123..125 | %{
$ruta="\\192.168.104." + $_ +"\c$\*.dll"
ls $ruta -recurse
}
# Almacenar el hash de la dll para todos los equipos de la red
foreach($equipo in gc .\equipos1.txt) {
$llistar="\\"+$equipo+"\c$"
ls $llistar -recurse *.dll | %{
$valorse = Get-FileHash ($_ | select FullName).FullName
$valorse.path+"|"+$valorse.Hash | Out-File hasehees.txt
}
}
# Verificar si una dll no ha cambiado su hash
gc .\hasehees.txt | %{
if($_.split("|")[0].contains("jawt.dll"))
{
if($_.split("|")[1] -eq (Get-FileHash "\\ABANTOS21\c$\Cache\pc-client.exe-16.3.0.37857\runtime\jre\bin\jawt.dll" | select hash).hash)
{
"CORRECTO"
}
}
}