Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit voorbeeld ziet u hoe u een Windows PowerShell-module schrijft waarmee specifieke cmdlets worden geregistreerd.
Met dit type module geeft u op welke cmdlets, providers, typen of indelingen moeten worden geregistreerd. Zie Een Windows PowerShell-module schrijvenvoor meer informatie over het schrijven van een module waarmee alle cmdlets en providers in een assembly worden geregistreerd.
Een Windows PowerShell-module schrijven waarmee specifieke cmdlets worden geregistreerd.
Voeg het kenmerk RunInstallerAttribute toe.
Maak een openbare klasse die is afgeleid van de klasse System.Management.Automation.CustomPSSnapIn.
In dit voorbeeld is de klassenaam 'CustomPSSnapinTest'.
Voeg een openbare eigenschap toe voor de naam van de module (vereist). Bij het benoemen van modules, gebruik geen van de volgende tekens:
#,.,,,(,),{,},[,],&,-,/,\,$,;,:,",',<,>,|,?,@,`,*In dit voorbeeld is de naam van de module 'CustomPSSnapInTest'.
Voeg een openbare eigenschap toe voor de leverancier van de module (vereist).
In dit voorbeeld is de leverancier Microsoft.
Voeg een openbare eigenschap toe voor de leverancierresource van de module (optioneel).
In dit voorbeeld is de leverancierresource 'CustomPSSnapInTest,Microsoft'.
Voeg een openbare eigenschap toe voor de beschrijving van de module (vereist).
In dit voorbeeld is de beschrijving: 'Dit is een aangepaste Windows PowerShell-module die de
Test-HelloWorldenTest-CustomSnapinTestcmdlets bevat'.Voeg een openbare eigenschap toe voor de beschrijvingsresource van de module (optioneel).
In dit voorbeeld is de leverancierresource:
CustomPSSnapInTest, dit is een aangepaste Windows PowerShell-module die de Test-HelloWorld en Test-CustomSnapinTest cmdlets bevat.'
Geef de cmdlets op die deel uitmaken van de aangepaste module (optioneel) met behulp van de klasse System.Management.Automation.Runspaces.CmdletConfigurationEntry. De informatie die hier wordt toegevoegd, bevat de naam van de cmdlet, het .NET-type en de naam van het Help-cmdletbestand (de indeling van de help-bestandsnaam van de cmdlet moet
name.dll-help.xml).In dit voorbeeld worden de cmdlets Test-HelloWorld en TestCustomSnapinTest toegevoegd.
Geef de providers op die deel uitmaken van de aangepaste module (optioneel).
In dit voorbeeld worden geen providers opgegeven.
Geef de typen op die deel uitmaken van de aangepaste module (optioneel).
In dit voorbeeld worden geen typen opgegeven.
Geef de indelingen op die deel uitmaken van de aangepaste module (optioneel).
In dit voorbeeld worden geen notaties opgegeven.
Voorbeeld
In dit voorbeeld ziet u hoe u een aangepaste Windows PowerShell-module schrijft die kan worden gebruikt om de Test-HelloWorld en Test-CustomSnapinTest cmdlets te registreren. Houd er rekening mee dat in dit voorbeeld de volledige assembly andere cmdlets en providers kan bevatten die niet door deze module worden geregistreerd.
[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;
}
}
}
Zie voor meer informatie over het registreren van modules Cmdlets, providers en hosttoepassingen registreren in de Windows PowerShell Programmer's Guide.