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>]
Description
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.
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 "http://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 |
-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 3.0 esetében az alapértelmezett sha256, amely a Windows alapértelmezett kivonatolási algoritmusa. A PowerShell 2.0 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 |
-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 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
A Set-AuthenticodeSignaturefájl elérési útját tartalmazó sztringet csövezhet.