Bonjour à toutes et tous. Je suis un petit nouveau (enfin ... petit d'1,92m et 49 ans) et je fais mes premiers pas en powershell (comme quoi, il n'est jamais trop tard pour s'instruire). Je bosse comme Field Engineer dans une boîte de consultance et mon boulot principal est d'installer du soft, le configurer et donner des formations aux utilisateurs ... en clair, je me débrouille avec un pc, mais je n'ai aucune notion de programmation, scripting etc ...
Cependant, j'ai eu envie d'en savoir plus, et pour mon taf, j'ai un parc de plusieurs machines (environs 250 en fait) qui sont réparties sur autant de sites différents et je dois faire des mises à jour de ces machines ... de préférence en remote. J'ai donc construit un package d'installation qui contient tout ce qui doit être mis à jour, remplacé, supprimé, mais je dois récupérer de l'info dans 2 fichiers (un .xml et un .config).
Dans le .xml, l'info se compose d'un N° de téléphone, un n° de fax, une localité, et du nom du service qui utilise l'application. Il y a 8 modules différents décrits dans cet XML et qui utilisent les mêmes infos.
Dans le .config, il y a les identifiants de la machine, (un nom, un ID) et une adresse email.
J'ai déjà en y allant à tâtons créé un petit script Powershell qui automatise toute l'installation ... arrêt des services concernés (get-service <name*> | stop-service )
J'arrête les process en cours (get-process <name*> | stop process
Je fais un backup des applications qui doivent être upgradées (robocopy <source> /s <destination> /it /is
Je désinstalle les msi (get-package -<name> | uninstall-package
et enfin, j'installe la nouvelle version via un simple msiexec -i <path to msimsi> /quiet avant de rebooter tout le machin.
Et, jusqu'à présent, ça marche.
Par contre, je reviens au tout début de mon explication avec la commande get-content pathnomfichier.xml | select-string -pattern 'mes','recherches' | out-file pathout.txt ... comme je l'ai dit, il y a 8 modules différents qui sont configurés et qui utilisent la même info ... donc, quand je récupère ces données, dans mon fichier log (start-transcript), j'ai bien 8 fois le n° de tél, 8 fois le fax, etc, etc ...
Est-ce que vous pouvez me dire comment améliorer mon log afin de n'avoir que cette information 1 seule fois, et si possible mise en forme ?
Actuellement, il me donne ce genre de résultat dans mon log :
IgnoreCase : True
LineNumber : 13
Line : <Setting Key="DefaultFax" Type="String" Value="FAX" />
Filename : InputStream
Path : InputStream
Pattern : DefaultFax
Context :
Matches : {0}
IgnoreCase : True
LineNumber : 14
Line : <Setting Key="DefaultOriginalDepartment" Type="String" Value="Dept" />
Filename : InputStream
Path : InputStream
Pattern : DefaultOriginalDepartment
Context :
Matches : {0}
Etc ... etc ... et donc me donne les 6 valeurs que je recherche ... 8x et sous cette forme. J'aimerais avoir ça 1 seule fois (1x pour le n° de téléphone, 1x pour le OriginalDepartment, 1x ... etc ..). Et en fait, la seule chose qui m'intéresserait, c'est d'avoir la valeur de setting key et la String value.
Une longue explication pour un tout petit problème je suppose, mais bon voilà ... le confinement fait qu'on a envie de parler
Merci.
Rudy
Partager