Le PowerShell n’est pas fait pour ça !

Le PowerShell n'est pas fait pour ça !Il y aurait beaucoup à dire sur les prérequis nécessaires pour suivre une formation PowerShell. Précisons tout d’abord que le PowerShell est un langage – un vrai langage – de scripting dont l’objet est de faciliter le déploiement, d’automatiser les tâches d’administration et d’inventaire, de réaliser les scripts d’ouverture de session notamment. Sans aucune interaction avec l’utilisateur !!! Pour suivre ce type de formation, il faut au minimum avoir un bon socle de compétences sur l’environnement Windows et accessoirement sur ActiveDirectory.

WPF et XAML sans intérêt dans PowerShell

Concernant la supervision, je pense que le PowerShell n’est pas l’outil le plus adapté. Tout d’abord, parce qu’il faut alors disposer d’une console. Certes, PowerShell permet l’utilisation d’interfaces graphiques de type WPF Windows Presentation Foundation qui s’appuie sur le langage XAML. Vous pouvez utiliser Visual Studio Community Edition 2015 pour générer le fichier XAML qui s’utilise dans PowerShell de la manière suivante :

# Ajout des assemblies du Framework Microsoft .NET
Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName System.Windows.Forms

#Définition des fonctions utilisées
function btnButton1_Click {
    $MainForm.FindName('textbox1').Text = "Clic sur bouton"
}

#Définition du formulaire
#[XML]$XAML = Get-Content "D:\MainWindow.xaml"
[XML]$XAML =@'
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button x:Name="button1" Content="Button" HorizontalAlignment="Left" Height="57" Margin="122,59,0,0" VerticalAlignment="Top" Width="241"/>
        <TextBox x:Name="textbox1" HorizontalAlignment="Left" Height="57" Margin="122,184,0,0" TextWrapping="Wrap" Text="Mon texte" VerticalAlignment="Top" Width="241"/>
    </Grid>
</Window>
'@
$XAML.Window.RemoveAttribute("x:Class")
$Reader = New-Object System.Xml.XmlNodeReader $XAML
$MainForm = [Windows.Markup.XamlReader]::Load($Reader)
    
# Chargement du formulaire
$MainForm.FindName('button1').add_Click({ btnButton1_Click })
$MainForm.ShowDialog() | Out-Null

Eh bien, très sincèrement, je ne vois pas l’intérêt de ce genre de développement en PowerShell par rapport à du C# ou du VB.Net, surtout quand il peut s’agir de supervision !

A lire :

 

Scripting / ,