2017-03-06 149 views
-1

我有自定義函數列表,以及將被函數使用的另一個配置文件,我的目標是在遠程服務器上運行這些函數,考慮到某些函數調用其他函數在他們內部,這就是爲什麼我不能使用下面的方法來調用在本地會話中加載的函數。Powershell:在遠程服務器上執行自定義函數

invoke-command -scriptblock ${function:foo} 

是否有可能將模塊製作出來,然後使該模塊在系統啓動時自動導入而不是在用戶登錄時導入。 關於如何完成主要目標的任何建議?

+0

https://msdn.microsoft.com/en-us/library/dd878340(v=vs.85).aspx – 4c74356b41

+0

我曾想過使用模塊。但我怎樣才能讓模塊在系統啓動時自動導入,而不是在用戶登錄,因爲我沒有使用PSSessions我正在使用invoke-command函數 – Vagho

回答

1

那麼,如果你想在系統上安裝Powershell模塊,只需將其複製到適當的目錄即可。

爲程序文件中的所有用戶安裝模塊 如果您希望模塊可用於計算機上的所有用戶帳戶,請將該模塊安裝到Program Files位置。

$EnvProgramFiles\WindowsPowerShell\Modules\<Module Folder>\<Module Files> 

參考:https://msdn.microsoft.com/en-us/library/dd878350(v=vs.85).aspx

PSModulePath安裝模塊只要有可能,安裝的所有模塊在被在PSModulePath環境變量中列出的路徑或模塊路徑添加到PSModulePath環境變量的值。
PSModulePath環境變量($Env:PSModulePath)包含Windows PowerShell模塊的位置。 Cmdlet依賴此環境變量的值來查找模塊。
默認情況下,PSModulePath環境變量值包含以下系統和用戶模塊目錄,但可以添加和編輯該值。

$PSHome\Modules (%Windir%\System32\WindowsPowerShell\v1.0\Modules) 
# This location is reserved for modules that ship with Windows. Do not install modules to this location. 
$Home\Documents\WindowsPowerShell\Modules (%UserProfile%\Documents\WindowsPowerShell\Modules) 
$Env:ProgramFiles\WindowsPowerShell\Modules (%ProgramFiles%\WindowsPowerShell\Modules) 
+0

將powershell自動導入該模塊一旦我調用模塊內部的函數? – Vagho

+1

更新了答案,是的,他們會。 @Vagho – 4c74356b41

相關問題