Set-AuthenticodeSignature

Authenticode-aláírást ad hozzá Egy PowerShell-szkripthez vagy más fájlhoz.

Syntax

Set-AuthenticodeSignature
   [-Certificate] <X509Certificate2>
   [-IncludeChain <String>]
   [-TimestampServer <String>]
   [-HashAlgorithm <String>]
   [-Force]
   [-FilePath] <String[]>
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AuthenticodeSignature
   [-Certificate] <X509Certificate2>
   [-IncludeChain <String>]
   [-TimestampServer <String>]
   [-HashAlgorithm <String>]
   [-Force]
   -LiteralPath <String[]>
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AuthenticodeSignature
   [-Certificate] <X509Certificate2>
   [-IncludeChain <String>]
   [-TimestampServer <String>]
   [-HashAlgorithm <String>]
   [-Force]
   -SourcePathOrExtension <String[]>
   -Content <Byte[]>
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Ez a parancsmag csak a Windows platformon érhető el.

A Set-AuthenticodeSignature parancsmag egy Authenticode-aláírást ad hozzá minden olyan fájlhoz, amely támogatja a Tárgy felületi csomag (SIP) használatát.

Egy PowerShell-szkriptfájlban az aláírás egy szövegblokk formájában történik, amely a szkriptben végrehajtott utasítások végét jelzi. Ha a parancsmag futtatásakor aláírás található a fájlban, az aláírás el lesz távolítva.

Példák

1. példa – Szkript aláírása a helyi tanúsítványtárolóból származó tanúsítvány használatával

Ezek a parancsok lekérnek egy kódaláíró tanúsítványt a PowerShell-tanúsítványszolgáltatótól, és ezzel aláírnak egy PowerShell-szkriptet.

$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $cert

Az első parancs a Get-ChildItem parancsmag és a PowerShell-tanúsítványszolgáltató használatával szerzi be a tanúsítványokat a Cert:\CurrentUser\My tanúsítványtároló alkönyvtárában. A Cert: meghajtó a tanúsítványszolgáltató által közzétett meghajtó. A CodeSigningCert paraméter, amelyet csak a tanúsítványszolgáltató támogat, korlátozza a lekért tanúsítványokat a kódaláíró szolgáltatóval rendelkezők számára. A parancs az eredményt a $cert változóban tárolja.

A második parancs a Set-AuthenticodeSignature parancsmaggal írja alá a szkriptet PSTestInternet2.ps1 . A FilePath paraméter használatával adja meg a szkript nevét és a Tanúsítvány paramétert annak megadásához, hogy a tanúsítvány a $cert változóban legyen tárolva.

Feljegyzés

A CodeSigningCert paraméter Get-ChildItem használata csak olyan tanúsítványokat ad vissza, amelyek kódaláíró szolgáltatóval rendelkeznek, és titkos kulcsot tartalmaznak. Ha nincs titkos kulcs, a tanúsítványok nem használhatók aláírásra.

2. példa – Szkript aláírása PFX-fájlból származó tanúsítvánnyal

Ezek a parancsok a Get-PfxCertificate parancsmaggal töltik be a kódaláíró tanúsítványt. Ezután írja alá a PowerShell-szkriptet.

$cert = Get-PfxCertificate -FilePath C:\Test\Mysign.pfx
Set-AuthenticodeSignature -FilePath ServerProps.ps1 -Certificate $cert

Az első parancs a Get-PfxCertificate parancsmaggal tölti be a C:\Test\MySign.pfx tanúsítványt a $cert változóba.

A második parancs a szkript aláírására használja Set-AuthenticodeSignature . A FilePath paraméter Set-AuthenticodeSignature megadja az aláírt szkriptfájl elérési útját, és a Cert paraméter átadja a $cert tanúsítványt tartalmazó változótSet-AuthenticodeSignature.

Ha a tanúsítványfájl jelszóval védett, a PowerShell kéri a jelszót.

3. példa – A legfelső szintű szolgáltatót tartalmazó aláírás hozzáadása

Ez a parancs hozzáad egy digitális aláírást, amely tartalmazza a legfelső szintű szolgáltatót a megbízhatósági láncban, és egy külső időbélyeg-kiszolgáló írja alá.

Set-AuthenticodeSignature -FilePath c:\scripts\Remodel.ps1 -Certificate $cert -IncludeChain All -TimestampServer "https://timestamp.fabrikam.com/scripts/timstamper.dll"

