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

时间:2015-04-24 13:46:06

标签: powershell powershell-remoting

例如,我有一个(坏)想法是从文件中定义的字符串导入模块(我不知道如果没有先将此字符串写入文件系统就可以执行此操作)

我正在编写一个我希望能够远程执行的脚本,并且this answer我正在使用“脚本方法”。但是,我想隐藏某些功能 - 我想在脚本中使用某种模块。

或者我正在尝试做什么完全不同的方法?我的所有脚本/模块都是客户端,我想在远程PSSession中运行它们。我并不特别希望将脚本复制到远程服务器或共享驱动器。

我正在使用以下内容将我的脚本源代码转换为远程PSSession:

invoke-command -Session $s -FilePath $p

然后使用脚本文件$p中定义的函数调用脚本块。这有效,但我认为这不适用于模块,如果我想在其他脚本中重用代码,我必须手动将每个脚本导入远程会话,或者在单个单片脚本中复制代码。两者都没有吸引力,似乎也不允许隐藏“私人”方法。

1 个答案:

答案 0 :(得分:2)

您可以使用New-Module cmdlet:

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