Set-AuthenticodeSignature
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
A parancsmag fájlelérési útvonalát tartalmazó sztringet csövezhet.
Kimenetek
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.
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: