我在 c# 中创建了一个简单的 PowerShell 模块,它实现了一些 cmdlet,我希望能够在导入模块时运行代码。
从在 google 和命名空间中环顾四周,似乎没有这样做的正确方法。
到目前为止,我提出的解决方法是创建一个 psm1 或 ps1 文件,该文件在加载模块时运行并执行启动操作(宁愿不使用它,因为脚本在某些将运行的环境中被阻止)。
其他选项是我已经能够通过创建一个 CmdletProvider 来做到这一点,但它在使用 new-psdrive 时会在提供程序列表中创建一个垃圾条目。
[CmdletProvider("junkprovider", ProviderCapabilities.None)]
public class Startup : CmdletProvider
{
Public Startup()
{
// Startup code here
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法正确地做到这一点,或者我将不得不使用黑客?