none
Ermittelten MD5-Hash in neue Datei schreiben? RRS feed

  • Frage

  • Moin,

    mit diesem Code kann ich mir den Hash-Wert einer Datei ermitteln:

    function Hash-MD5 ($file) {
        $hasher = [System.Security.Cryptography.MD5]::Create()
        $inputStream = New-Object System.IO.StreamReader ($file)
        $hashBytes = $hasher.ComputeHash($inputStream.BaseStream)
        $inputStream.Close()
        $builder = New-Object System.Text.StringBuilder
        $hashBytes | Foreach-Object { [void] $builder.Append($_.ToString("X2")) }
        $output = New-Object PsObject
        $output | Add-Member NoteProperty HashValue ([string]$builder.ToString())
        $output.hashvalue
    }

    $file="D:\Whitelist_Script/HE_test.txt"
    $FileMD5=Hash-MD5 ($file)

    So lasse ich mir den Wert ausgeben und bekomme 00EE81682D9186E392E96B6E8E857344 angezeigt.

    echo "MD5 von $file ist $FileMD5".

    Diesen Wert möchte ich in eine neue Datei schreiben, bekomme dann aber nur das in die neue Datei geschrieben:

    #TYPE System.String
    "Length"
    "32"

    Ich habs mit diesen Varianten probiert und das Ergebnis ist immer gleich:

    1. $FileMD5=Hash-MD5 ($file) | Export-Csv "D:\Whitelist_Script/HE_test_hash.txt"

    2.

    $FileMD5=Hash-MD5 ($file)
    Export-Csv -InputObject $FileMD5 "D:\Whitelist_Script/HE_test_hash.txt"

    Könnt ihr mir einen Tipp geben, wie ich den ermittelten Hash-Wert in eine neue Datei bekomme?

    Danke für Tipps!


    Matthias


    Montag, 19. März 2012 15:51

Antworten

  • Mir ist nicht ganz klar warum du "export-csv" bei deinen Versuchen benutzt hast, obwohl du nur einen einzelnen String ausgibst. Hatte das einen bestimmten Grund?

    Export-CSV ist (wie der Name schon sagt) dafür da, Komma-Separierte Dateien zu erzeugen. Gut geeignet für Wertreihen wie "2012,23,647,5465,Donnerstag,Grün".

    Grundsätzlich klappt die Ausgabe z.b. so:

    $FileMD5 | Out-File d:\hash.txt

    #oder
    set-content d:\hash.txt $FileMD5

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".


    Montag, 19. März 2012 16:32
    Moderator

Alle Antworten

  • Mir ist nicht ganz klar warum du "export-csv" bei deinen Versuchen benutzt hast, obwohl du nur einen einzelnen String ausgibst. Hatte das einen bestimmten Grund?

    Export-CSV ist (wie der Name schon sagt) dafür da, Komma-Separierte Dateien zu erzeugen. Gut geeignet für Wertreihen wie "2012,23,647,5465,Donnerstag,Grün".

    Grundsätzlich klappt die Ausgabe z.b. so:

    $FileMD5 | Out-File d:\hash.txt

    #oder
    set-content d:\hash.txt $FileMD5

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".


    Montag, 19. März 2012 16:32
    Moderator
  • Äh, der einzige Grund ist Unwissenheit würde ich sagen :)

    Das ist mein erster Versuch mit Powershell... Das ist bislang das Ergebnis, was ich mit Hilfe von Google und PowerGUI zusammenstellen konnte.

    Mit

    $FileMD5 | Out-File d:\hash.txt

    gehts natürlich einwandfrei...

    Vielen Dank, ich werde hier in naher Zukunft sicherlich häufiger eine Frage posten (sofern ich keine Lösung finden konnte natürlich).

    Matthias


    Montag, 19. März 2012 16:46
  • Klar, bis bald. :)

    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Montag, 19. März 2012 16:49
    Moderator