2017-02-24 109 views
1

我是PowerShell的新手,並嘗試爲各種任務編寫一些Exchange Online模塊化腳本。我正在處理的模型是有一個控制腳本,用於調用其他參數化腳本來執行可重用函數。PowerShell返回PSSession對象

我已經寫了一個連接腳本,但是當我將PSSession對象返回給我的命令腳本時,我無法導入會話,它以某種方式轉換爲對象。

我應該如何在我的腳本中共享此會話?

控制腳本:

$session = .\Connection.ps1 -user [email protected] 
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 

回答

2

首先,這種情況正在發生,因爲當你運行一個腳本在其自己的範圍內運行。您將獲得作爲對象的返回值,但它不再是「活的」,因爲它的創建範圍不存在。

其次,這聽起來很像what you really want is a module。將這些作品作爲功能寫入,而不是腳本,然後將它們作爲模塊寫入單個程序包。

這樣做也可以解決您的範圍問題,但優點很多。

+0

聽起來像是對我的計劃。如果結果合適,我會給這個嘗試並標記爲答案! –

+0

再次感謝您的幫助,@ briantist。 –