Esempio di GetProcessSample03GetProcessSample03 Sample

In questo esempio viene illustrato come implementare un cmdlet che recupera i processi nel computer locale.This sample shows how to implement a cmdlet that retrieves the processes on the local computer. Fornisce un Name parametro che può accettare un oggetto dalla pipeline o un valore di una proprietà di un oggetto il cui nome di proprietà corrisponde al nome del parametro.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. Questo cmdlet è una versione semplificata del Get-Process cmdlet fornito da Windows PowerShell 2,0.This cmdlet is a simplified version of the Get-Process cmdlet provided by Windows PowerShell 2.0.

Come compilare l'esempio con Visual Studio.How to build the sample using Visual Studio.

  1. Con Windows PowerShell 2,0 SDK installato, passare alla cartella GetProcessSample03.With the Windows PowerShell 2.0 SDK installed, navigate to the GetProcessSample03 folder. Il percorso predefinito è C:\Programmi (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. Fare doppio clic sull'icona del file di soluzione (con estensione sln).Double-click the icon for the solution (.sln) file. Verrà aperto il progetto di esempio in Visual Studio.This opens the sample project in Visual Studio.

  3. Scegliere Compila soluzione dal menu Compila.In the Build menu, select Build Solution.

    La libreria per l'esempio verrà compilata nelle cartelle \bin o \bin\Debug predefinite.The library for the sample will be built in the default \bin or \bin\debug folders.

Per eseguire l'esempioHow to run the sample

  1. Creare la cartella dei moduli seguente:Create the following module folder:

    [user]/documents/windowspowershell/modules/GetProcessSample03

  2. Copiare l'assembly di esempio nella cartella del modulo.Copy the sample assembly to the module folder.

  3. Avviare Windows PowerShell.Start Windows PowerShell.

  4. Eseguire il comando seguente per caricare l'assembly in Windows PowerShell:Run the following command to load the assembly into Windows PowerShell:

    Import-module getprossessample03

  5. Eseguire il comando seguente per eseguire il cmdlet:Run the following command to run the cmdlet:

    get-proc

RequisitiRequirements

Questo esempio richiede Windows PowerShell 2,0.This sample requires Windows PowerShell 2.0.

DimostraDemonstrates

In questo esempio vengono illustrate le operazioni seguenti.This sample demonstrates the following.

  • Dichiarazione di una classe di cmdlet mediante l'attributo cmdlet.Declaring a cmdlet class using the Cmdlet attribute.

  • Dichiarazione di un parametro del cmdlet mediante l'attributo Parameter.Declaring a cmdlet parameter using the Parameter attribute.

  • Specifica la posizione del parametro.Specifying the position of the parameter.

  • Specifica che il parametro accetta input dalla pipeline.Specifying that the parameter takes input from the pipeline. L'input può essere tratto da un oggetto o da un valore di una proprietà di un oggetto il cui nome di proprietà corrisponde al nome del parametro.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.

  • Dichiarazione di un attributo di convalida per l'input del parametro.Declaring a validation attribute for the parameter input.

EsempioExample

Questo esempio illustra un'implementazione del cmdlet Get-proc che include un Name parametro che accetta l'input dalla pipeline.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
}

Vedere ancheSee Also

Scrittura di un cmdlet di Windows PowerShellWriting a Windows PowerShell Cmdlet