Question [Script]Gestion de la signature de script .ps1
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 18 ans 3 semaines #1770
par Laurent Dardenne
Tutoriels PowerShell
[Script]Gestion de la signature de script .ps1 a été créé 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
[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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- [Script]Gestion de la signature de script .ps1