Question [Script]Gestion de la signature de script .ps1

Plus d'informations
il y a 18 ans 3 semaines #1770 par Laurent Dardenne
Voici 2 fonctions, la première permet de signer un script :
[code:1]
#Signe un script PowerShell
Function Signe
{
if ($args.Count -lt 1)
{
throw 'Usage: Signe NomDeFichier.ps1'
}
[string]$FileName=$args
trap [System.IO.FileNotFoundException]{\"Le fichier $FileName n'existe pas.\"; break}
#récupère la première signature personnelle
$script:cert=@(Get-ChildItem cert:\Currentuser\My)[0]
Set-AuthenticodeSignature $FileName $script:cert
}
[/code:1]
la seconde de supprimer le bloc de signature :
[code:1]
# Remove-Signature.ps1
# Supprime la signature d'un script PS1
Function Remove-Signature{
#Initialisation du pipeline avant la lecture du premier objet
Begin {
$RemoveLine=$False;
$BlocDebutTrouve=$False;
# $BlocFinTrouve : Il ne devrait pas exister de texte après le bloc de signature de fin
}#Begin


#Traitement à proprement dit du pipeline.
#La manipulation de l'objet courant issu du pipe se fait à l'aide $_
Process {
if ( ($RemoveLine -eq $False) -and ($BlocDebutTrouve -eq $False) ) {
if ( ([String]$_) -match '^# SIG # Begin signature block') {
$RemoveLine=$True;
$BlocDebutTrouve=$True;} #On ne renvoi plus les lignes tant que le bloc de fin n'est pas atteint
else {
$_} #Ecrit la ligne courante
}
else {
if ($BlocDebutTrouve -eq $True) {
if ( ([String]$_) -match '^\"# SIG # End signature block') {
$RemoveLine=$False} # Ne devrait jamais passé par ici...
}
else{
$_}
}
} #process


#Finalisation du traitement du pipeline
#La dernière ligne (ou le dernier objet) est traitée ici
End {
if ( ([String]$_) -match '^# SIG # End signature block') {
$RemoveLine=$False}
# Pour la démonstration du principe de pipeline, sinon ce traitement n'a aucun intérêt dans ce contexte
}#End
}
[/code:1]
Si vous avez des remarques n'hésitez pas !<br><br>Message édité par: BatchMan, à: 26/02/08 23:06

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.072 secondes
Propulsé par Kunena