Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este exemplo mostra como implementar um cmdlet que recupera os processos no computador local. Esse 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 GetProcessSample01. A localização predefinida é
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\csharp\GetProcessSample01.Clique duas vezes no ícone do arquivo de solução (.sln). Isso abre o projeto de exemplo no Microsoft Visual Studio.
No menu Criar, selecione Criar solução para criar a biblioteca para o exemplo nas pastas
\binou\bin\debugpadrão.
Como executar o exemplo
Abra uma janela de Prompt de Comando.
Navegue até o diretório que contém o arquivo de .dll de exemplo.
Execute
installutil "GetProcessSample01.dll".Inicie o Windows PowerShell.
Execute o comando a seguir para adicionar o snap-in ao shell.
Add-PSSnapin GetProcPSSnapIn01Insira o comando a seguir para executar o cmdlet.
Get-ProcGet-ProcEsta é uma saída de exemplo que resulta de seguir estas etapas.
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
Requisitos
Este exemplo requer o Windows PowerShell 1.0 ou posterior.
Demonstra
Este exemplo demonstra o seguinte.
Criando um cmdlet de exemplo básico.
Definindo uma classe de cmdlet usando o atributo Cmdlet.
Criar um snap-in que funcione com o Windows PowerShell 1.0 e o Windows PowerShell 2.0. Os exemplos subsequentes usam módulos em vez de snap-ins para que exijam o Windows PowerShell 2.0.
Exemplo
Este exemplo mostra como criar um cmdlet simples e seu snap-in.
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 a 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
}