我是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
答案 0 :(得分:2)
首先,这种情况正在发生,因为当您运行脚本时,它会在自己的范围内运行。您将获得的返回值作为对象,但它不会被“生活”#34;因为它的创建范围不存在。
其次,它听起来很像what you really want is a module。将这些部分写为函数,而不是脚本,然后将它们作为模块写入单个包中。
这样做也可以解决您的范围问题,但优势很多。