Написание пользовательской оснастки Windows PowerShell
в этом примере показано, как написать Windows PowerShell оснастку, которая регистрирует определенные командлеты.
С помощью этого типа оснастки вы указываете, какие командлеты, поставщики, типы или форматы нужно зарегистрировать. дополнительные сведения о написании оснастки, которая регистрирует все командлеты и поставщики в сборке, см. в разделе написание оснастки Windows PowerShell.
для записи оснастки Windows PowerShell, которая регистрирует определенные командлеты.
Добавьте атрибут Рунинсталлераттрибуте.
Создайте открытый класс, производный от класса System. Management. Automation. кустомпсснапин .
В этом примере имя класса — «Кустомпсснапинтест».
Добавьте открытое свойство для имени оснастки (обязательно). При именовании оснасток не используйте следующие символы:
#
,.
,,
,,(
)
,{
,}
,[
,]
,&
,-
/
\
$
;
:
"
'
<
>
|
?
@
`
,,,,,,,,,,,,,,*
В этом примере имя оснастки — «Кустомпсснапинтест».
Добавьте открытое свойство для поставщика оснастки (обязательно).
В этом примере поставщиком является "Microsoft".
Добавьте открытое свойство для ресурса поставщика оснастки (необязательно).
В этом примере ресурсом поставщика является "Кустомпсснапинтест, Microsoft".
Добавьте открытое свойство для описания оснастки (обязательно).
в этом примере описание: "это пользовательская оснастка Windows PowerShell, которая включает
Test-HelloWorld
Test-CustomSnapinTest
командлеты и".Добавьте открытое свойство для ресурса описания оснастки (необязательно).
В этом примере ресурсом поставщика является:
кустомпсснапинтест, это настраиваемая оснастка Windows PowerShell, которая включает Test-HelloWorld и Test-CustomSnapinTest командлеты».
Укажите командлеты, принадлежащие к пользовательской оснастке (необязательно), с помощью класса System. Management. Automation. пространства. кмдлетконфигуратионентри . Добавляемые здесь сведения включают имя командлета, его тип .NET и имя файла справки командлета (формат имени файла справки командлета должен быть
name.dll-help.xml
).В этом примере добавляются командлеты Test-HelloWorld и Тесткустомснапинтест.
Укажите поставщиков, принадлежащих к пользовательской оснастке (необязательно).
В этом примере не указаны поставщики.
Укажите типы, принадлежащие к пользовательской оснастке (необязательно).
В этом примере не указаны типы.
Укажите форматы, принадлежащие к пользовательской оснастке (необязательно).
В этом примере не указаны никакие форматы.
Пример
в этом примере показано, как написать настраиваемую оснастку Windows PowerShell, которая может использоваться для регистрации Test-HelloWorld
Test-CustomSnapinTest
командлетов и. Имейте в виду, что в этом примере полная сборка может содержать другие командлеты и поставщики, которые не будут зарегистрированы в этой оснастке.
[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;
}
}
}
дополнительные сведения о регистрации оснасток см. в разделе регистрация командлетов, поставщиков и ведущих приложений руководства программиста Windows PowerShell.
См. также:
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по