2

我有一个问题:(当我添加与以前的属性名称相同的新对象时,我有很多错误 Object 。

“添加成员:无法添加名为“ServerName”的成员,因为具有该名称的成员已经存在。无论如何要覆盖该成员,请将 Force 参数添加到您的命令中。

它有效,但有错误;)有人为我提供解决方案吗?

下面的示例代码:

$OutputObj = @()

$OutputObj += New-Object -TypeName PSobject
$OutputObj | Add-Member -MemberType NoteProperty -Name ServerName -Value "server1"
$OutputObj | Add-Member -MemberType NoteProperty -Name Status -Value "online"
$OutputObj | Add-Member -MemberType NoteProperty -Name Uptime -Value "01:20"

$OutputObj += New-Object -TypeName PSobject
$OutputObj | Add-Member -MemberType NoteProperty -Name ServerName -Value "server2"
$OutputObj | Add-Member -MemberType NoteProperty -Name Status -Value "online"
$OutputObj | Add-Member -MemberType NoteProperty -Name Uptime -Value "01340"
4

1 回答 1

4

您在数组上添加成员,而不是在对象上。尝试以下操作:

$OutputObj = @()

$NewObj = New-Object -TypeName PSobject
$NewObj | Add-Member -MemberType NoteProperty -Name ServerName -Value "server1"
$NewObj | Add-Member -MemberType NoteProperty -Name Status -Value "online"
$NewObj | Add-Member -MemberType NoteProperty -Name Uptime -Value "01:20"

$OutputObj += $NewObj

$NewObj = New-Object -TypeName PSobject
$NewObj | Add-Member -MemberType NoteProperty -Name ServerName -Value "server2"
$NewObj | Add-Member -MemberType NoteProperty -Name Status -Value "online"
$NewObj | Add-Member -MemberType NoteProperty -Name Uptime -Value "01340"
$OutputObj += $NewObj

或者,我会执行以下操作:

$OutputObj = @()
$OutputObj += New-Object -TypeName PSobject -Property @{
    ServerName = "server1"
    Status = "Online"
    Uptime = "01:20"
}


$OutputObj += New-Object -TypeName PSobject -Property @{
    ServerName = "server2"
    Status = "Online"
    Uptime = "01340"
}

由于 Add-Member 每次使用都会销毁并生成一个新对象。

于 2017-11-12T12:17:22.240 回答