Question Powershell XML + windows form/ petit programme

Plus d'informations
il y a 7 ans 8 mois #25723 par Louis
Bonjour à tous et à toute !
Voulant me faciliter la tâche lors des recyclage des POOL dans IIS, je me suis lancé dans un petit script permettant de les recycler à distance.
J'ai donc fait un fichier XML listant les noms des POOLS ,leurs serveurs, et leurs plateformes comme voici un petit extrait :
[code:1]<xml>
<app serveur=\"XXXXX.serveur.production\" name=\"Blablabla\" pool=\"blablabla.xxxxx.serveur.production\" plateforme=\"IDF\"/>
</xml>[/code:1]

Mon script actuel le voici:
[code:1]do {

[xml]$XmlDocument = Get-Content -Path serv.xml
$plateforme = read-host \"plateforme:\"
$name = read-host \"Entre le nom du pool:\"

$var = $XmlDocument.xml.app | where-Object {($_.name -eq $name) -and ($_.plateforme -eq $plateforme)} | select name, serveur, pool, plateforme


$param = $var.pool
$serv = $var.serveur
$session = New-PSSession -ComputerName $serv
$command = {import-module webadministration ;cd iis: ; Restart-WebAppPool $args[0] }

write-host \"Le pool \"$param \"est actuellement en cours de recyclage\"

Invoke-Command -Session $Session -ScriptBlock $Command -ArgumentList $param

Remove-PSSession -Session $Session

write-host $param \"Recyclé\"


$quit = Read-Host \" Un autre pool à recycler ? (Y/N) \"
}
until ($quit -eq \"N\"«»)
[/code:1]

Donc en gros, quand on execute le script, on doit rentrer le nom de la plateforme ainsi que le \"name\", et il s'occupe de recuperer le nom du pool et de le recycler par la suite.

Ce que j'aimerai faire maintenant c'est d'embeliser tout ça.
Je voudrais donc faire une fenêtre, pour afficher directement le nom du pool/la plateforme/le serveur, pour qu'on puisse le selectionner et par le biais d'un bouton, recycler le Pool.

j'ai réussi par plusieurs procédés différents de faire apparaître les windows forms. Mais je n'ai jamais réussi à faire apparaître le contenu de mon XML dedans.

Edit: Ou peut-être qu'en mettant ça sous forme de plusieur liste trier par plateforme ça serait plus pratique et peut-etre plus facile qu'un tableau

Je demande un petit peu d'aide pour cette étape svp
Je continue mes recherches je vous tiens au jus de pamplemousse

Merci à vous<br><br>Message édité par: luigi77270, à: 11/07/18 11:05

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

Plus d'informations
il y a 7 ans 8 mois #25729 par Louis
Bon, je tiens au jus comme promis

J'ai trouvé une alternative au windows form grâce à l'Out-GriedView et le paramètre -PassThru qui me permet de sélectionner un pool directement et d'appliquer l'action.

J'aimerai maintenant que la fenêtre ne se ferme plus une fois qu'on clique sur le \&quot;Ok\&quot; pour recycler le pool

Voici le code actuel:
[code:1]
do {

[xml]$XmlDocument = Get-Content -Path serv.xml

$var = $XmlDocument.xml.app | select serveur, pool, plateforme | ogv -Title \&quot;Choisir un pool à recycler\&quot; -Passthru


$param = $var.pool
$serv = $var.serveur
$session = New-PSSession -ComputerName $serv
$command = {import-module webadministration ;cd iis: ; Restart-WebAppPool $args[0] }

Invoke-Command -Session $Session -ScriptBlock $Command -ArgumentList $param

Remove-PSSession -Session $Session

$quit = [System.Windows.MessageBox]::«»Show(\&quot;Le pool a été correctement recyclé, en faire un autre ?\&quot;, 'Zbeub Zbeub', 'YesNo' )


$quit
}
until ($quit -eq \&quot;No\&quot;«»)
[/code:1]

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

Plus d'informations
il y a 7 ans 8 mois #25749 par Arnaud Petitjean
Bonjour Luigi,

J'aimerai maintenant que la fenêtre ne se ferme plus une fois qu'on clique sur le \&quot;Ok\&quot; pour recycler le pool.


Malheureusement je ne pense pas que ce soit possible...

Peut-être qu'une boucle infinie pour lancer ton script peut faire en sorte de le relancer une fois Out-GridView fermé ? Mais ça fait grosse bidouille, je te l'accorde...

L'autre option qui est ma préférée et d'utiliser l'outil PowerShell Universal Dashboard qui te permettra de développer une sorte de console d'administration en mode Web en PowerShell.
Si le sujet t'intéresses va voir ici, j'ai fait une petite vidéo sur Youtube :


Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

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