Przykład GetProcessSample02

W tym przykładzie pokazano, jak napisać polecenie cmdlet, które pobiera procesy na komputerze lokalnym. Udostępnia Name parametr, który może służyć do określania procesów do pobrania. To polecenie cmdlet jest uproszczoną wersją polecenia cmdlet dostarczanego przez Get-Process program Windows PowerShell 2.0.

Jak skompilować przykład przy użyciu Visual Studio.

  1. Po zainstalowaniu Windows PowerShell 2.0 SDK przejdź do folderu GetProcessSample02. Domyślna lokalizacja to C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample02.

  2. Kliknij dwukrotnie ikonę pliku rozwiązania (sln). Spowoduje to otwarcie przykładowego projektu w Visual Studio.

  3. W menu Kompilacja wybierz pozycję Build Solution (Skompilowanie rozwiązania).

    Biblioteka przykładu zostanie s zbudowana w domyślnych folderach \bin lub \bin\debug.

Jak uruchomić przykład

  1. Utwórz następujący folder modułu:

    [user]/documents/windowspowershell/modules/GetProcessSample02

  2. Skopiuj przykładowy zestaw do folderu modułu.

  3. Uruchom program Windows PowerShell.

  4. Uruchom następujące polecenie, aby załadować zestaw do Windows PowerShell:

    import-module getprossessample02

  5. Uruchom następujące polecenie, aby uruchomić polecenie cmdlet :

    get-proc

Wymagania

Ten przykład wymaga Windows PowerShell 2.0.

Demonstracje

W tym przykładzie przedstawiono następujące informacje.

  • Deklarowanie klasy polecenia cmdlet przy użyciu atrybutu polecenia cmdlet.

  • Deklarowanie parametru polecenia cmdlet przy użyciu atrybutu Parametr.

  • Określanie pozycji parametru.

  • Deklarowanie atrybutu walidacji dla danych wejściowych parametru.

Przykład

Ten przykład przedstawia implementację polecenia cmdlet Get-Proc, które zawiera Name parametr .

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
}

Zobacz też

Pisanie polecenia cmdlet programu Windows PowerShell