Compartilhar via


Amostra GetProcessSample02

Este exemplo mostra como escrever um cmdlet que recupera os processos no computador local. Ele fornece um Name parâmetro que pode ser usado para especificar os processos a serem recuperados. este cmdlet é uma versão simplificada do Get-Process cmdlet fornecida pelo Windows PowerShell 2,0.

Como criar o exemplo usando Visual Studio.

  1. com o SDK do Windows PowerShell 2,0 instalado, navegue até a pasta GetProcessSample02 o local padrão é C:\Program files (x86) \microsoft SDKs \ Windows \v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample02.

  2. Clique duas vezes no ícone do arquivo da solução (. sln). Isso abre o projeto de exemplo no Visual Studio.

  3. No menu Compilar, selecione Compilar Solução.

    A biblioteca do exemplo será criada nas pastas \bin ou \bin\Debug padrão.

Como executar a amostra

  1. Crie a seguinte pasta de módulo:

    [user]/documents/windowspowershell/modules/GetProcessSample02

  2. Copie o assembly de exemplo para a pasta do módulo.

  3. Inicie o Windows PowerShell.

  4. Execute o seguinte comando para carregar o assembly em Windows PowerShell:

    import-module getprossessample02

  5. Execute o seguinte comando para executar o cmdlet:

    get-proc

Requisitos

este exemplo requer Windows PowerShell 2,0.

Demonstra

Este exemplo demonstra o seguinte.

  • Declarando uma classe de cmdlet usando o atributo cmdlet.

  • Declarando um parâmetro de cmdlet usando o atributo Parameter.

  • Especificando a posição do parâmetro.

  • Declarando um atributo de validação para a entrada de parâmetro.

Exemplo

Este exemplo mostra uma implementação do cmdlet Get-Proc que inclui um Name parâmetro.

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
}

Consulte Também

Escrevendo um Cmdlet do Windows PowerShell