I. Comment appelle-t-on les extensions à Powershell ?

Remplaçant à terme de notre bon vieil interpréteur de commande DOS, il permet de tout faire.

En effet, fournit avec un monceau de commandes pour les Administrateurs ainsi qu'un langage de script, il est lui-même extensible, car basé sur le Framework .NET. Vous pouvez donc à tout moment développer vos propres extensions appelées des CmdLet, en C#, en VB.Net ou tout autres langages .NET bien sûr. Pour en savoir plus : Introduction au développement PowerShell partie I

Administrateur PowerShell
Listing C#
Sélectionnez
[Cmdlet(VerbsCommon.Get, "TestCS")]
public class TestCommande : Cmdlet
{
    protected override void ProcessRecord()
    {
        WriteObject("Commande cmdlet développée en CSharp : " + _message);
    }

    private String _message;
    [Parameter(Position = 0)]
    public String Message
    {
        get { return _message; }
        set { _message = value; }
    }
}

[RunInstaller(true)]
public class TestCommandeCSPSSnapIn : PSSnapIn
{
    public TestCommandeCSPSSnapIn()
        : base()
    {
    }

    public override String Name
    {
        get
        {
            return "TestCommandeCSPSSnapIn";
        }
    }

    public override String Vendor
    {
        get
        {
            return "Vendor";
        }
    }

    public override String VendorResource
    {
        get
        {
            return "TestCommandeCSPSSnapIn";
        }
    }

    public override String Description
    {
        get
        {
            return "Ceci est une commande Powershell développée en CSharp";
        }
    }

    public override string DescriptionResource
    {
        get
        {
            return "DescriptionRessource";
        }
    }
}
Listing VB.NET
Sélectionnez
<Cmdlet("Get", "TestCS")> _
Public Class TestCommande
    Inherits Cmdlet
    ' Methods
    Protected Overrides Sub ProcessRecord()
        MyBase.WriteObject(("Commande cmdlet développé en VB : " & Me._message))
    End Sub

    Private _message As String
    <Parameter(Position:=0)> _
    Public Property Message As String
        Get
            Return Me._message
        End Get
        Set(ByVal value As String)
            Me._message = value
        End Set
    End Property
End Class
<RunInstaller(True)> _
Public Class TestCommandeVBPSSnapIn
    Inherits PSSnapIn
    Public Overrides ReadOnly Property Description As String
        Get
            Return "Ceci est une commande Powershell développée en VB"
        End Get
    End Property

    Public Overrides ReadOnly Property DescriptionResource As String
        Get
            Return "DescriptionRessource"
        End Get
    End Property

    Public Overrides ReadOnly Property Name As String
        Get
            Return "TestCommandeVBPSSnapIn"
        End Get
    End Property

    Public Overrides ReadOnly Property Vendor As String
        Get
            Return "Vendor"
        End Get
    End Property

    Public Overrides ReadOnly Property VendorResource As String
        Get
            Return "TestCommandeVBPSSnapIn"
        End Get
    End Property

End Class
Pour plus d'infos :