Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a példa bemutatja, hogyan írhat egy Windows PowerShell beépülő modult, amely bizonyos parancsmagokat regisztrál.
Ezzel a beépülő modultípussal megadhatja, hogy mely parancsmagokat, szolgáltatókat, típusokat vagy formátumokat szeretné regisztrálni. Az összes parancsmagot és szolgáltatót szerelvényben regisztráló beépülő modul írásáról további információt A Windows PowerShell beépülő modulírása című témakörben talál.
Adott parancsmagokat regisztráló Windows PowerShell beépülő modul írása.
Adja hozzá a RunInstallerAttribute attribútumot.
Hozzon létre egy nyilvános osztályt, amely a System.Management.Automation.CustomPSSnapIn osztályból származik.
Ebben a példában az osztály neve "CustomPSSnapinTest".
Adjon hozzá egy nyilvános tulajdonságot a beépülő modul nevéhez (kötelező). Beépülő modulok elnevezésekor ne használja a következő karakterek egyikét sem:
#,.,,,(,),{,},[,],&,-,/,\,$,;,:,",',<,>,|,?,@,`,*Ebben a példában a beépülő modul neve "CustomPSSnapInTest".
Adjon hozzá egy nyilvános tulajdonságot a beépülő modul szállítójához (kötelező).
Ebben a példában a szállító a "Microsoft".
Adjon hozzá egy nyilvános tulajdonságot a beépülő modul szállítói erőforrásához (nem kötelező).
Ebben a példában a szállítói erőforrás a "CustomPSSnapInTest,Microsoft".
Adjon hozzá egy nyilvános tulajdonságot a beépülő modul leírásához (kötelező).
Ebben a példában a leírás a következő: "Ez egy egyéni Windows PowerShell beépülő modul, amely tartalmazza a
Test-HelloWorldésTest-CustomSnapinTestparancsmagokat".Adjon hozzá egy nyilvános tulajdonságot a beépülő modul leírási erőforrásához (nem kötelező).
Ebben a példában a szállítói erőforrás a következő:
CustomPSSnapInTest, Ez egy egyéni Windows PowerShell beépülő modul, amely tartalmazza a Test-HelloWorld és Test-CustomSnapinTest parancsmagokat".
Adja meg az egyéni beépülő modulhoz tartozó parancsmagokat (nem kötelező) a System.Management.Automation.Runspaces.CmdletConfigurationEntry osztály használatával. Az itt hozzáadott információk közé tartozik a parancsmag neve, a .NET típusa és a parancsmag súgófájljának neve (a parancsmag súgófájljának formátumának
name.dll-help.xmlkell lennie).Ez a példa hozzáadja a Test-HelloWorld és a TestCustomSnapinTest parancsmagokat.
Adja meg az egyéni beépülő modulhoz tartozó szolgáltatókat (nem kötelező).
Ez a példa nem ad meg szolgáltatókat.
Adja meg az egyéni beépülő modulhoz tartozó típusokat (nem kötelező).
Ez a példa nem ad meg semmilyen típust.
Adja meg az egyéni beépülő modulhoz tartozó formátumokat (nem kötelező).
Ez a példa nem ad meg formátumokat.
Példa
Ez a példa bemutatja, hogyan írhat egyéni Windows PowerShell beépülő modult, amely a Test-HelloWorld és Test-CustomSnapinTest parancsmagok regisztrálásához használható. Vegye figyelembe, hogy ebben a példában a teljes szerelvény tartalmazhat olyan parancsmagokat és szolgáltatókat, amelyeket ez a beépülő modul nem regisztrálna.
[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;
}
}
}
További információ a beépülő modulok regisztrálásáról: Parancsmagok, szolgáltatók és gazdagépalkalmazások regisztrálása a Windows PowerShell programozói útmutatójában.
Lásd még:
Parancsmagok, szolgáltatók és gazdagépalkalmazások regisztrálása