我试图学习powerscript,并想知道我在这里做错了什么>
Foreach($result in $results){
$userEntry = $result.GetDirectoryEntry()
$row = $table.NewRow()
$row.Name = $userEntry.displayName
$row.UserID = $userEntry.sAMAccountName
$row.Department = $userEntry.department
$table.Rows.Add($row)
}
我想要的是将userdata输出到我的表的正确单元格中,但我得到的是每个单元格中重复的“System.DirectoryServices.PropertyValueCollection”。
当我使用相同的格式但输出
时Foreach($result in $results){
$userEntry = $result.GetDirectoryEntry()
Write-Output('' + "Name: " + $userEntry.displayName + "`r`n" + " " +"AccountInfo:" +$userEntry.sAMAccountName + "`r`n" + " " + "Dept: " + $userEntry.department)
}
这是正确的
表信息有什么不同?
谢谢大家,我现在希望将此信息添加到工作表中,目前为:
#Excel worksheet
$objExcel = new-object -comobject excel.application
$objExcel.Visible = $True
$objWorkbook = $objExcel.Workbooks.Add()
$objWorksheet = $objWorkbook.Worksheets.Item(1)
但是现在我如何将我的foreach语句值打印到excel工作表上,或者打印到使用该语句创建的工作簿上?
答案 0 :(得分:3)
尝试使用value属性
$ user.propertyName.value
答案 1 :(得分:2)
我想说的答案是你的$ user.Foo类型,以及PowerShell处理集合的方式。比较:
$user.Foo | Get-Member
和
, $user.Foo | Get-Member
因为$ user.Foo 看起来像标量,但实际上是集合,$ row.Foo = $ user.Foo将显示类型而不是值。
你会如何解决?两个选项:
$row.Foo = -join $user.Foo
或
$row.Foo = $user.Foo[0]
HTH 鲍尔泰克