Xpert
Stammgast
Ich habe mir ca. 1 Woche nach meinem Beitrag ein Powershell-Skript geschrieben, da ich die Funktion selber sehr häufig im Job benötige. Hier als Ergänzung das Skript, welches eventuell sonst noch jemand einsetzen kann:
Der Code kann in eine *.ps1 Datei gespeichert werden z.B. HashCompare.ps1
Zum Ausführen dann in Powershell/Cmd:
oder wenn man bereits im richtigen Pfad mit PowerShell ist:
Alternative kann der obige Befehl auch in eine Bat-Datei gepackt werden, dann würde ich aber den PowerShell Code ganz am Schluss mit:
ergänzen. Ansonsten wird das Fenster nach der Berechnung gleich wieder geschlossen.
Nach der Ausführung kommt folgende Frage:
Hier entweder direkt dem Pfad zur Datei via Zwischenablage einfügen oder die 1 drücken und enter um den Dateiexplorer zur Dateiauswahl zu öffnen.
Have fun....
Code:
#Compare hash of downloaded files
#Author: Xpert for PCTipp 02/2020
Add-Type -AssemblyName System.Windows.Forms
$choosePathOption = ""
cls
#Algorithms to choose from
$const_sha1 = "sha1"
$const_sha256 = "sha256"
$const_sha384 = "sha384"
$const_sha512 = "sha512"
$const_MACTripleDES = "MACTripleDES"
$const_md5 = "md5"
$const_RIPEMD160 = "RIPEMD160"
$FileBrowser = New-Object System.Windows.Forms.OpenFileDialog -Property @{ InitialDirectory = [Environment]::GetFolderPath('Desktop') }
$choosePathOption = Read-Host -Prompt "Pfad einfügen oder '1' für FileExplorer"
if($choosePathOption -match '1'){
$null = $FileBrowser.ShowDialog()
$pathToFile = $FileBrowser.FileName
}
else{
$pathToFile = $choosePathOption
}
$ChooseAlgorithmToUse = Read-Host -Prompt "Welchen Algorithmus (0-6)? $const_sha1 (0), $const_sha256 (1), $const_sha384 (2), $const_sha512 (3), $const_MACTripleDES (4), $const_md5 (5), $const_RIPEMD160 (6)"
switch ( $ChooseAlgorithmToUse )
{
0 { $AlgorithmToUse = "sha1" }
1 { $AlgorithmToUse = "sha256" }
2 { $AlgorithmToUse = "sha384" }
3 { $AlgorithmToUse = "sha512" }
4 { $AlgorithmToUse = "MACTripleDES" }
5 { $AlgorithmToUse = "md5" }
6 { $AlgorithmToUse = "RIPEMD160" }
}
$pathToFile = $pathToFile -replace ('"', '')
$hashExpected = Read-host -Prompt "Erwarter Hash (z.B. auf Webseite angegeben) zur Kontrolle"
Write-Host "Berechne hash und vergleiche...bitte warten"
$hashFromFile = get-filehash -path $pathToFile -Algorithm $AlgorithmToUse | Select -ExpandProperty "Hash"
if($hashExpected -match $hashFromFile){
Write-Host "Vergleich positiv" -ForegroundColor Green
Write-host $hashExpected.ToLower()
Write-Host $hashFromFile.ToLower()
exit
}
Write-Host "Vergleich negativ" -ForegroundColor Red
Write-host $hashExpected.ToLower()
Write-Host $hashFromFile.ToLower()
Der Code kann in eine *.ps1 Datei gespeichert werden z.B. HashCompare.ps1
Zum Ausführen dann in Powershell/Cmd:
Code:
powershell -executionpolicy bypass -File "[COLOR="#FF8C00"]PfadZumPowerShellFile[/COLOR]\HashCompare.ps1"
oder wenn man bereits im richtigen Pfad mit PowerShell ist:
Code:
".\HashCompare.ps1"
Alternative kann der obige Befehl auch in eine Bat-Datei gepackt werden, dann würde ich aber den PowerShell Code ganz am Schluss mit:
Code:
read-host "Zum beenden eine Taste drücken..."
ergänzen. Ansonsten wird das Fenster nach der Berechnung gleich wieder geschlossen.
Nach der Ausführung kommt folgende Frage:
Code:
Pfad einfügen oder '1' für FileExplorer:
Hier entweder direkt dem Pfad zur Datei via Zwischenablage einfügen oder die 1 drücken und enter um den Dateiexplorer zur Dateiauswahl zu öffnen.
Have fun....
Zuletzt bearbeitet: