Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
powershell:导入模块时运行代码_Powershell - Fatal编程技术网

powershell:导入模块时运行代码

powershell:导入模块时运行代码,powershell,Powershell,我用C#开发了一个powershell模块,实现了一些命令 当Powershell导入C#代码时,如何在该模块中执行该代码?这是一个非常基本的解决方案,只需用源代码替换{}中的代码即可。(我的测试如下) 添加类型“public class c{public const string s=“Hello World”;}”;[c] ::s 享受创建模块清单,将ModuleToProcess(或V3中的RootModule)字段设置为PSM1文件,将NestedModule设置为DLL,例如: Roo

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


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

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

添加类型“public class c{public const string s=“Hello World”;}”;[c] ::s


享受

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

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

这就是我们在游戏中所做的,我们在游戏中做同样的事情——首先启动一个脚本。您可以看到我们的PSD1文件。

我还在.NET中编写一个二进制cmdLet。我发现,如果创建一个至少从DriveCmdletProvider继承的类,该类可以实现InitializeDefaultDrive

在DLL上调用导入模块时,将调用此方法


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

您是否建议在导入后显式执行函数?我不是一个c#开发者。但是,当我在导入模块时编写powershell模块时,未包装在函数或工作流中的代码会在加载后立即执行。我不能确定C#模块的情况是否如此。我不认为C#模块中有任何与后续脚本代码对应的代码。基思·希尔(Keith Hill)将其放在前端,模块处理,我的第一个逻辑步骤是脚本处理,这是从我的模块清单中摘录的导入此模块之前在调用方环境中运行的脚本文件(.ps1)。#ScriptStopProcess=@()您希望二进制(c#)powershell模块在导入时运行一些代码吗?不清楚的问题。你试过什么了吗?对,我想在powershell导入模块时在模块中执行C代码。我想做一些启蒙运动。以及“由powershell导入时”->执行命令时:导入模块。\MyModule.dlld是否需要使用signtool对程序集进行签名,或者psd1文件是如何嵌入到dll文件中的?您没有将psd1嵌入dll中。您可以将模块作为文件夹(例如PSCX\PSCX.psd1、PSCX\PSCX.psm1、PSCX\PSCX.dll等)中的文件集合发送,并且无需对任何内容进行身份验证签名。