GetProcessSample02-Beispiel
In diesem Beispiel wird gezeigt, wie Sie ein Cmdlet schreiben, das die Prozesse auf dem lokalen Computer abruft. Sie stellt einen Parameter bereit, mit Name
dem die abzurufenden Prozesse angegeben werden können. Dieses Cmdlet ist eine vereinfachte Version des Get-Process
Cmdlets, das von Windows PowerShell 2.0 bereitgestellt wird.
Erstellen des Beispiels mit Visual Studio.
Navigieren Sie bei installiertem Windows PowerShell 2.0 SDK zum Ordner GetProcessSample02. Der Standardspeicherort ist C:\Programme (x86)\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample02.
Doppelklicken Sie auf das Symbol für die Projektmappendatei (SLN). Dadurch wird das Beispielprojekt in Visual Studio geöffnet.
Wählen Sie im Menü Erstellen die Option Projektmappe erstellen aus.
Die Bibliothek für das Beispiel wird in den Standardordnern \bin oder \bin\debug erstellt.
Ausführen des Beispiels
Erstellen Sie den folgenden Modulordner:
[user]/documents/windowspowershell/modules/GetProcessSample02
Kopieren Sie die Beispielassembly in den Modulordner.
Starten Sie Windows PowerShell.
Führen Sie den folgenden Befehl aus, um die Assembly in Windows PowerShell zu laden:
import-module getprossessample02
Führen Sie den folgenden Befehl aus, um das Cmdlet auszuführen:
get-proc
Anforderungen
Für dieses Beispiel ist Windows PowerShell 2.0 erforderlich.
Zeigt
In diesem Beispiel wird Folgendes veranschaulicht:
Deklarieren einer Cmdlet-Klasse mithilfe des Cmdlet-Attributs.
Deklarieren eines Cmdlet-Parameters mit dem Parameter-Attribut.
Angeben der Position des Parameters.
Deklarieren eines Validierungsattributs für die Parametereingabe.
Beispiel
Dieses Beispiel zeigt eine Implementierung des Get-Proc Cmdlets, das einen Name
Parameter enthält.
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
}
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für