Escrevendo um snap-in do Windows PowerShell
Este exemplo mostra como escrever um snap-in do Windows PowerShell que pode ser usado para registrar todos os cmdlets e provedores do Windows PowerShell em um assembly.
Com esse tipo de snap-in, você não seleciona quais cmdlets e provedores deseja registrar. Para escrever um snap-in que permita selecionar o que está registrado, consulte Escrevendo um snap-in personalizado do Windows PowerShell.
Escrevendo um snap-in do Windows PowerShell
Adicione o atributo RunInstallerAttribute.
Crie uma classe pública que deriva da classe System.Management.Automation.PSSnapIn.
Neste exemplo, o nome da classe é "GetProcPSSnapIn01".
Adicione uma propriedade pública para o nome do snap-in (obrigatório). Ao nomear snap-ins, não use nenhum dos seguintes caracteres:
#
,.
,,
,(
,)
,{
,}
,[
,]
,&
,-
,/
,\
,$
,;
,:
,"
,'
,<
,>
,|
,?
,@
,`
,*
Neste exemplo, o nome do snap-in é "GetProcPSSnapIn01".
Adicione uma propriedade pública para o fornecedor do snap-in (obrigatório).
Neste exemplo, o fornecedor é "Microsoft".
Adicione uma propriedade pública para o recurso de fornecedor do snap-in (opcional).
Neste exemplo, o recurso do fornecedor é "GetProcPSSnapIn01,Microsoft".
Adicione uma propriedade pública para a descrição do snap-in (obrigatório).
Neste exemplo, a descrição é "Este é um snap-in do Windows PowerShell que registra o cmdlet Get-Proc".
Adicione uma propriedade pública para o recurso de descrição do snap-in (opcional).
Neste exemplo, o recurso do fornecedor é "GetProcPSSnapIn01,Este é um snap-in do Windows PowerShell que registra o cmdlet Get-Proc".
Exemplo
Este exemplo mostra como escrever um snap-in do Windows PowerShell que pode ser usado para registrar o cmdlet Get-Proc no shell do Windows PowerShell. Lembre-se de que, neste exemplo, o assembly completo conteria apenas a classe de snap-in GetProcPSSnapIn01 e a classe de cmdlet Get-Proc
.
[RunInstaller(true)]
public class GetProcPSSnapIn01 : PSSnapIn
{
/// <summary>
/// Create an instance of the GetProcPSSnapIn01 class.
/// </summary>
public GetProcPSSnapIn01()
: base()
{
}
/// <summary>
/// Specify the name of the PowerShell snap-in.
/// </summary>
public override string Name
{
get
{
return "GetProcPSSnapIn01";
}
}
/// <summary>
/// Specify the vendor for the PowerShell snap-in.
/// </summary>
public override string Vendor
{
get
{
return "Microsoft";
}
}
/// <summary>
/// Specify the localization resource information for the vendor.
/// Use the format: resourceBaseName,VendorName.
/// </summary>
public override string VendorResource
{
get
{
return "GetProcPSSnapIn01,Microsoft";
}
}
/// <summary>
/// Specify a description of the PowerShell snap-in.
/// </summary>
public override string Description
{
get
{
return "This is a PowerShell snap-in that includes the Get-Proc cmdlet.";
}
}
/// <summary>
/// Specify the localization resource information for the description.
/// Use the format: resourceBaseName,Description.
/// </summary>
public override string DescriptionResource
{
get
{
return "GetProcPSSnapIn01,This is a PowerShell snap-in that includes the Get-Proc cmdlet.";
}
}
}