例如,我有一个(坏)想法是从文件中定义的字符串导入模块(我不知道如果没有先将此字符串写入文件系统就可以执行此操作)
我正在编写一个我希望能够远程执行的脚本,并且this answer我正在使用“脚本方法”。但是,我想隐藏某些功能 - 我想在脚本中使用某种模块。
或者我正在尝试做什么完全不同的方法?我的所有脚本/模块都是客户端,我想在远程PSSession中运行它们。我并不特别希望将脚本复制到远程服务器或共享驱动器。
我正在使用以下内容将我的脚本源代码转换为远程PSSession:
invoke-command -Session $s -FilePath $p
然后使用脚本文件$p
中定义的函数调用脚本块。这有效,但我认为这不适用于模块,如果我想在其他脚本中重用代码,我必须手动将每个脚本导入远程会话,或者在单个单片脚本中复制代码。两者都没有吸引力,似乎也不允许隐藏“私人”方法。
答案 0 :(得分:2)
您可以使用New-Module
cmdlet:
New-Module {
function a {
b
}
function b {
'function b called'
}
Export-ModuleMember a
}|Out-Null
a #OK
b #Error