【问题标题】:PowerShell returning a PSSession objectPowerShell 返回一个 PSSession 对象
【发布时间】:2017-02-25 03:40:39
【问题描述】:

我是 PowerShell 新手,正在尝试为各种任务编写一些 Exchange Online 模块化脚本。我正在研究的模型是有一个控制脚本,它调用其他参数化脚本来执行可重用的功能。

我编写了一个连接脚本,但是当我将 PSSession 对象返回到我的命令脚本时,我无法导入会话,它以某种方式被强制转换为一个对象。

我应该如何围绕我的脚本分享这个会话?

控制脚本:

$session = .\Connection.ps1 -user admin@mydomain.com
Import-PSSession $session

连接脚本(摘要):

Param (
[string]$userparam
)
$UserCredential = Get-Credential -userName $userparam
$Exch = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
return $Exch

【问题讨论】:

    标签: powershell


    【解决方案1】:

    首先,这是因为当您运行脚本时,它会在自己的范围内运行。您将获得作为对象的返回值,但它不再是“活动的”,因为创建它的范围不存在。

    其次,这听起来很像what you really want is a module。将这些部分编写为函数,而不是脚本,然后通过将它们编写为模块将它们制成一个包。

    这样做也可以解决您的范围问题,但好处很多。

    【讨论】:

    • 对我来说听起来像是一个计划。如果成功,我会尝试并标记为答案!
    • 再次感谢您的帮助,@briantist。
    猜你喜欢
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 2012-06-21
    • 2015-06-06
    • 2015-06-03
    • 2014-05-27
    • 2014-05-22
    相关资源
    最近更新 更多