Ajoute une signature Authenticode à un script Windows PowerShell ou à un autre fichier.

Syntaxe

Set-AuthenticodeSignature [-FilePath] <string[]> [-Certificate] <X509Certificate2> [-Force] [-HashAlgorithm <string>] [-IncludeChain <string>] [-TimestampServer <string>] [-Confirmer] [-WhatIf] [<CommonParameters>]

Description

L'applet de commande Set-AuthenticodeSignature ajoute une signature Authenticode à tout fichier prenant en charge Subject Interface Package (SIP).

Dans un fichier de script Windows PowerShell, la signature prend la forme d'un bloc de texte qui indique la fin des instructions exécutées dans le script. Si le fichier contient une signature au moment de l'exécution de cette applet de commande, cette signature est supprimée.

Paramètres

-Certificate <X509Certificate2>

Spécifie le certificat qui sera utilisé pour signer le script ou le fichier. Entrez une variable qui stocke un objet représentant le certificat ou une expression qui obtient le certificat.

Pour rechercher un certificat, utilisez Get-PfxCertificate ou l'applet de commande Get-ChildItem du lecteur de certificat (Cert:). Si le certificat n'est pas valide ou n'a pas d'autorité de signature de code, la commande échoue.

Obligatoire ?

true

Position ?

2

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-FilePath <string[]>

Spécifie le chemin d'accès au fichier en cours de signature.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue, ByPropertyName)

Accepter les caractères génériques ?

false

-Force

Permet à l'applet de commande d'ajouter une signature dans un fichier en lecture seule. Même en utilisant le paramètre Force, l'applet de commande ne peut pas remplacer les restrictions de sécurité.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-HashAlgorithm <string>

Spécifie l'algorithme de hachage que Windows utilise pour calculer la signature numérique pour le fichier. La valeur par défaut est SHA1, qui est l'algorithme de hachage par défaut de Windows.

Les fichiers signés avec un algorithme de hachage différent peuvent ne pas être reconnus sur d'autres systèmes.

Obligatoire ?

false

Position ?

named

Valeur par défaut

SHA1

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-IncludeChain <string>

Détermine les certificats de la chaîne des certificats de confiance inclus dans la signature numérique. « NotRoot » est la valeur par défaut.

Les valeurs valides sont :

-- Signer : inclut uniquement le certificat du signataire.

-- NotRoot : inclut tous les certificats de la chaîne de certificats, à l'exception de l'autorité racine.

-- All : inclut tous les certificats de la chaîne de certificats.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-TimestampServer <string>

Utilise le serveur d'horodatage spécifié pour ajouter un horodatage à la signature. Tapez l'URL du serveur d'horodatage sous forme de chaîne.

L'horodatage représente l'heure exacte à laquelle le certificat a été ajouté au fichier. Cet horodatage empêche le script d'échouer si le certificat arrive à expiration, car les utilisateurs et les programmes peuvent vérifier qu'il était valide au moment de la signature.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Confirmer

Vous invite à confirmer l'exécution de la commande.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-WhatIf

Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

System.String

Vous pouvez diriger une chaîne contenant le chemin d'accès du fichier vers Set-AuthenticodeSignature.

Sorties

System.Management.Automation.Signature

Exemple 1

C:\PS>$cert=Get-ChildItem -Path cert:\CurrentUser\my -CodeSigningCert

C:\PS>Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -certificate $cert

Description
-----------
Ces commandes récupèrent un certificat de signature de code à partir du fournisseur de certificats de Windows PowerShell et l'utilisent pour signer un script Windows PowerShell.

La première commande utilise l'applet de commande Get-ChildItem et le fournisseur de certificats de Windows PowerShell pour obtenir les certificats du sous-répertoire Cert:\CurrentUser\My du magasin de certificats. (Le lecteur Cert: est le lecteur exposé par le fournisseur de certificats.) Le paramètre CodeSigningCert, pris en charge uniquement par le fournisseur de certificats, limite les certificats récupérés à ceux ayant une autorité de signature de code. La commande stocke le résultat dans la variable $cert.

La deuxième commande utilise l'applet de commande Set-AuthenticodeSignature pour signer le script PSTestInternet2.ps1. Elle utilise le paramètre FilePath pour spécifier le nom du script et le paramètre Certificate pour spécifier que le certificat est stocké dans la variable $cert.






Exemple 2

C:\PS>$cert = Get-PfxCertificate C:\Test\Mysign.pfx 

C:\PS>Set-AuthenticodeSignature -Filepath ServerProps.ps1 -Cert $cert

Description
-----------
Ces commandes utilisent l'applet de commande Get-PfxCertificate pour rechercher un certificat de signature de code. Elles l'utilisent ensuite pour signer un script Windows PowerShell. 

La première commande utilise l'applet de commande Get-PfxCertificate pour rechercher le certificat C:\Test\MySign.pfx et le stocker dans la variable $cert.

La deuxième commande utilise Set-AuthenticodeSignature pour signer le script. Le paramètre FilePath de Set-AuthenticodeSignature spécifie le chemin d'accès au fichier de script en cours de signature et le paramètre Cert passe la variable $cert contenant le certificat à Set-AuthenticodeSignature.

Si le fichier de certificat est protégé par mot de passe, Windows PowerShell vous invite à entrer le mot de passe.






Exemple 3

C:\PS>Set-AuthenticodeSignature -filepath c:\scripts\Remodel.ps1 -certificate $cert -IncludeChain All -TimeStampServer "http://timestamp.fabrikam.com/scripts/timstamper.dll"

Description
-----------
Cette commande ajoute une signature numérique qui inclut l'autorité racine dans la chaîne d'approbation, et elle est signée par un serveur d'horodatage tiers. 

La commande utilise le paramètre FilePath pour spécifier le script en cours de signature et le paramètre Certificate pour spécifier le certificat enregistré dans la variable $cert. Elle utilise le paramètre IncludeChain pour inclure toutes les signatures dans la chaîne d'approbation (y compris l'autorité racine). Elle utilise également le paramètre TimeStampServer pour ajouter un horodatage à la signature. Ceci empêche le script d'échouer lorsque le certificat arrive à expiration.






Voir aussi




Table des matières