2012-09-06 91 views
1

我在模塊sysinfo.psm1中創建了一個函數「Get-Uptime」並導入了模塊。啓動時未識別的功能

C:/pstools> get-command -Module sysinfo 

CommandType  Name            Definition 
-----------  ----            ---------- 
Function  Get-Uptime           ... 

該功能在Powershell內正常工作。但是,每當我在開始作業-ScriptBlock使用的獲取,運行時間函數{獲取正常運行時間$ servernae},作業失敗,出現以下錯誤

Receive-Job : The term 'get-uptime' is not recognized as the name of a 
cmdlet, function, script file, or operable program. Check the spelling of 
the name, or if a path was included, verify that the path is correct and 
try again. 

可能有人請讓我知道我已經錯過了?我搜索了網絡,發現了一個建議,在scriptblock中編寫所有代碼,而不是使用函數,但我試過並得到類似的錯誤。

謝謝。

回答

3

可以使用InitializationScript導入模塊:

PS II> Start-Job -InitializationScript {import-module "c:\module.psm1"} -script {Uptime} 
2

在調用函數之前,您必須在ScriptBlock中明確地導入您的模塊。

+0

感謝。您的建議有效。 –

2

PowerShell作業在單獨的進程中運行,爲每個作業對象創建一個新的powershell.exe,並且該進程不知道在另一個會話中導入的模塊。

爲了需要Get-Uptime功能,請將模塊加載到Start-Job命令中。

+0

謝謝。導入腳本塊的作品。 –