我有我的電腦在遠程計算機上運行本地功能?
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