Ejemplo GetProcessSample03GetProcessSample03 Sample

Este ejemplo muestra cómo implementar un cmdlet que recupera los procesos en el equipo local.This sample shows how to implement a cmdlet that retrieves the processes on the local computer. Proporciona un Name parámetro que puede aceptar un objeto de la canalización o un valor de una propiedad de un objeto cuyo nombre de propiedad es el mismo que el nombre del parámetro.It provides a Name parameter that can accept an object from the pipeline or a value from a property of an object whose property name is the same as the parameter name. Este cmdlet es una versión simplificada del Get-Process cmdlet proporcionado por Windows PowerShell 2,0.This cmdlet is a simplified version of the Get-Process cmdlet provided by Windows PowerShell 2.0.

Cómo compilar el ejemplo con Visual Studio.How to build the sample using Visual Studio.

  1. Con el SDK de Windows PowerShell 2,0 instalado, vaya a la carpeta GetProcessSample03.With the Windows PowerShell 2.0 SDK installed, navigate to the GetProcessSample03 folder. La ubicación predeterminada es C:\Archivos de programa (x86) \Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample03.The default location is C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample03.

  2. Haga doble clic en el icono del archivo de solución (. sln).Double-click the icon for the solution (.sln) file. Se abrirá el proyecto de ejemplo en Visual Studio.This opens the sample project in Visual Studio.

  3. En el menú Compilar, seleccione Compilar solución.In the Build menu, select Build Solution.

    La biblioteca del ejemplo se generará en las carpetas \Bin o \bin\debug predeterminadas.The library for the sample will be built in the default \bin or \bin\debug folders.

Ejecución del ejemploHow to run the sample

  1. Cree la siguiente carpeta de módulo:Create the following module folder:

    [user]/documents/windowspowershell/modules/GetProcessSample03

  2. Copie el ensamblado de ejemplo en la carpeta del módulo.Copy the sample assembly to the module folder.

  3. Inicie Windows PowerShell.Start Windows PowerShell.

  4. Ejecute el siguiente comando para cargar el ensamblado en Windows PowerShell:Run the following command to load the assembly into Windows PowerShell:

    Import-module getprossessample03

  5. Ejecute el siguiente comando para ejecutar el cmdlet:Run the following command to run the cmdlet:

    get-proc

RequisitosRequirements

Este ejemplo requiere Windows PowerShell 2,0.This sample requires Windows PowerShell 2.0.

MuestraDemonstrates

Este ejemplo muestra lo siguiente.This sample demonstrates the following.

  • Declarar una clase de cmdlet mediante el atributo de cmdlet.Declaring a cmdlet class using the Cmdlet attribute.

  • Declarar un parámetro de cmdlet mediante el atributo Parameter.Declaring a cmdlet parameter using the Parameter attribute.

  • Que especifica la posición del parámetro.Specifying the position of the parameter.

  • Especificar que el parámetro toma la entrada de la canalización.Specifying that the parameter takes input from the pipeline. La entrada se puede tomar de un objeto o un valor de una propiedad de un objeto cuyo nombre de propiedad es el mismo que el nombre del parámetro.The input can be taken from an object or a value from a property of an object whose property name is the same as the parameter name.

  • Declarar un atributo de validación para la entrada de parámetro.Declaring a validation attribute for the parameter input.

EjemploExample

Este ejemplo muestra una implementación del cmdlet Get-proc que incluye un Name parámetro que acepta la entrada de la canalización.This sample shows an implementation of the Get-Proc cmdlet that includes a Name parameter that accepts input from the pipeline.

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 names of the
    /// process that the cmdlet will retrieve.
    /// </summary>
    [Parameter(
               Position = 0,
               ValueFromPipeline = true,
               ValueFromPipelineByPropertyName = true)]
    [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 processes 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 the cmdlet, get and write
        // the associated processes.
        foreach (string name in this.processNames)
        {
          WriteObject(Process.GetProcessesByName(name), true);
        }
      } // End if (processNames ...)
    } // End ProcessRecord.

    #endregion Overrides
  } // End GetProcCommand.
  #endregion GetProcCommand
}

Consulte tambiénSee Also

Escribir un cmdlet de Windows PowerShellWriting a Windows PowerShell Cmdlet