GetProcessSample01 – exempel

Det här exemplet visar hur du implementerar en cmdlet som hämtar processerna på den lokala datorn. Denna cmdlet är en förenklad version av Get-Process cmdleten som tillhandahålls av Windows PowerShell 2.0.

Skapa exemplet med hjälp av Visual Studio.

  1. När du Windows PowerShell 2.0 SDK navigerar du till mappen GetProcessSample01. Standardplatsen är C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample01.

  2. Dubbelklicka på ikonen för lösningsfilen (.sln). Exempelprojektet öppnas i Microsoft Visual Studio.

  3. I menyn Build (Skapa) väljer du Build Solution (Skapa lösning).

Biblioteket för exemplet kommer att byggas i standardmapparna \bin eller \bin\debug.

Köra exemplet

  1. Öppna ett kommandotolksfönster.

  2. Gå till katalogen som innehåller exempelfilen .dll exempelfilen.

  3. Kör installutil "GetProcessSample01.dll".

  4. Starta Windows PowerShell

  5. Kör följande kommando för att lägga till snapin-modulen i gränssnittet.

    Add-PSSnapin GetProcPSSnapIn01

  6. Kör cmdleten genom att ange följande kommando. get-proc

    get-proc

    Det här är ett exempel på utdata som följer de här stegen.

    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
    

Krav

Det här exemplet kräver Windows PowerShell 1.0 eller senare.

Demonstrationer

Det här exemplet visar följande.

  • Skapa en grundläggande exempel-cmdlet.

  • Definiera en cmdlet-klass med hjälp av attributet Cmdlet.

  • Skapa en snapin-modulen som fungerar med både Windows PowerShell 1.0 och Windows PowerShell 2.0. Efterföljande exempel använder moduler i stället för snapin-moduler så att de Windows PowerShell 2.0.

Exempel

Det här exemplet visar hur du skapar en enkel cmdlet och dess snapin-modulen.

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
}

Se även

Skriva en Windows PowerShell-cmdlet