Set-AuthenticodeSignature
Přidá podpis Authenticode do skriptu PowerShellu nebo jiného souboru.
Syntax
ByPath (Výchozí)
Set-AuthenticodeSignature
[-Certificate] <X509Certificate2>
[-FilePath] <String[]>
[-IncludeChain <String>]
[-TimestampServer <String>]
[-HashAlgorithm <String>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Set-AuthenticodeSignature
[-Certificate] <X509Certificate2>
-LiteralPath <String[]>
[-IncludeChain <String>]
[-TimestampServer <String>]
[-HashAlgorithm <String>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Rutina Set-AuthenticodeSignature přidá podpis Authenticode do libovolného souboru, který podporuje balíček SIP (Subject Interface Package).
V souboru skriptu PowerShellu má podpis formu bloku textu, který označuje konec pokynů, které jsou spuštěny ve skriptu. Pokud je v souboru při spuštění této rutiny podpis, odebere se tento podpis.
Příklady
Příklad 1 – Podepsání skriptu pomocí certifikátu z místního úložiště certifikátů
Tyto příkazy načtou podpisový certifikát kódu od zprostředkovatele certifikátu PowerShellu a použijí ho k podepsání skriptu PowerShellu.
$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $cert
První příkaz používá rutinu Get-ChildItem a zprostředkovatele certifikátů PowerShellu k získání certifikátů v podadresáři Cert:\CurrentUser\My úložiště certifikátů. Jednotka Cert: je jednotka zpřístupněná poskytovatelem certifikátu. Parametr CodeSigningCert, který je podporován pouze poskytovatelem certifikátu, omezuje certifikáty načtené na certifikáty s certifikační autoritou pro podpis kódu. Příkaz uloží výsledek do proměnné $cert.
Druhý příkaz používá rutinu Set-AuthenticodeSignature k podepsání skriptu PSTestInternet2.ps1. Pomocí parametru FilePath určuje název skriptu a parametr Certificate k určení, že certifikát je uložen v proměnné $cert.
Příklad 2 – Podepsání skriptu pomocí certifikátu ze souboru PFX
Tyto příkazy používají příkaz Get-PfxCertificate k načtení podpisového certifikátu kódu.
Pak ho použijte k podepsání skriptu PowerShellu.
$cert = Get-PfxCertificate -FilePath C:\Test\Mysign.pfx
Set-AuthenticodeSignature -FilePath ServerProps.ps1 -Certificate $cert
První příkaz použije rutinu Get-PfxCertificate k načtení certifikátu C:\Test\MySign.pfx do proměnné $cert.
Druhý příkaz používá k podepsání skriptu Set-AuthenticodeSignature. Parametr FilePathSet-AuthenticodeSignature určuje cestu k podepsanému souboru skriptu a parametr Cert předává proměnnou $cert obsahující certifikát do Set-AuthenticodeSignature.
Pokud je soubor certifikátu chráněný heslem, PowerShell vás vyzve k zadání hesla.
Příklad 3 – Přidání podpisu, který obsahuje kořenovou autoritu
Tento příkaz přidá digitální podpis, který obsahuje kořenovou autoritu v řetězu důvěryhodnosti a je podepsaný serverem časového razítka třetí strany.
Set-AuthenticodeSignature -FilePath c:\scripts\Remodel.ps1 -Certificate $cert -IncludeChain All -TimestampServer "http://timestamp.fabrikam.com/scripts/timstamper.dll"
Příkaz používá parametr FilePath k určení podepsaného skriptu a parametru Certificate k určení certifikátu uloženého v proměnné $cert. Používá parametr IncludeChain k zahrnutí všech podpisů do řetězce důvěryhodnosti, včetně kořenové autority. Používá také parametr TimeStampServer k přidání časového razítka k podpisu.
Tím se zabrání selhání skriptu při vypršení platnosti certifikátu.
Parametry
-Certificate
Určuje certifikát, který se použije k podepsání skriptu nebo souboru. Zadejte proměnnou, která ukládá objekt představující certifikát nebo výraz, který certifikát získá.
Pokud chcete najít certifikát, použijte Get-PfxCertificate nebo rutinu Get-ChildItem na jednotce certifikátu Cert:. Pokud certifikát není platný nebo nemá code-signing autoritu, příkaz selže.
Vlastnosti parametru
| Typ: | X509Certificate2 |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | 1 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Confirm
Před spuštěním cmdletu vás vyzve k potvrzení.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | viz |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-FilePath
Určuje cestu k souboru, který je podepsán.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
ByPath
| Position: | 1 |
| Povinné: | True |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | True |
| Hodnota ze zbývajících argumentů: | False |
-Force
Umožňuje rutině připojit podpis k souboru jen pro čtení. I při použití parametru Force nemůže rutina přepsat omezení zabezpečení.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-HashAlgorithm
Určuje algoritmus hash, který Systém Windows používá k výpočtu digitálního podpisu souboru.
Pro PowerShell 3.0 je výchozí hodnota SHA256, což je výchozí algoritmus hash systému Windows. Pro PowerShell 2.0 je výchozí hodnota SHA1. Soubory podepsané jiným algoritmem hash nemusí být rozpoznány v jiných systémech. Podporované algoritmy závisí na verzi operačního systému.
Seznam možných hodnot naleznete v tématu HashAlgorithmName Struct.
Vlastnosti parametru
| Typ: | String |
| Default value: | SHA256 |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-IncludeChain
Určuje, které certifikáty v řetězu důvěryhodnosti certifikátů jsou součástí digitálního podpisu. NotRoot je výchozí.
Platné hodnoty jsou:
- Podepisující osoby: Zahrnuje pouze certifikát podepisující osoby.
- NotRoot: Zahrnuje všechny certifikáty v řetězu certifikátů s výjimkou kořenové autority.
- Vše: Zahrnuje všechny certifikáty v řetězu certifikátů.
Vlastnosti parametru
| Typ: | String |
| Default value: | NotRoot |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-LiteralPath
Určuje cestu k souboru, který je podepsán. Na rozdíl od FilePathse hodnota parametru LiteralPath používá přesně tak, jak je zadán. Žádný znak není interpretován jako zástupný znak. Pokud cesta obsahuje únikové znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby žádné znaky neinterpretoval jako únikové sekvence.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | PSPath |
Sady parametrů
ByLiteralPath
| Position: | Named |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | True |
| Hodnota ze zbývajících argumentů: | False |
-TimestampServer
Použije zadaný server časového razítka k přidání časového razítka k podpisu. Zadejte adresu URL serveru s časovým razítkem ve formě řetězce.
Časové razítko představuje přesný čas, kdy byl certifikát přidán do souboru. Časové razítko zabraňuje selhání skriptu, pokud vyprší platnost certifikátu, protože uživatelé a programy můžou ověřit platnost certifikátu při podepisování.
Vlastnosti parametru
| Typ: | String |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-WhatIf
Ukazuje, co se stane, když se příkaz spustí. Příkazový modul nebyl spuštěn.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Wi |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
String
Řetězec, který obsahuje cestu k souboru, můžete převést na Set-AuthenticodeSignature.