[英]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.