Amostra GetProcessSample03
Este exemplo mostra como implementar um cmdlet que recupera os processos no computador local. Ele fornece um Name
parâmetro que pode aceitar um objeto do pipeline ou um valor de uma propriedade de um objeto cujo nome de propriedade é igual ao nome do parâmetro. este cmdlet é uma versão simplificada do Get-Process
cmdlet fornecida pelo Windows PowerShell 2,0.
Como criar o exemplo usando Visual Studio.
com o SDK do Windows PowerShell 2,0 instalado, navegue até a pasta GetProcessSample03 o local padrão é C:\Program files (x86) \microsoft SDKs \ Windows \v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample03.
Clique duas vezes no ícone do arquivo da solução (. sln). Isso abre o projeto de exemplo no Visual Studio.
No menu Compilar, selecione Compilar Solução.
A biblioteca do exemplo será criada nas pastas \bin ou \bin\Debug padrão.
Como executar a amostra
Crie a seguinte pasta de módulo:
[user]/documents/windowspowershell/modules/GetProcessSample03
Copie o assembly de exemplo para a pasta do módulo.
Inicie o Windows PowerShell.
Execute o seguinte comando para carregar o assembly em Windows PowerShell:
Import-module getprossessample03
Execute o seguinte comando para executar o cmdlet:
get-proc
Requisitos
este exemplo requer 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.
Especificando que o parâmetro recebe entrada do pipeline. A entrada pode ser Obtida de um objeto ou de um valor de uma propriedade de um objeto cujo nome de propriedade é igual ao nome do parâmetro.
Declarando um atributo de validação para a entrada de parâmetro.
Exemplo
Este exemplo mostra uma implementação do cmdlet Get-Proc que inclui um Name
parâmetro que aceita entrada do pipeline.
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 names of the
/// process that the cmdlet will retrieve.
/// </summary>
[Parameter(
Position = 0,
ValueFromPipeline = true,
ValueFromPipelineByPropertyName = true)]
[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 processes 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 the cmdlet, get and write
// the associated processes.
foreach (string name in this.processNames)
{
WriteObject(Process.GetProcessesByName(name), true);
}
} // End if (processNames ...)
} // End ProcessRecord.
#endregion Overrides
} // End GetProcCommand.
#endregion GetProcCommand
}
Consulte Também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de