我觉得我错过了一些显而易见的东西,但我无法弄清楚如何做到这一点.
我有一个ps1脚本,其中定义了一个函数.它调用该函数,然后尝试远程使用它:
function foo
{
Param([string]$x)
Write-Output $x
}
foo "Hi!"
Invoke-Command -ScriptBlock { foo "Bye!" } -ComputerName someserver.example.com -Credential someuser@example.com
Run Code Online (Sandbox Code Playgroud)
这个简短的示例脚本打印出"嗨!" 然后崩溃说"术语'foo'不被识别为cmdlet,函数,脚本文件或可操作程序的名称."
我知道该功能未在远程服务器上定义,因为它不在ScriptBlock中.我可以在那里重新定义它,但我不愿意.我想定义一次该函数并在本地或远程使用它.有没有办法做到这一点?