Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este exemplo mostra como escrever um cmdlet que recupera os processos no computador local. Ele fornece um parâmetro Name que pode ser usado para especificar os processos a serem recuperados. Este cmdlet é uma versão simplificada do cmdlet Get-Process fornecido pelo Windows PowerShell 2.0.
Como criar o exemplo usando o Visual Studio
Com o SDK do Windows PowerShell 2.0 instalado, navegue até a pasta GetProcessSample02. O local padrão é
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample02.Clique duas vezes no ícone do arquivo de solução (.sln). Isso abre o projeto de exemplo no Visual Studio.
No menu Build, selecione Build Solution para criar a biblioteca para o exemplo nas pastas
\binou\bin\debugpadrão.
Como executar o exemplo
Crie a seguinte pasta de módulo:
[user]\Documents\WindowsPowerShell\Modules\GetProcessSample02Copie o assembly de exemplo para a pasta do módulo.
Inicie o Windows PowerShell.
Execute o seguinte comando para carregar o assembly no Windows PowerShell:
Import-Module getprossessample02Execute o seguinte comando para executar o cmdlet:
Get-Proc
Requerimentos
Este exemplo requer o Windows PowerShell 2.0.
Demonstra
Este exemplo demonstra o seguinte.
Declarando uma classe de cmdlet usando o atributo Cmdlet.
Declarando um parâmetro de cmdlet usando o atributo Parameter.
Especificando a posição do parâmetro.
Declarando um atributo de validação para a entrada do parâmetro.
Exemplo
Este exemplo mostra uma implementação do cmdlet Get-Proc que inclui um parâmetro Name.
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
}