将powershell Psobject转换为New对象



我制作了一个函数,该函数返回自定义psobject,但当我试图使用"."获取对象的属性时,注意到发生了这种情况,管道在这种类型的对象中也不起作用。

是否有方法将此对象转换为使用cmdlet New object创建的对象?

为什么新的psobject缺少功能?

$ObjectProperties = @{                   
    Users     = "admin"
    Computer  = "localhost"
    Error     = $false
}
$Objects += New-Object psobject -Property $ObjectProperties
# I am trying to use select this object like $objects.computer but doesnt work
$Objects.
$objectTest = New-Object Object
$objectTest | Add-Member NoteProperty error $false
$objectTest | Add-Member NoteProperty Computadores "localhost"
$objectTest | Add-Member NoteProperty Usuarios "admin"
#I need an object like this that can be easy managed 
$objectTest

我试过用这种方式转换它,但不起作用

$objectCompu = $objects |select computer|Out-String
$objectError = $Objects |select error|Out-String
$objectUsers = $Objects |select users |Out-String
$objectTest = New-Object Object
$objectTest | Add-Member NoteProperty error $objectError
$objectTest | Add-Member NoteProperty Computadores $objectCompu
$objectTest | Add-Member NoteProperty Usuarios $objectUsers
$objectTest

(我的评论作为答案)

CCD_ 1是CCD_;

所以这行:

$Objects += New-Object psobject -Property $ObjectProperties

期望$Objects是一个列表,然后向列表中添加一个项。你还没有说它是否应该是一个列表,所以我想你只想制作一个对象,应该使用=而不是+=:

$Objects = New-Object psobject -Property $ObjectProperties

然后你可以做:

$Objects.Computer

最新更新