Я работаю над оснасткой PowerShell, я планирую разместить его на IIS в качестве плагина модуля WSMan. Мне интересно, как передать дополнительные параметры из web.config для оснастки?Как передать аргументы в плагин WinRM (PowerShell), размещенный в IIS
Здесь детали:
Web.config файл приложения, которое хост PS оснастки:
<system.webServer>
<system.management.wsmanagement.config>
<PluginModules>
<OperationsPlugins>
<Plugin Name="MyPSPlugin" Filename="%windir%\system32\pwrshplugin.dll" SDKVersion="1" XmlRenderingType="text">
<InitializationParameters>
<!-- I'd like to declare additional parameter for PS span-in here something like this: -->
<Param Name="myData" Value="Test" />
<Param Name="PSVersion" Value="2.0" />
<Param Name="assemblyname" Value="C:\MyServices\PowerShell\Bin\MyPSSnapin.dll" />
<Param Name="pssessionconfigurationtypename" Value="MyCompany.PowerShell.MyPSSessionConfiguration" />
</InitializationParameters>
<Resources>
<Resource ResourceUri="http://schemas.microsoft.com/powershell/Hosting.PowerShell" SupportsOptions="true">
<Capability Type="Shell" />
</Resource>
</Resources>
</Plugin>
</OperationsPlugins>
</PluginModules>
</system.management.wsmanagement.config>
</system.webServer>
Здесь Реализация PSSessionConfiguration:
namespace MyCompany.PowerShell
{
public class MyPSSessionConfiguration : PSSessionConfiguration
{
public override InitialSessionState GetInitialSessionState(PSSenderInfo senderInfo)
{
// read additional parameter something like this:
var myData = sendrerInfo.ApplicationArguments["myData"];
return base.GetInitialSessionState(senderInfo);
}
}
}
такой же подход уже используется - есть конфигурационный файл для PS snap- В (MyPSSnapin.dll.config). Но я должен удалить файл конфигурации и передать данные через ApplicationArguments. – Victor