Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här exemplet visar hur du skriver en Windows PowerShell-snapin-modul som registrerar specifika cmdletar.
Med den här typen av snapin-modul anger du vilka cmdletar, leverantörer, typer eller format som ska registreras. Mer information om hur du skriver en snapin-modul som registrerar alla cmdletar och providrar i en sammansättning finns i Writing a Windows PowerShell Snap-in.
Så här skriver du en Windows PowerShell-snapin-modul som registrerar specifika cmdletar.
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). När du namnger snapin-moduler använd inte något av följande tecken:
#
,.
,,
,(
,)
,{
,}
,[
,]
,&
,-
, ,}
,[
,]
,&
,-
,/
,\
,$
,;
,:
,"
,'
,<
,>
,|
,?
,@
,`
,*
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-modul som innehåller cmdletarna
Test-HelloWorld
ochTest-CustomSnapinTest
".Lägg till en offentlig egenskap för beskrivningsresursen för snapin-modulen (valfritt).
I det här exemplet är leverantörsresursen:
CustomPSSnapInTest, Det här är en anpassad Windows PowerShell-snapin-modul som innehåller cmdletarna Test-HelloWorld och Test-CustomSnapinTest".
Ange de cmdletar 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 cmdletens hjälpfilnamn (formatet för cmdletens hjälpfilnamn ska vara
name.dll-help.xml
).Det här exemplet lägger till cmdletarna Test-HelloWorld och TestCustomSnapinTest.
Ange de leverantörer som tillhör den anpassade snapin-modulen (valfritt).
I det här exemplet anges inga leverantörer.
Ange de typer som tillhör den anpassade snapin-modulen (valfritt).
Det här exemplet anger inga typer.
Ange de format som tillhör den anpassade snapin-modulen (valfritt).
I det här exemplet anges inga format.
Exempel
Det här exemplet visar hur du skriver en anpassad Windows PowerShell-snapin-modul som kan användas för att registrera cmdletarna Test-HelloWorld
och Test-CustomSnapinTest
. Tänk på att den fullständiga sammansättningen i det här exemplet kan innehålla andra cmdletar och leverantörer 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-moduler finns i How to Register Cmdlets, Providers, and Host Applications in the Windows PowerShell Programmer's Guide.