2016-03-15 80 views
1

我正在使用Exchange Server 2013通訊組和ArrayList。將對象添加到ArrayList導致對象的屬性轉換類型

$groups = @() 
$groups += Get-DistributionGroup "groupName" 
foreach($group in $groups) 
... 

我試圖提取$group.ManagedBy屬性,它是一個ADMultiValuedProperty,但是在我的劇本,ManagedBy被轉換成一個ArrayList,我失去​​的ManagedBy,因爲它(屬性如$group.ManagedBy.Name是空白何時應該有價值)。爲什麼會發生這種類型轉換?

+0

您在其中一臺Exchange服務器或實際EMS外殼上使用遠程管理會話嗎? – mjolinor

+0

儘管ISE通過遠程會話,雖然直接發生在Exchange服務器上。理想情況下,我希望在可能的情況下使用遠程會話。 –

+0

遠程會話會產生反序列化的對象,這會導致保真度的降低。沒有解決方法,我知道,你只需要解決它。 – mjolinor

回答

1

你所看到的是使用遠程管理會話的結果。從遠程會話返回的對象通過序列化/反序列化過程,並且剩下一個反序列化的對象。序列化只保持有限深度的保真度,因此可能會丟失嵌套在基礎對象屬性中的對象的某些屬性。你也將失去對象方法。

當您手動序列化和反序列化對象(使用export/import-clixml)時,您可以指定要保持的保真度深度,但據我所知,這對於遠程處理使用的序列化過程是固定的,並且沒有辦法改變它。你只需要學會期待它,並圍繞它進行編碼。