将 powershell Psobject 转换为 New-object
convert powershell Psobject to New-object
我创建了一个 returns 自定义 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
(我的评论作为回答)
$Object += __
是 $Objects = $Objects + __
;
的缩写
所以这一行:
$Objects += New-Object psobject -Property $ObjectProperties
期望 $Objects
是一个列表,然后向列表中添加一个项目。你还没有说它是否应该是一个列表,所以我猜你只想制作一个对象,并且应该使用 =
而不是 +=
:
$Objects = New-Object psobject -Property $ObjectProperties
那么你可以这样做:
$Objects.Computer
我创建了一个 returns 自定义 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
(我的评论作为回答)
$Object += __
是 $Objects = $Objects + __
;
所以这一行:
$Objects += New-Object psobject -Property $ObjectProperties
期望 $Objects
是一个列表,然后向列表中添加一个项目。你还没有说它是否应该是一个列表,所以我猜你只想制作一个对象,并且应该使用 =
而不是 +=
:
$Objects = New-Object psobject -Property $ObjectProperties
那么你可以这样做:
$Objects.Computer