Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Cet exemple montre comment écrire une applet de commande qui récupère les processus sur l’ordinateur local. Il fournit un paramètre Name qui peut être utilisé pour spécifier les processus à récupérer. Cette applet de commande est une version simplifiée de l’applet de commande Get-Process fournie par Windows PowerShell 2.0.
Comment générer l’exemple à l’aide de Visual Studio
Une fois le Kit de développement logiciel (SDK) Windows PowerShell 2.0 installé, accédez au dossier GetProcessSample02. L’emplacement par défaut est
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample02.Double-cliquez sur l’icône du fichier de solution (.sln). L’exemple de projet s’ouvre dans Visual Studio.
Dans le menu Générer, sélectionnez Générer la solution pour générer la bibliothèque pour l’exemple dans les dossiers
\binou\bin\debugpar défaut.
Comment exécuter l’exemple
Créez le dossier de module suivant :
[user]\Documents\WindowsPowerShell\Modules\GetProcessSample02Copiez l’exemple d’assembly dans le dossier du module.
Démarrez Windows PowerShell.
Exécutez la commande suivante pour charger l’assembly dans Windows PowerShell :
Import-Module getprossessample02Exécutez la commande suivante pour exécuter l’applet de commande :
Get-Proc
Spécifications
Cet exemple nécessite Windows PowerShell 2.0.
Montre ce qui suit
Cet exemple illustre ce qui suit.
Déclaration d’une classe d’applet de commande à l’aide de l’attribut Cmdlet.
Déclaration d’un paramètre d’applet de commande à l’aide de l’attribut Parameter.
Spécification de la position du paramètre.
Déclaration d’un attribut de validation pour l’entrée de paramètre.
Exemple :
Cet exemple montre une implémentation de l’applet de commande Get-Proc qui inclut un paramètre Name.
namespace Microsoft.Samples.PowerShell.Commands
{
using System;
using System.Diagnostics;
using System.Management.Automation; // Windows PowerShell namespace
#region GetProcCommand
/// <summary>
/// This class implements the Get-Proc cmdlet.
/// </summary>
[Cmdlet(VerbsCommon.Get, "Proc")]
public class GetProcCommand : Cmdlet
{
#region Parameters
/// <summary>
/// The names of the processes retrieved by the cmdlet.
/// </summary>
private string[] processNames;
/// <summary>
/// Gets or sets the list of process names on which
/// the Get-Proc cmdlet will work.
/// </summary>
[Parameter(Position = 0)]
[ValidateNotNullOrEmpty]
public string[] Name
{
get { return this.processNames; }
set { this.processNames = value; }
}
#endregion Parameters
#region Cmdlet Overrides
/// <summary>
/// The ProcessRecord method calls the Process.GetProcesses
/// method to retrieve the processes specified by the Name
/// parameter. Then, the WriteObject method writes the
/// associated process objects to the pipeline.
/// </summary>
protected override void ProcessRecord()
{
// If no process names are passed to the cmdlet, get all
// processes.
if (this.processNames == null)
{
WriteObject(Process.GetProcesses(), true);
}
else
{
// If process names are passed to cmdlet, get and write
// the associated processes.
foreach (string name in this.processNames)
{
WriteObject(Process.GetProcessesByName(name), true);
}
} // End if (processNames...).
} // End ProcessRecord.
#endregion Cmdlet Overrides
} // End GetProcCommand class.
#endregion GetProcCommand
}