【问题标题】:powershell function not working right when used in custom module在自定义模块中使用时,powershell 功能无法正常工作
【发布时间】:2014-10-03 21:55:17
【问题描述】:

我的功能很简单,它将你连接到一个 Office365 帐户:

Function Connect-O365 {
[CmdletBinding()]
Param()
    $url = "https://ps.outlook.com/powershell"
    $O365Credential = Get-Credential -Message "Enter your Office 365 Credentials"
    $O365Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $url -Credential $O365Credential -Authentication Basic -AllowRedirection
    Import-PSSession -Session $O365Session -Prefix O365
}

从自定义模块运行时,导入会话中的命令不会被导入,不会返回任何错误或任何消息。

但是,如果我将相同的功能复制/粘贴到我的 powershell 配置文件,或直接到控制台,它工作得非常好,命令从会话中成功导入。

想法?

编辑:我要添加此函数的我的模块是一个简单的 .psm1 文件,其中只有两个其他不相关的函数,也没有太复杂。

【问题讨论】:

  • 模块中的函数导出了吗?
  • 在 PS4 上运行良好,您使用的是什么版本?运行了哪些错误以及导入会话中的哪些命令?运行Connect-O365 后可以看到列表中的模块吗?
  • 将我函数中的最后一行修改为: Import-Module (Import-PSSession -Session $O365Session) -Global -Prefix O365 这解决了我的问题,即模块没有在我的 Import 中导入-会话
  • @EvanYoung - 好东西,把它作为答案发布并接受它,这样问题就可以结束了。
  • 感谢您的帮助,它引导我找到解决它的路径。

标签: powershell


【解决方案1】:

将函数的最后一行修改为:

Import-Module (Import-PSSession -Session $O365Session) -Global -Prefix O365

这解决了我的问题,是模块没有在我的 Import-Session 上导入

【讨论】:

    猜你喜欢
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多