Zkontrolujte integritu souboru aktualizace systému Windows

Check Windows Update File Integrity



Řešení:

Všechny soubory Windows Update (.exe, .msi, .msu, .cab) jsou podepsány pomocí Authenticode - hash dat spolu s digitálním podpisem jsou vloženy do souboru, aby jej mohl Windows sám ověřit.

  • Prostřednictvím prostředí PowerShell:



    Get-AuthenticodeSignature foo.cab | Seznam formátů
  • Prostřednictvím Cmd (pouze pokud máte nainstalovanou sadu Windows 10 SDK):



    signtool verify /v /pa foo.msi
  • Prostřednictvím GUI:



    1. Klikněte pravým tlačítkem na soubor, vyberte „Vlastnosti“ → „Digitální podpisy“.
    2. Vyberte podpis ze seznamu a klikněte na 'Podrobnosti'.

Ve všech třech případech se ujistěte, že je podpis platný a pochází z 'PC Code Signing PCA' (řetězení do kořenové certifikační autority Microsoft).

Všimněte si, že samotné hash MD5 nebo SHA1 nejsou podpisy. Podpis je vytvořen kombinací hash a tajného klíče (například podpisový certifikát Authenticode).


Pokud jste aktualizační soubory stáhli prostřednictvím katalogu Microsoft Update:



zde zadejte popis obrázku

V názvu souboru uvidíte SHA1 balíčku MSU:

zde zadejte popis obrázku

Modře zvýrazněný řetězec je jeho hodnota SHA-1 (Secure Hash Algorithm-1), která má vždy 40 znaků, tato hodnota se změní, pokud se změní obsah souboru.

Tuto metodu můžete použít ke kontrole, zda je soubor autentický, můžete k tomu použít PowerShell;

Nejprve otevřete PowerShell:

Win+R >> typPowerShell >> Ctrl+Shift+Enter

Poté potřebujete úplnou cestu k souboru a název souboru, v tomto případě se soubor stáhne do výchozí složky pro stahování, která jeC: Users USERNAME Downloads, v PowerShell můžete použít tuto proměnnou:$ home reprezentovatC: Users Username (váš uživatelský profil) složka.

Můžeš použítZískejte rutinu Get-Filehash, abyste získali hash souboru a zkontrolovali jej proti hash v jeho názvu souboru pomocí-eq operátor, pokud je výsledekpravda, pak je soubor dobrý. Pokud se vrátífalse, pak je soubor poškozen.

Uvedu tento příklad, abych metodu lépe popsal:

(get-filehash -path '$ home  downloads  windows10.0-kb4592438-x86_95758bd6e2c3a4a98a19efaa4056213531f84f5c.msu' -algorithm SHA1) .hash -eq 'windows10.0-kb4592438-x86_95753bd6 ] .podřetězec (0,40)

Vrací se topravda, znamená to, že můj soubor není poškozen.

Když ho používáte, stačí nahradit název souboru a cestu k souboru skutečným názvem a cestou k souboru, který chcete zkontrolovat. A pak je dobré jít.


Odpověď Суомынона je správná, jen chci dodat, že kód můžete zabalit do funkce:

funkce Kontrola-Aktualizace {Param ([Parametr (Povinný = $ True, Valuefrompipeline = $ True)] [Validatenotnullorempty ()] [String] $ Path) $ IsGood = $ false if ($ (Test-Path $ Path)-a $ Path.EndsWith ('. Msu')) {$ SHA1 = [System.IO.Path] :: GetFileNameWithoutExtension ($ Path) .Split ('_') [1] $ Hash = (Get -FileHash -Path $ cesta - Algoritmus SHA1). Hash $ IsGood = $ ($ SHA1 -eq $ Hash) Přepínač ($ IsGood) {$ true {Write-Host 'Váš aktualizační soubor: $ cesta NENÍ poškozena'} $ false {Write-Host 'Vaše aktualizace soubor: $ path IS poškozen '}}} else {Write -Error -Message' Aktualizovat soubor: $ path neexistuje jako platný aktualizační soubor '}}

Vložte funkci do funkční relace PowerShell a poté můžete zkontrolovat integritu aktualizačního souboru voláním funkce, např .:

Zaškrtněte a aktualizujte '$ home  downloads  windows10.0-kb4592438-x86_95758bd6e2c3a4a98a19efaa4056213531f84f5c.msu'

Pokud je vše v pořádku, vrátí se:

Váš aktualizační soubor: C:  Users  Estranger  downloads  windows10.0-kb4592438-x86_95758bd6e2c3a4a98a19efaa4056213531f84f5c.msu NENÍ poškozený

Doufám, že vám moje odpověď pomůže; Pozdravy.