我正在尝试创建一个脚本来接收计算机列表以及我需要创建进程的每台计算机,在运行该进程后,我有许多需要附加到对象的变量
如何附加到对象,返回的PC信息?
#input variable that the foreach need to process
$Machines = "pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9,pc0"
#create empty object
$pcNull
$MachineNull
$usersNull
$object= New-Object Object
$object | Add-Member NoteProperty propiedad $MachineNull
$object | Add-Member NoteProperty users $usersNull
$object | Add-Member NoteProperty computer $pcNull
$object | Add-Member NoteProperty error $false
foreach ($Machine in $Machines )
{
#where i make a process foreach computer and there are variables that are returned
{
}
###############################
#where i am trying to append to the created object the returned variables
#append to propiedad property
$object.propiedad = $object.propiedad = $MachineNull
$object
#append to users property
$object.users = $object.users = $false
$object
#append to computers property
$object.computer = $object.computer = $Machine
$object
}
$object
答案 0 :(得分:3)
最好在foreach
循环内创建多个对象,每台计算机一个。
# Loop through machines, assign all output to $Objects variable
$Objects = foreach ($Machine in $Machines)
{
#where i make a process foreach computer and there are variables that are returned
{
}
###############################
#where i am trying to append to the created object the returned variables
# Define the properties that the object should have in a hashtable
$ObjectProperties = @{
# Assuming you've assigned something to $Propriedad, $Users and $ErrorState above
Propiedad = $Propriedad
Users = $Users
Computer = $Machine
Error = $ErrorState
}
# Now create an object.
# When we just drop it in the pipeline like this, it gets assigned to $Objects
New-Object psobject -Property $ObjectProperties
}
现在,您可以使用ConvertTo-Html
$Objects | ConvertTo-Html -As Table -Head "<title>Kimo's report</title>"
如果您想对其进行测试,则需要将$Machines
更改为:
"pc1","pc2","pc3","pc4","pc5","pc6","pc7","pc8","pc9","pc0"
如果要将其另存为.ps1脚本文件并能够将计算机名称作为参数传递,请在顶部添加param()
块:
param([string[]]$Machines)
现在,如果您将脚本保存为“KimosReporter.ps1”,则可以对任何计算机运行它:
PS C:\>.\KimosReporter.ps1 -Machines "pc1","pc6","pc9"