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.
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.
Kliknij dwukrotnie ikonę pliku rozwiązania (sln). Spowoduje to otwarcie przykładowego projektu w Visual Studio.
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
Utwórz następujący folder modułu:
[user]/documents/windowspowershell/modules/GetProcessSample02
Skopiuj przykładowy zestaw do folderu modułu.
Uruchom program Windows PowerShell.
Uruchom następujące polecenie, aby załadować zestaw do Windows PowerShell:
import-module getprossessample02
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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla