2014-05-14 28 views
0

我正在使用invoke-command來執行遠程服務器上的腳本列表。我使用一個變量數組來指定腳本。在PowerShell中將數組傳遞給-FilePath參數

$Modules = Get-Content "Modules\Modules.txt" 
$ModulePath = "Modules\" + $Module 
Invoke-Command server -FilePath $ModulePath 

這給了我一個錯誤: 調用命令:FilePath參數的值必須是Windows PowerShell腳本文件。輸入帶有.ps1文件擴展名的文件的路徑,然後再次嘗試該命令。 參數名稱:filePath

如果我將數組替換爲單個腳本文件的絕對路徑,那麼它的工作原理沒有問題。

謝謝!

+1

您是否嘗試過輸出$ ModulePath來查看您發送給該參數的具體內容? – mjolinor

+0

我有。字符串輸出是腳本文件的完整路徑。 – user3638757

回答

2

也許嘗試這樣的事:

獲取內容 「模塊\ Modules.txt」 | foreach {invoke-Command「Modules \ $ _」}

+0

試過,結果相同。有趣的是要注意。如果我將$ ModulePath更改爲單個腳本的完整路徑,它將起作用。例如:$ ModulePath =「。\ Modules \ Test.ps1」 – user3638757

+1

好的,沒錯。我的不好。如果您未指定當前目錄,PowerShell將嘗試從其程序文件夾或System32運行(如果處於管理模式)。很高興它爲你工作。 – Scarecrow

相關問題