A parancs a FilePath paraméter használatával adja meg az aláírt szkriptet, a Tanúsítvány paramétert pedig a változóban $cert mentett tanúsítvány megadásához. Az IncludeChain paraméter használatával az összes aláírást belefoglalja a megbízhatósági láncba, beleértve a legfelső szintű szolgáltatót is. A TimeStampServer paraméterrel időbélyeget is ad hozzá az aláíráshoz. Ez megakadályozza, hogy a szkript meghibásodik a tanúsítvány lejáratakor.

Paraméterek

-Certificate

Megadja a szkript vagy fájl aláírásához használt tanúsítványt. Adjon meg egy változót, amely a tanúsítványt vagy a tanúsítványt lekérő kifejezést tartalmazó objektumot tárolja.

Tanúsítvány kereséséhez használja Get-PfxCertificate vagy használja a Get-ChildItem tanúsítványmeghajtó parancsmagját Cert: . Ha a tanúsítvány érvénytelen vagy nincs code-signing jogosultsága, a parancs meghiúsul.

Type:X509Certificate2
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Jóváhagyást kér a parancsmag futtatása előtt.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Content

Ez a paraméter azért jelenik meg a szintaxislistában, mert az a származtatott alaposztályban Set-AuthenticodeSignature van definiálva. Ennek a paraméternek a támogatása azonban nincs implementálva a következőben Set-AuthenticodeSignature: .

Type:Byte[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-FilePath

Megadja az aláírt fájl elérési útját.

Type:String[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Force

Lehetővé teszi, hogy a parancsmag aláírást fűzjön egy írásvédett fájlhoz. A Parancsmag még a Force paraméter használatával sem tudja felülbírálni a biztonsági korlátozásokat.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HashAlgorithm

Megadja azt a kivonatolási algoritmust, amelyet a Windows a fájl digitális aláírásának kiszámításához használ.

A PowerShell 7.3 esetében az alapértelmezett sha256, amely a Windows alapértelmezett kivonatolási algoritmusa. A korábbi verziók esetében az alapértelmezett sha1. Előfordulhat, hogy más rendszereken nem ismerik fel a más kivonatoló algoritmussal aláírt fájlokat. A támogatott algoritmusok az operációs rendszer verziójától függenek.

A lehetséges értékek listáját lásd : HashAlgorithmName Struct.

Type:String
Position:Named
Default value:SHA256
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IncludeChain

Meghatározza, hogy a tanúsítványmegbízhatósági lánc mely tanúsítványai szerepelnek a digitális aláírásban. A NotRoot az alapértelmezett.

Az érvényes értékek a következők:

  • Aláíró: Csak az aláíró tanúsítványát tartalmazza.
  • NotRoot: A tanúsítványlánc összes tanúsítványát tartalmazza, kivéve a legfelső szintű hitelesítésszolgáltatót.
  • Minden: Tartalmazza a tanúsítványlánc összes tanúsítványát.
Type:String
Position:Named
Default value:NotRoot
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

Megadja az aláírt fájl elérési útját. A FilePath-tal ellentétben a LiteralPath paraméter értéke pontosan a beírt módon lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz escape karaktereket, csatolja egy idézőjelek közé. Az idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen karaktereket feloldósorozatként.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SourcePathOrExtension

Ez a paraméter azért jelenik meg a szintaxislistában, mert az a származtatott alaposztályban Set-AuthenticodeSignature van definiálva. Ennek a paraméternek a támogatása azonban nincs implementálva a következőben Set-AuthenticodeSignature: .

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TimestampServer

A megadott időbélyeg-kiszolgálóval időbélyeget adhat hozzá az aláíráshoz. Írja be az időbélyeg-kiszolgáló URL-címét sztringként. Az URL-címnek a következővel https:// kell kezdődnie: vagy http://.

Az időbélyeg pontosan azt az időpontot jelöli, amikor a tanúsítványt hozzáadták a fájlhoz. Az időbélyeg megakadályozza, hogy a szkript meghiúsuljon, ha a tanúsítvány lejár, mert a felhasználók és a programok ellenőrizhetik, hogy a tanúsítvány érvényes volt-e az aláíráskor.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

String

A parancsmag fájlelérési útvonalát tartalmazó sztringet csövezhet.

Kimenetek

Signature

Ez a parancsmag egy aláírási objektumot ad vissza, amely a beállított értéket jelöli.

Jegyzetek

Ez a parancsmag csak Windows-platformokon érhető el.