如何将用户信息添加到powershell表

时间:2012-05-17 15:39:08

标签: powershell

我试图学习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工作表上,或者打印到使用该语句创建的工作簿上?

2 个答案:

答案 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 鲍尔泰克