Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este ejemplo se muestra cómo escribir un complemento de Windows PowerShell que registra cmdlets específicos.
Con este tipo de complemento, se especifican los cmdlets, proveedores, tipos o formatos que se van a registrar. Para obtener más información sobre cómo escribir un complemento que registra todos los cmdlets y proveedores de un ensamblado, vea Escritura de un complemento de Windows PowerShell.
Para escribir un complemento de Windows PowerShell que registre cmdlets específicos.
Agregue el atributo RunInstallerAttribute.
Cree una clase pública que derive de la clase System.Management.Automation.CustomPSSnapIn.
En este ejemplo, el nombre de clase es "CustomPSSnapinTest".
Agregue una propiedad pública para el nombre del complemento (obligatorio). Al asignar nombres a los complementos, no use ninguno de los siguientes caracteres:
#
,.
,,
,(
,)
,{
,}
,[
,]
,&
,-
,/
,\
,$
,;
,:
,"
,'
,<
,>
,|
,?
,@
,`
*
En este ejemplo, el nombre del complemento es "CustomPSSnapInTest".
Agregue una propiedad pública para el proveedor del complemento (obligatorio).
En este ejemplo, el proveedor es "Microsoft".
Agregue una propiedad pública para el recurso de proveedor del complemento (opcional).
En este ejemplo, el recurso de proveedor es "CustomPSSnapInTest,Microsoft".
Agregue una propiedad pública para la descripción del complemento (obligatorio).
En este ejemplo, la descripción es: "Se trata de un complemento personalizado de Windows PowerShell que incluye los cmdlets
Test-HelloWorld
yTest-CustomSnapinTest
".Agregue una propiedad pública para el recurso de descripción del complemento (opcional).
En este ejemplo, el recurso de proveedor es:
CustomPSSnapInTest, se trata de un complemento personalizado de Windows PowerShell que incluye los cmdlets Test-HelloWorld y Test-CustomSnapinTest".
Especifique los cmdlets que pertenecen al complemento personalizado (opcional) mediante la clase System.Management.Automation.Runspaces.CmdletConfigurationEntry. La información que se agrega aquí incluye el nombre del cmdlet, su tipo de .NET y el nombre del archivo de ayuda del cmdlet (el formato del nombre del archivo de ayuda del cmdlet debe ser
name.dll-help.xml
).En este ejemplo se agregan los cmdlets Test-HelloWorld y TestCustomSnapinTest.
Especifique los proveedores que pertenecen al complemento personalizado (opcional).
En este ejemplo no se especifica ningún proveedor.
Especifique los tipos que pertenecen al complemento personalizado (opcional).
En este ejemplo no se especifica ningún tipo.
Especifique los formatos que pertenecen al complemento personalizado (opcional).
En este ejemplo no se especifica ningún formato.
Ejemplo
En este ejemplo se muestra cómo escribir un complemento personalizado de Windows PowerShell que se puede usar para registrar los cmdlets Test-HelloWorld
y Test-CustomSnapinTest
. Tenga en cuenta que en este ejemplo, el ensamblado completo podría contener otros cmdlets y proveedores que este complemento no registraría.
[RunInstaller(true)]
public class CustomPSSnapinTest : CustomPSSnapIn
{
/// <summary>
/// Creates an instance of CustomPSSnapInTest class.
/// </summary>
public CustomPSSnapinTest()
: base()
{
}
/// <summary>
/// Specify the name of the custom PowerShell snap-in.
/// </summary>
public override string Name
{
get
{
return "CustomPSSnapInTest";
}
}
/// <summary>
/// Specify the vendor for the custom PowerShell snap-in.
/// </summary>
public override string Vendor
{
get
{
return "Microsoft";
}
}
/// <summary>
/// Specify the localization resource information for the vendor.
/// Use the format: resourceBaseName,resourceName.
/// </summary>
public override string VendorResource
{
get
{
return "CustomPSSnapInTest,Microsoft";
}
}
/// <summary>
/// Specify a description of the custom PowerShell snap-in.
/// </summary>
public override string Description
{
get
{
return "This is a custom PowerShell snap-in that includes the Test-HelloWorld and Test-CustomSnapinTest cmdlets.";
}
}
/// <summary>
/// Specify the localization resource information for the description.
/// Use the format: resourceBaseName,Description.
/// </summary>
public override string DescriptionResource
{
get
{
return "CustomPSSnapInTest,This is a custom PowerShell snap-in that includes the Test-HelloWorld and Test-CustomSnapinTest cmdlets.";
}
}
/// <summary>
/// Specify the cmdlets that belong to this custom PowerShell snap-in.
/// </summary>
private Collection<CmdletConfigurationEntry> _cmdlets;
public override Collection<CmdletConfigurationEntry> Cmdlets
{
get
{
if (_cmdlets == null)
{
_cmdlets = new Collection<CmdletConfigurationEntry>();
_cmdlets.Add(new CmdletConfigurationEntry("test-customsnapintest", typeof(TestCustomSnapinTest), "TestCmdletHelp.dll-help.xml"));
_cmdlets.Add(new CmdletConfigurationEntry("test-helloworld", typeof(TestHelloWorld), "HelloWorldHelp.dll-help.xml"));
}
return _cmdlets;
}
}
/// <summary>
/// Specify the providers that belong to this custom PowerShell snap-in.
/// </summary>
private Collection<ProviderConfigurationEntry> _providers;
public override Collection<ProviderConfigurationEntry> Providers
{
get
{
if (_providers == null)
{
_providers = new Collection<ProviderConfigurationEntry>();
}
return _providers;
}
}
/// <summary>
/// Specify the types that belong to this custom PowerShell snap-in.
/// </summary>
private Collection<TypeConfigurationEntry> _types;
public override Collection<TypeConfigurationEntry> Types
{
get
{
if (_types == null)
{
_types = new Collection<TypeConfigurationEntry>();
}
return _types;
}
}
/// <summary>
/// Specify the formats that belong to this custom PowerShell snap-in.
/// </summary>
private Collection<FormatConfigurationEntry> _formats;
public override Collection<FormatConfigurationEntry> Formats
{
get
{
if (_formats == null)
{
_formats = new Collection<FormatConfigurationEntry>();
}
return _formats;
}
}
}
Para obtener más información sobre el registro de complementos, vea Cómo registrar cmdlets, proveedores y aplicaciones host en la guía del programador de Windows PowerShell .