【发布时间】:2015-12-08 09:00:06
【问题描述】:
我在远程会话中调用 ServerObject 的脚本块。在脚本块中,我创建了一个哈希表并将其保存在 ServerObject 中。在脚本块的末尾,顺序是正确的,在会话之后,项目的顺序是错误的。
$Serv = New-Object -TypeName PSObject
$Serv | Add-Member -MemberType NoteProperty -Name Cn -Value Computername
$Serv | Add-Member -MemberType NoteProperty -Name Inf -Value ""
function getInf (){
$Inf = [ordered]@{
SiteConfig = "a";
BrokerController = "b";
AdminRoles = "c";
}
$Serv.Inf = $Inf
}
getInf
$ServResult = Invoke-Command -Cn $Serv.Cn -Credential $Cred -ScriptBlock {
param($Serv)
Invoke-Command -ScriptBlock ([ScriptBlock]::Create($Serv.getInf))
$Serv
}-ArgumentList $Serv
Remove-PSSession -ComputerName $Serv.Cn
$ServResult.Inf
【问题讨论】:
-
可能是 Clixml 序列化问题 - connect.microsoft.com/PowerShell/Feedback/Details/771721
-
我不是凭记忆输入的。相同的代码在我的脚本中(脚本块和会话在两个不同的地方),但我不会发布我的 1330 行代码,只是为了发布一些工作代码。你有什么具体的问题吗?
-
@Temerita 请发布您的代码的minimal, complete and verifiable 示例来演示问题。
-
@alroc 我稍微更改了示例,使其混乱但可执行。
标签: powershell session hashtable ordereddictionary