sobota, 28 marca 2020

PowerShell: Generowanie sum kontrolnych MD5 z plików znajdujących się w napędzie optycznym (i nie tylko)

Na podstawie Rozporządzenia Ministra Sprawiedliwości z dnia 11.01.2017r. w sprawie utrwalania obrazu lub dźwięku dla celów procesowych w postępowaniu karnym, dokonując tworzenia / kopiowania nośników w sądach, powinniśmy tworzyć razem z nimi odpowiednie Metryki Identyfikacyjne Nośnika w skład której, w pkt. 7, należy podać:

  • Nazwa i wersja oprogramowania użytego do wygenerowania sum kontrolnych
  • Użyty algorytm (jeżeli oprogramowanie używa więcej niż jednego algorytmu)
  • Sumy kontrolne
Jest do tego celu wiele programów, jak np. darmowy HashMyFiles.

Większość z nich wymaga jakiejś podstawowej obsługi, natomiast moim celem (poza ćwiczeniem PowerShella), było przygotować narzędzie bezobsługowe. 

Taki też jest skrypt, który do tego celu przygotowałem, noszący nazwę Get-ControlSumFromOpticalDrive i którego najnowszą wersję można pobrać z GitHuba.

Skrypt Get-ControlSumFromOpticalDrive otworzony w edytorze Visual Studio Code
Skrypt Get-ControlSumFromOpticalDrive otworzony w edytorze Visual Studio Code (prawda, że piękny? ;)
Wystarczy go uruchomić, a on odszuka napęd optyczny w systemie, przeskanuje go rekursywnie pod kątem plików i przygotuje listę sum kontrolnych. 
Poniżej przykład rezultatu uzyskanego w wyniku skanowania płyty z grą Need For Speed.

Lp  Algorytm Hash                             Plik
--  -------- ----                             ----
1.  MD5      493BEA15925BDFEF65D0BC766B7F7E82 blank.vp6
2.  MD5      D9789F5A25F43D853ED0B720DD456EC3 DragTut_en.vp6
3.  MD5      ACA97CCC160516DA7E76F61AC0331F34 DriftTut_en.vp6
.
.
43. MD5      B691660F5F2535761E70A4D877BFA460 RunGame.exe
44. MD5      AF60560F93DF54BC2A41BDEF6B13958D speed2.exe

W napedzie / sciezce -F:- jest: 44 pliki / plikow o sumarycznym rozmiarze: 660.6 MB

Domyślnie skrypt poszukuje napędu optycznego, ale to zachowanie można zmienić poprzez parametr - sciezka podając ścieżkę do folderu, który ma zostać przeskanowany zamiast płyty CD / DVD.

Ponadto, usuwając w kodzie komentarz (znak #) w poleceniu # | Out-Printer; wynik zamiast na konsolę będzie drukowany od razu na drukarce domyślnej.

Na dzisiaj tak to działa.

W miarę wolnego czasu do zrobienia pozostało wysyłanie wyniku także do pliku PDF. 

Brak komentarzy:

Prześlij komentarz

Bardzo proszę o zachowanie netykiety.