powershell:导入模块时运行代码

时间:2013-01-30 18:20:00

标签: powershell

我在C#中开发了一个powershell模块,实现了一些命令。

当Powershell导入时,如何在此模块中执行C#代码?

3 个答案:

答案 0 :(得分:3)

创建一个模块清单,其中ModuleToProcess(或V3中的RootModule)字段设置为PSM1文件,NestedModules设置为DLL,例如:

RootModule         = 'Pscx.psm1'
NestedModules      = 'Pscx.dll' 

这就是我们在PowerShell Community Extensions中所做的事情 - 我们做同样的事情 - 首先启动一个脚本。您可以看到我们的PSD1文件here

答案 1 :(得分:0)

这是一个非常基本的解决方案,只需用您的来源替换{}中的代码即可。 (我的测试如下)

add-type'public class c {public const string s =“Hello World”;}'; [c] :: s

享受

答案 2 :(得分:0)

我也在.NET中编写二进制cmdLet。我发现如果你创建一个至少继承自DriveCmdletProvider的类,那么该类可以实现InitializeDefaultDrives。

在DLL上调用import-module时会调用此方法。

您可以使用此“功能”来展示某些会话(或模块会话)数据。