Démarrer avec Windows Powershell

By | 9 November 2009

Tout d'abord, Windows Powershell est le nouveau le language de scripts de Microsoft remplaçant de Vbscript. Il est disponible sur les différentes plateformes Windows XP SP3 à Windows 7. Il a été inclus dans Windows 7. Il nécessite au minimum le framework 2.0 SP1.

Pour plus d'informations je vous conseil d'aller faire un tour sur Wikipédia

Comment signer vos scripts Powshell ?

Objectif de l'article :  Permettre de créer un certificat pour signer mes scripts Powershell. Ensuite configurer la station qui exécute les scripts pour que uniquement les scripts signés soit exécuté. Cela permettra de mettre en place des scripts en s'assurant que aucune modification ne sera faite sans resignature.

Outils nécessaire :

Powershell V1 ou supérieur

Framework SDK 2.0

L'outils pvk2pfx.exe se trouve dans le Windows Driver Kit

Etape 1 : Installation des outils nécessaires

Les outils demandés sont gratuit et disponible sur le site de Microsoft

  • Installation de la dernière version stable de Microsoft Powershell V2 au moment de l'écriture de l'article.
  • Installation du framework 2.0 SDK (contient les outils de génération de certificat)

Etape 2 : Création d'un certificat racine

Pour créer un certificat vous avez plusieurs possibilité,

  • soit faire appel à une société de certification moyennant finance, il vous créeront un certificat valide pendant une période donné
  • soit pour une entreprise mettre en place via serveur Windows avec un service de certification. Cela permet à l'entreprise de gérer elle même la création et validation des certificats fourni.
  • soit ici en utilisant un certificat auto validé par nous même.

La création du certificat racine est le certificat qui va devoir être placé sur la machine exécutant le scripts.

Pour crée notre certificat nous allons utiliser l'outils makecert.exe disponible dans le SDK du framework.

Aller dans vortre menu Démmaer -> Microsoft .NET Framework SDK v2.0 -> Invite de commandes du Kit de développement SDK

Une fenêtre vas s'ouvrir, vous allez pouvoir faire appel à makecert.exe dans cette fenêtre

D:\Program Files\Microsoft Visual Studio 8\SDKv2.0>makecert.exe -n "CN=Certific
at local racine techjp.net" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv RacineTechjp.p
vk RacineTechjp.cer -ss Root -sr localMachine

Liens et ressource :

Je me suis appuyé pour rédiger cette article sur un articles très bien fait sur le sujet de Laurent Dardenne que vous trouverez ici

Un autre article de blog traitant du sujet ici

Article sur la signature d'une application via un certificat [En]

Astuces ou scripts Powershell

Faire une recherche récursive d'un fichier sur un disque "c:" de tous les fichiers "*.mp3"

dir c: -Recurse -Filter *.mp3

Pour la version 1 de powershell un bug ralenti le démarrage de powershell. Pour résoudre le problème il faut exécuter le code suivant:

Set-Alias ngen @(
dir (join-path ${env:windir} "Microsoft.NETFramework") ngen.exe -recurse |
sort -descending lastwritetime
)[0].fullName
[appdomain]::currentdomain.getassemblies() | %{ngen $_.location}

Connaitre la version de powershell

get-host

Chargement par défaut des extensions externe à Powershell (exemple : extension Quest)

Leave a Reply

Your email address will not be published. Required fields are marked *