Skriva en anpassad Windows PowerShell-snapin-modul
Det här exemplet visar hur du skriver Windows PowerShell snapin-modulen som registrerar specifika cmdlets.
Med den här typen av snapin-modulen anger du vilka cmdlets, providers, typer eller format som ska registreras. Mer information om hur du skriver en snapin-modulen som registrerar alla cmdlets och providers i en sammansättning finns i Skriva en Windows PowerShell snapin-modulen.
För att skriva Windows PowerShell snapin-modulen som registrerar specifika cmdlets.
Lägg till attributet RunInstallerAttribute.
Skapa en offentlig klass som härleds från klassen System.Management.Automation.Custompssnapin.
I det här exemplet är klassnamnet "CustomPSSnapinTest".
Lägg till en offentlig egenskap för namnet på snapin-modulen (krävs). Använd inte något av följande tecken när du namnger snapin-modulen:
#, , , , ,., , ,,, ,(, ,), ,{}[]&-,/\$;:"'<>|,?@`,*I det här exemplet är namnet på snapin-modulen "CustomPSSnapInTest".
Lägg till en offentlig egenskap för leverantören av snapin-modulen (krävs).
I det här exemplet är leverantören "Microsoft".
Lägg till en offentlig egenskap för leverantörsresursen för snapin-modulen (valfritt).
I det här exemplet är leverantörsresursen "CustomPSSnapInTest,Microsoft".
Lägg till en offentlig egenskap för beskrivningen av snapin-modulen (krävs).
I det här exemplet är beskrivningen: "Det här är en anpassad Windows PowerShell snapin-modulen som innehåller
Test-HelloWorldTest-CustomSnapinTestcmdletarna och .Lägg till en offentlig egenskap för beskrivningsresursen för snapin-modulen (valfritt).
I det här exemplet är leverantörsresursen:
CustomPSSnapInTest, Detta är en anpassad Windows PowerShell snapin-modulen som innehåller Test-HelloWorld och Test-CustomSnapinTest cmdlets".
Ange de cmdlets som tillhör den anpassade snapin-modulen (valfritt) med hjälp av klassen System.Management.Automation.Runspaces.Cmdletconfigurationentry. Informationen som läggs till här innehåller namnet på cmdleten, dess .NET-typ och cmdlet-hjälpfilnamnet (formatet för cmdleten Hjälp-filnamn ska vara
name.dll-help.xml).I det här exemplet läggs cmdletarna Test-HelloWorld testcustomSnapinTest till.
Ange de leverantörer som tillhör den anpassade snapin-modulen (valfritt).
I det här exemplet anges inga providers.
Ange de typer som tillhör den anpassade snapin-modulen (valfritt).
I det här exemplet anges inga typer.
Ange de format som tillhör den anpassade snapin-modulen (valfritt).
Det här exemplet anger inga format.
Exempel
Det här exemplet visar hur du skriver en anpassad Windows PowerShell snapin-modulen som kan användas för att registrera Test-HelloWorld Test-CustomSnapinTest cmdletarna och . Tänk på att den fullständiga sammansättningen i det här exemplet kan innehålla andra cmdlets och providers som inte skulle registreras av den här snapin-modulen.
[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;
}
}
}
Mer information om hur du registrerar snapin-modulen finns i How to Register Cmdlets, Providers, and Host Applications i Windows PowerShell Programmer's Guide.
Se även
Feedback
Skicka och visa feedback för