POWERSHELL : Lire les paramètres depuis un fichier de configuration 1

POWERSHELL : Lire les paramètres depuis un fichier de configuration

Après Kixtart, Perl et Python, voici le tour de PowerShell !

Je découvre ce langage de script proposé par Microsoft et disponible depuis XP jusqu’à 2008 Server R2.

Comme à mon habitude, je vais vous faire partager quelques bouts de code que j’ai assemblé.

Quand votre script requière beaucoup de paramètres, il peut être pratique de disposer d’un fichier de configuration textuel.

La façon la plus simple de structurer ce fichier ; c’est le format XML – en plus c’est très tendance 😉

Donc réalisons un fichier config.xml

<?xml version=”1.0″?>

<configuration>

<appSettings>

<add key=”Param1″ value=”$True” />

</appSettings>

</configuration>

Le script suivant va charger dans un tableau dynamique l’ensemble des paramètres du fichier de configuration puis affecter la valeur du champ « Param1 » à la variable $x. Le contenu de $x est ensuite affiché à l’écran.

# tableau contenant les éléments passés en paramètres à ce script

$global:appSettings = @{}

# charge l’ensemble de paramètres passés à ce script dans le tableau appSettings

function ChargeFichierConf

{

param($path = $(throw “fichier de configuration XML non fourni”))

$config =

[xml][/xml] [/xml]

(get-content $path)

foreach ($addNode in $config.configuration.appsettings.add)

{

if ($addNode.Value.Contains(‘,’))

{

# Array case

$value = $addNode.Value.Split(‘,’)

for ($i = 0; $i -lt $value.length; $i++)

{

$value[$i] = $value[$i].Trim()

}

}

else

{

# Scalar case

$value = $addNode.Value

}

$global:appSettings[$addNode.Key] = $value

}

}

# on charge le fichier de configuration en RAM

ChargeFichierConf « C:UsersooDesktopconfig.xml »

## on initialise les variables avec le contenu du fichier de configuration

$x = $appSettings[“Param1”]

Write-Host $x

Source

A propos Olivier Olejniczak

Cofondateur de SynerGeek.fr. Passionné d'informatique, je m'intéresse plus particulièrement aux technologies de virtualisation et de stockage. J'apprécie la liberté et la quasi-absence de frontières à mon imagination qu'offre l'OpenSource et Linux. Professionnellement, je travaille exclusivement avec les outils Microsoft. Les pieds bien sur terre et ancrés dans le quotidien de l'entreprise, j'aime faire partager mes découvertes et contribuer à un meilleur usage des technologies. Vous aussi, rejoignez-nous sur Synergeek et partagez votre expérience!

Je vous propose également...

Importer du contenu XML dans une table SQL serveur 2

Importer du contenu XML dans une table SQL serveur

Depuis MS SQL 7, il est possible d’utiliser du XML en résultat de requêtes.  Le …

Compiler un script PowerShell avec PS2EXE 3

Compiler un script PowerShell avec PS2EXE

J’utilise au quotidien le langage PowerShell pour gérer des serveurs Windows. Ce langage est à …