【发布时间】:2013-01-21 15:23:32
【问题描述】:
我正在开发一个自定义 PowerShell 模块,我想在与另一台计算机进行远程会话的上下文中使用它。以下代码(显然不起作用)解释了我想要实现的目标:
import-module .\MyCustomModule.psm1
$session = new-pssession -computerName server01
invoke-command -session $session -scriptblock {
<# use function defined in MyCustomModule here #>
}
第一个问题是是否有可能实现这种情况?我的意思是我只希望我的自定义模块物理存在于我的机器上,而不是远程服务器上。
我找到了this thread,但我没有设法让它工作——它不允许创建从远程机器回到本地机器的会话。可能,我遇到了该线程的 cmets 中某处提到的配置限制......此外,作者提到了对我的解决方案至关重要的性能影响......
如果可以,那怎么做?
PowerShell 的版本目前不受限制 - 如果解决方案仅在 PS 3.0 中可用 - 我可以接受。
【问题讨论】:
-
我不相信这是支持的。您必须像他们尝试过的那样使用黑客。请问为什么不能在远程计算机上安装模块?这才是明智的解决方案。
-
@DavidBrabant,嗯,是的,非常接近。但是,我未能使那里的解决方案起作用,我明确引用了该线程以表明我尝试了该选项并要求替代方案:)
-
@Graimer,这个想法是使用任何可用的机器来执行一些部署场景,而不需要在远程机器上安装任何东西。但如果不支持该场景,我们将不得不忍受这个......
-
为什么不把模块放在公共位置,用
Import-Module \\fileserver\folders\modulefolder开始你的脚本块?确保在导入之前对其进行数字签名或使用Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process之类的内容以绕过警告?
标签: powershell powershell-2.0 powershell-remoting powershell-3.0