Vytvoření vlastního modulu snap-in Windows PowerShellu
tento příklad ukazuje, jak napsat modul snap-in Windows PowerShell, který registruje konkrétní rutiny.
Pomocí tohoto typu modulu snap-in určíte, které rutiny, zprostředkovatele, typy nebo formáty mají být registrovány. další informace o tom, jak napsat modul snap-in, který registruje všechny rutiny a zprostředkovatele v sestavení, najdete v tématu zápis Windows PowerShell modulu snap-in.
chcete-li napsat modul Snap-in Windows PowerShell, který zaregistruje konkrétní rutiny.
Přidejte atribut atributem RunInstallerAttribute.
Vytvořte veřejnou třídu, která je odvozena z třídy System. Management. Automation. Custompssnapin .
V tomto příkladu je název třídy "CustomPSSnapinTest".
Přidejte veřejnou vlastnost pro název modulu snap-in (povinné). Při pojmenování modulů snap-in Nepoužívejte žádný z následujících znaků:
#
,.
,,
,(
,)
,{
,}
,[
,]
,&
,-
,/
,\
,$
,;
,:
,"
,'
,<
>
|
?
@
`
,,,,,,,,,,,,,,,,,,*
V tomto příkladu je název modulu snap-in "CustomPSSnapInTest".
Přidejte veřejnou vlastnost pro dodavatele modulu snap-in (povinné).
V tomto příkladu je dodavatel "Microsoft".
Přidejte veřejnou vlastnost pro prostředek dodavatele modulu snap-in (volitelné).
V tomto příkladu je prostředek dodavatele "CustomPSSnapInTest, Microsoft".
Přidejte veřejnou vlastnost pro popis modulu snap-in (povinné).
v tomto příkladu je popis: "toto je vlastní Windows PowerShell modul snap-in, který obsahuje
Test-HelloWorld
Test-CustomSnapinTest
rutiny a".Přidejte veřejnou vlastnost pro popis prostředku modulu snap-in (volitelné).
V tomto příkladu je prostředek dodavatele:
CustomPSSnapInTest, jedná se o vlastní modul snap-in Windows PowerShell, který obsahuje rutiny Test-HelloWorld a Test-CustomSnapinTest.
Určete rutiny, které patří do vlastního modulu snap-in (volitelné) pomocí třídy System. Management. Automation. prostředí runspace. Cmdletconfigurationentry . Sem přidané informace zahrnují název rutiny, její typ .NET a název souboru Help rutiny (formát názvu souboru Help rutiny by měl být
name.dll-help.xml
).Tento příklad přidá rutiny Test-HelloWorld a TestCustomSnapinTest.
Zadejte poskytovatele, kteří patří do vlastního modulu snap-in (volitelné).
Tento příklad neurčuje žádné poskytovatele.
Zadejte typy, které patří do vlastního modulu snap-in (volitelné).
Tento příklad neurčuje žádné typy.
Určete formáty, které patří do vlastního modulu snap-in (volitelné).
V tomto příkladu nejsou zadány žádné formáty.
Příklad
tento příklad ukazuje, jak napsat vlastní modul snap-in Windows PowerShell, který lze použít k registraci Test-HelloWorld
rutin a Test-CustomSnapinTest
. Upozorňujeme, že v tomto příkladu může kompletní sestavení obsahovat jiné rutiny a zprostředkovatele, které by tento modul snap-in neregistroval.
[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;
}
}
}
další informace o registraci modulů snap-in najdete v tématu jak registrovat rutiny, zprostředkovatele a hostitelské aplikace v příručce pro Windows PowerShell programátory.
Viz také
Jak registrovat rutiny, zprostředkovatele a hostitelské aplikace
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro