如何限制从二进制powershell模块(*.dll文件)导出的命令?

问题描述 投票:0回答:1

我知道我可以限制从导入的模块导出的命令,如下所示:

Import-Module C:\...\MyModule
Import-Module C:\...\MyModule\MyModule.psd1

然后我可以在.psd1中使用CmdletsToExport。

但是,如果我从 .dll 导入模块怎么办?

Import-Module C:\...\MyModule.dll

如何限制导出的命令(cmdlet)?

我们的 .dll 中有一些 cmdlet 在默认情况下应该“隐藏”,并且我们希望仅当某些环境变量具有某些值时才允许调用它们。

powershell import-module powershell-7
1个回答
0
投票

我想不出基于环境变量的解决方案,但如果执行命令使“隐藏”cmdlet可见是可以接受的,您可以采取以下方法:

  • 围绕包含 cmdlet 的

    *.dll
    创建一个成熟的、基于目录的模块,通过其模块清单 (
    .psd1
    ),您可以限制导入时调用者可以使用哪些 cmdlet。

  • 如果您想(稍后或替代)加载 all cmdlet,请直接在

    Import-Module -Force
    上运行
    *.dll
    ,这将导入所有 cmdlet(所有公共
    Cmdlet
    和/或
    PSCmdlet
    派生类) ).

© www.soinside.com 2019 - 2024. All rights reserved.