Question
Powershell XML + windows form/ petit programme
- Louis
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 7 ans 8 mois #25723
par Louis
Powershell XML + windows form/ petit programme a été créé 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
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.
- Louis
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 7 ans 8 mois #25729
par Louis
Réponse de Louis sur le sujet Re:Powershell XML + windows form/ petit programme
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 \"Ok\" 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 \"Choisir un pool à recycler\" -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(\"Le pool a été correctement recyclé, en faire un autre ?\", 'Zbeub Zbeub', 'YesNo' )
$quit
}
until ($quit -eq \"No\"«»)
[/code:1]
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 \"Ok\" 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 \"Choisir un pool à recycler\" -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(\"Le pool a été correctement recyclé, en faire un autre ?\", 'Zbeub Zbeub', 'YesNo' )
$quit
}
until ($quit -eq \"No\"«»)
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 7 ans 8 mois #25749
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Powershell XML + windows form/ petit programme
Bonjour Luigi,
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
J'aimerai maintenant que la fenêtre ne se ferme plus une fois qu'on clique sur le \"Ok\" 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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Powershell XML + windows form/ petit programme