PowerShell返回PSSession对象

时间:2017-02-24 19:27:43

标签: powershell

我是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

1 个答案:

答案 0 :(得分:2)

首先,这种情况正在发生,因为当您运行脚本时,它会在自己的范围内运行。您将获得的返回值作为对象,但它不会被“生活”#34;因为它的创建范围不存在。

其次,它听起来很像what you really want is a module。将这些部分写为函数,而不是脚本,然后将它们作为模块写入单个包中。

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