繁体   English   中英

我可以在Powershell ps1脚本中隐藏内部帮助器方法吗?

[英]Can I hide internal helper methods in a Powershell ps1 script?

例如,我的一个(坏)主意是从文件中定义的字符串导入模块(我不知道是否可以不先将这个字符串写入文件系统就可以这样做)。

我正在编写一个希望能够远程执行的脚本,然后按照此答案使用“脚本方法”。 但是,我想以某种方式隐藏一些功能-我想要脚本中的某种模块。

还是我要尝试的方法完全不同? 我所有的脚本/模块都是客户端,我想在远程PSSession中运行它们。 我特别不想处理将脚本复制到远程服务器或共享驱动器的操作。

我正在使用以下命令将脚本源代码添加到远程PSSession中:

invoke-command -Session $s -FilePath $p

然后使用脚本文件$p定义的功能调用脚本块。 这行得通,但我认为这不适用于模块,并且如果我想在其他脚本中重用代码,则必须手动将每个脚本导入远程会话,或者在一个整体脚本中复制代码。 两者都没有吸引力,而且似乎都不允许隐藏“私有”方法。

您可以使用New-Module cmdlet:

New-Module {
    function a {
        b
    }
    function b {
        'function b called'
    }
    Export-ModuleMember a
}|Out-Null
a #OK
b #Error

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM