新对象添加成员 - 无法添加成员 - powershell

min*_*ino 3 powershell psobject

我有一个问题:(当我添加与之前的 Object 属性同名的 New 对象时,出现很多错误。

“Add-Member:无法添加名为“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"
Run Code Online (Sandbox Code Playgroud)

Mic*_*lli 5

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

$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
Run Code Online (Sandbox Code Playgroud)

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

$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"
}
Run Code Online (Sandbox Code Playgroud)

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