1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
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" } } } |