PowerShell Hashing

exprexs

Member
חשב HASH לקבצים בכוננים הבאים.
הסיומת | Format-List, רק רשות. זו האחרונה אחראית למן דו"ח מפורט.
פירוט לגבי סוג האלגוריתם, איננו חובה. ברירת המחדל, SHA256.

( דוגמא לאי פירוט אלגוריתם ) "Get-FileHash "File-Path
"Get-FileHash -Algorithm MD5 "File-Path
"Get-FileHash -Algorithm SHA1 "File-Path
"Get-FileHash -Algorithm SHA256 "File-Path
Get-FileHash -Algorithm SHA512 "File-Path" | Format-List


וודא זהות או שונות של שני קבצים על פי חישוב ערכי ה HASH שלהם.
ברירת המחדל לבדיקת HASH ב POWERSHELL, היא SHA256.

קוד:
# Compare 2 files by Hashes
$AlgType = 'SHA1'
$FilePath1 = 'File_path1'
$FilePath2  = 'File_path2'
$HashSrc = Get-FileHash -A $AlgType $FilePath1
$HashDest = Get-FileHash -A $AlgType $FilePath2
If ($HashSrc.Hash -eq $HashDest.Hash) {'Both Files Are Identical'} else {'Both Files Are Different'}

חלופה אחרת
קוד:
# Compare 2 files by Hashes
$AlgType = 'SHA1'
$FilePath1 = 'File_path1'
$FilePath2  = 'File_path2'
$HashSrc = Get-FileHash -A $AlgType $FilePath1
$HashDest = Get-FileHash -A $AlgType $FilePath2
@('Different', 'Identical')[($HashSrc.Hash -eq $HashDest.Hash )]

 
נערך לאחרונה ב:

exprexs

Member
וודא ערך ה HASH של הקובץ, ביחס לערך המצופה ( קרא כאן )
.

קוד:
# Get the file Hash & Compare it to your Expected- Hash -Value
$AlgType = 'SHA1'
$FilePath = 'File_path'
$ExpectedHash = 'Expected_Hash_Value'
$HashSrc = Get-FileHash -A $AlgType $FilePath
If ($HashSrc.Hash -Eq $ExpectedHash) {'Both Values Are Identical'} else {'Both Values Are Different'}
#
אפשר גם כך
קוד:
# Get the file Hash & Compare it to your Expected- Hash -Value
$AlgType = 'SHA1'
$FilePath = 'File_path'
$ExpectedHash = 'Expected_Hash_Value'
$HashSrc = Get-FileHash -A $AlgType $FilePath
Switch ($HashSrc.Hash -eq $ExpectedHash) {
    $True {Write-Host "Both Values Are Identical"} 
    Default {Write-Host "Both Values Are Different"}}
וגם כך
קוד:
# Get the file Hash & Compare it to your Expected- Hash -Value
$AlgType = 'SHA1'
$FilePath = 'File_path'
$ExpectedHash = 'Expected_Hash_Value'
$HashSrc = Get-FileHash -A $AlgType $FilePath
@('Different', 'Identical')[($HashSrc.Hash -eq $ExpectedHash)]
#
 
נערך לאחרונה ב:

exprexs

Member
דרך חלופית לבדיקת ערכי האש, בעזרת פקודת Compare-Object.
פק' Compare-Object חסרת פלט חיובי או שלילי, מכאן הצורך להציב לה פלט כזה במשתנים שאינם הכרחיים בתסריטים הקודמים.



קוד:
# Compare 2 files by Hashes
$AlgType = 'SHA1'
$FilePath1 = 'File_path1'
$FilePath2  = 'File_path2'
$HashSrc = Get-FileHash -Alg $AlgType $FilePath1
$HashDest = Get-FileHash -Alg $AlgType $FilePath2
$Result = Compare-Object $HashSrc.Hash $HashDest.Hash
$Condition = $Result -eq $null
Switch ($Condition) {
       $True { Write-Host "True" }    
       Default { Write-Host "False" }}
ניתן לשבץ צביר פקודות חלופי להצהרת If.
קוד:
$Condition = $Result -eq $null
@('False', 'True')[$Condition]
 
נערך לאחרונה ב:

exprexs

Member
השווה שני מסמכי תמליל, על פי תוכן התמליל

קוד:
    # Compare Objects by Content
$FilePath1 = ''
$FilePath2 = ''
$Content1 = (Get-Content -Path $FilePath1 )
$Content2 = (Get-Content -Path $FilePath2 )
$Objects = @{
            ReferenceObject = $Content1
            DifferenceObject = $Content2 }
Compare-Object @Objects
#
כך זה עם אליאסים
קוד:
                    # Compare Objects by Content
$FilePath1 = ''
$FilePath2 = ''
$Objects = @{
            ReferenceObject = (Cat -Path $FilePath1 )
            DifferenceObject = (Cat -Path $FilePath2 )    }
Compare @Objects
#
 
למעלה