0

私は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ワークシート、またはステートメントで作成されたブックに印刷するにはどうすればよいですか?

4

2 に答える 2

3

valueプロパティで試してください

$ user.propertyName.value

于 2012-05-17T17:26:57.130 に答える
2

答えは$user.Fooタイプと、PowerShellがコレクションを処理する方法にあると思います。比較:

$user.Foo | Get-Member

, $user.Foo | Get-Member

$ user.Fooはスカラーのように見えますが、実際にはコレクションであるため、$ row.Foo =$user.Fooは値ではなくタイプを表示します。

どのようにそれを解決しますか?2つのオプション:

$row.Foo = -join $user.Foo

また

$row.Foo = $user.Foo[0]

HTH Bartek

于 2012-05-17T17:44:37.097 に答える