Megosztás a következőn keresztül:


Set-AuthenticodeSignature

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

Syntax

ByPath (Alapértelmezett)

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>]

ByContent

Set-AuthenticodeSignature
    [-Certificate] <X509Certificate2>
    -SourcePathOrExtension <String[]>
    -Content <Byte[]>
    [-IncludeChain <String>]
    [-TimestampServer <String>]
    [-HashAlgorithm <String>]
    [-Force]
    [-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 az SIP-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 parancsmagot és a PowerShell-tanúsítványszolgáltatót használja a tanúsítványok lekéréséhez a tanúsítványtároló Cert:\CurrentUser\My 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ó jogosultsággal rendelkezők körére. A parancs az eredményt a $cert változóban tárolja.

A második parancs a Set-AuthenticodeSignature parancsmaggal írja alá a PSTestInternet2.ps1 szkriptet. 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.

Megjegyzés:

Ha a CodeSigningCert paramétert használja Get-ChildItem 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 használja arra, hogy aláírjon egy 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 Set-AuthenticodeSignature használatával írja alá a szkriptet. A Set-AuthenticodeSignature paramétere meghatározza az aláírt szkriptfájl elérési útját, és a Tanúsítvány paraméter átadja a tanúsítványt tartalmazó $cert változót Set-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éter pedig a $cert változóba mentett tanúsítványt. Az IncludeChain paramétert használja az összes aláírás belefoglalására a megbízhatósági láncba, beleértve a legfelső szintű szolgáltatót is. Emellett a TimeStampServer paraméterrel is hozzáad egy időbélyeget 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 a Get-PfxCertificate vagy a tanúsítvány Get-ChildItem meghajtón található Cert: parancsmagot. Ha a tanúsítvány érvénytelen, vagy nem rendelkezik code-signing szolgáltatóval, a parancs meghiúsul.

Paramétertulajdonságok

Típus:X509Certificate2
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:1
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Confirm

Megerősítést kér a parancsmag futtatása előtt.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Cf

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Content

Ez a paraméter azért jelenik meg a szintaxislistában, mert abban az alaposztályban van definiálva, amelyből Set-AuthenticodeSignature származik. Ennek a paraméternek a támogatása azonban nincs implementálva a Set-AuthenticodeSignature-ben.

Paramétertulajdonságok

Típus:

Byte[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ByContent
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-FilePath

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

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ByPath
Position:1
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 HashAlgorithmName Structcímű cikkben találja.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:SHA256
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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. 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.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:NotRoot
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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íráskor lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési útvonal escape karaktereket tartalmaz, tedd azt egyes idézőjelek közé. Az egyes idézőjelek azt mondják a PowerShellnek, hogy egyetlen karaktert se értelmezzen escape szekvenciaként.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:PSPath

Paraméterkészletek

ByLiteralPath
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-SourcePathOrExtension

Ez a paraméter azért jelenik meg a szintaxislistában, mert abban az alaposztályban van definiálva, amelyből Set-AuthenticodeSignature származik. Ennek a paraméternek a támogatása azonban nincs implementálva a Set-AuthenticodeSignature-ben.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ByContent
Position:Named
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték: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 https:// vagy http://kell kezdődnie.

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.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-WhatIf

Megjeleníti, mi történne, ha a parancsmag futna. A parancsmag nem fut.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Wi

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

String

Ez a parancsmag fájl elérési útvonalát tartalmazó szöveget továbbíthat.

Kimenetek

Signature

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

Jegyzetek

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