首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在start-job中无法识别函数

在start-job中无法识别函数
EN

Stack Overflow用户
提问于 2012-09-06 13:51:18
回答 3查看 4.1K关注 0票数 1

我在一个模块sysinfo.psm1中创建了一个函数"Get-Uptime“,并导入了该模块。

代码语言:javascript
复制
C:/pstools> get-command -Module sysinfo

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

该函数在Powershell中运行良好。但是,每当我在启动作业-scriptblock {Get-Uptime $servernae}中使用Get-Uptime函数时,作业都会失败,并显示以下错误

代码语言:javascript
复制
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编写所有代码,而不是使用函数,但我尝试了一下,得到了类似的错误。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-06 19:06:36

您可以使用InitializationScript导入模块:

代码语言:javascript
复制
PS II> Start-Job -InitializationScript {import-module "c:\module.psm1"} -script {Uptime}
票数 3
EN

Stack Overflow用户

发布于 2012-09-06 13:59:51

在调用函数之前,您必须在ScriptBlock中显式导入您的模块。

票数 2
EN

Stack Overflow用户

发布于 2012-09-06 15:01:38

PowerShell作业在单独的进程中运行,为每个作业对象创建一个新的powershell.exe,并且该进程不知道在另一个会话中导入了一个模块。

为了需要Get-Uptime函数,请在Start-Job命令中加载该模块。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12293701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档