Benutzer mit den meisten Antworten
Ermittelten MD5-Hash in neue Datei schreiben?

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
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:
Grüße, Denniver$FileMD5 | Out-File d:\hash.txt
#oder
set-content d:\hash.txt $FileMD5
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".- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Montag, 19. März 2012 16:48
- Bearbeitet Denniver ReiningMVP, Moderator Montag, 19. März 2012 23:04
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 20. März 2012 15:12
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:
Grüße, Denniver$FileMD5 | Out-File d:\hash.txt
#oder
set-content d:\hash.txt $FileMD5
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".- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Montag, 19. März 2012 16:48
- Bearbeitet Denniver ReiningMVP, Moderator Montag, 19. März 2012 23:04
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 20. März 2012 15:12
-
Ä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
-
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".