我有我的电脑在远程计算机上运行本地功能?
MYPC> $txt = "Testy McTesterson"
MYPC> function Do-Stuff($file) {
cd c:\temp;
$txt > $file;
}
我想在远程计算机
MYPC> Invoke-Command -ComputerName OTHERPC { Do-Stuff "test.txt" }
上运行它理解,Do-Stuff
上不存在OTHERPC一个简单的功能,这是行不通的。我怎么能让它工作? Do-Stuff
函数提取一些基本代码,并在其他几个地方调用,所以我不想复制它。
请注意,在我的示例中,通过参数和范围闭包将值传递给函数。那可能吗?
这似乎如果函数是在父脚本范围界定工作。但是,如果您的功能位于本地加载的模块中,它似乎不起作用。到目前为止,我还没有找到解决方案来远程运行在本地模块中定义的功能(远程计算机上没有该模块)。 – Robin
为了澄清我的上述评论,我发现了以下内容:如果函数是在本地模块中定义的,并且它的位置出现在$ PSModulePath中时自动加载,则该函数不能传递给远程计算机。但是,如果本地模块显式加载到父脚本中,则可以将该功能传递给远程计算机。 – Robin