Esempio di GetProcessSample01GetProcessSample01 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. Questo cmdlet è una versione semplificata del Get-Process cmdlet fornita da Windows PowerShell 2,0.This cmdlet is a simplified version of the Get-Process cmdlet that is provided by Windows PowerShell 2.0.

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

  1. Con Windows PowerShell 2,0 SDK installato, passare alla cartella GetProcessSample01.With the Windows PowerShell 2.0 SDK installed, navigate to the GetProcessSample01 folder. Il percorso predefinito è C:\Programmi (x86) \Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample01.The default location is C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample01.

  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 Microsoft Visual Studio.This opens the sample project in Microsoft 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. Aprire una finestra del prompt dei comandi.Open a Command Prompt window.

  2. Passare alla directory contenente il file con estensione dll di esempio.Navigate to the directory containing the sample .dll file.

  3. Eseguire installutil "GetProcessSample01.dll".Run installutil "GetProcessSample01.dll".

  4. Avviare Windows PowerShell.Start Windows PowerShell.

  5. Eseguire il comando seguente per aggiungere lo snap-in alla Shell.Run the following command to add the snap-in to the shell.

    Add-PSSnapin GetProcPSSnapIn01

  6. Immettere il comando seguente per eseguire il cmdlet.Enter the following command to run the cmdlet. get-proc

    get-proc

    Si tratta di un output di esempio risultante dalla procedura seguente.This is a sample output that results from following these steps.

    Id              Name            State      HasMoreData     Location             Command
    --              ----            -----      -----------     --------             -------
    1               26932870-d3b... NotStarted False                                 Write-Host "A f...
    
    
    Set-Content $env:temp\test.txt "This is a test file"
    
    A file was created in the TEMP directory
    

RequisitiRequirements

Questo esempio richiede Windows PowerShell 1,0 o versioni successive.This sample requires Windows PowerShell 1.0 or later.

DimostraDemonstrates

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

  • Creazione di un cmdlet di esempio di base.Creating a basic sample cmdlet.

  • Definizione di una classe di cmdlet tramite l'attributo cmdlet.Defining a cmdlet class by using the Cmdlet attribute.

  • Creazione di uno snap-in che funziona sia con Windows PowerShell 1,0 che con Windows PowerShell 2,0.Creating a snap-in that works with both Windows PowerShell 1.0 and Windows PowerShell 2.0. Gli esempi successivi usano i moduli anziché gli snap-in in modo che richiedano Windows PowerShell 2,0.Subsequent samples use modules instead of snap-ins so they require Windows PowerShell 2.0.

EsempioExample

In questo esempio viene illustrato come creare un cmdlet semplice e il relativo snap-in.This sample shows how to create a simple cmdlet and its snap-in.

using System;
using System.Diagnostics;
using System.Management.Automation;             //Windows PowerShell namespace
using System.ComponentModel;

namespace Microsoft.Samples.PowerShell.Commands
{

   #region GetProcCommand

   /// <summary>
   /// This class implements the Get-Proc cmdlet.
   /// </summary>
   [Cmdlet(VerbsCommon.Get, "Proc")]
   public class GetProcCommand : Cmdlet
   {
      #region Cmdlet Overrides

      /// <summary>
      /// The ProcessRecord method calls the Process.GetProcesses
      /// method to retrieve the processes of the local computer.
      /// Then, the WriteObject method writes the associated processes
      /// to the pipeline.
      /// </summary>
      protected override void ProcessRecord()
      {
         // Retrieve the current processes.
         Process[] processes = Process.GetProcesses();

         // Write the processes to the pipeline to make them available
         // to the next cmdlet. The second argument (true) tells Windows
         // PowerShell to enumerate the array and to send one process
         // object at a time to the pipeline.
         WriteObject(processes, true);
      }

      #endregion Overrides

   } //GetProcCommand

   #endregion GetProcCommand

   #region PowerShell snap-in

   /// <summary>
   /// Create this sample as an PowerShell snap-in
   /// </summary>
   [RunInstaller(true)]
   public class GetProcPSSnapIn01 : PSSnapIn
   {
       /// <summary>
       /// Create an instance of the GetProcPSSnapIn01
       /// </summary>
       public GetProcPSSnapIn01()
           : base()
       {
       }

       /// <summary>
       /// Get a name for this PowerShell snap-in. This name will be used in registering
       /// this PowerShell snap-in.
       /// </summary>
       public override string Name
       {
           get
           {
               return "GetProcPSSnapIn01";
           }
       }

       /// <summary>
       /// Vendor information for this PowerShell snap-in.
       /// </summary>
       public override string Vendor
       {
           get
           {
               return "Microsoft";
           }
       }

       /// <summary>
       /// Gets resource information for vendor. This is a string of format:
       /// resourceBaseName,resourceName.
       /// </summary>
       public override string VendorResource
       {
           get
           {
               return "GetProcPSSnapIn01,Microsoft";
           }
       }

       /// <summary>
       /// Description of this PowerShell snap-in.
       /// </summary>
       public override string Description
       {
           get
           {
               return "This is a PowerShell snap-in that includes the get-proc cmdlet.";
           }
       }
   }

   #endregion PowerShell snap-in
}

Vedere ancheSee Also

Scrittura di un cmdlet di Windows PowerShellWriting a Windows PowerShell Cmdlet