3

My$fileには 2 つの列が含まれています。のユーザー名を使用して、3 列目と 4 列目にそれぞれ とを.追加したいと思います。これまでのところ、私は持っています:namegivenname

$file = Import-Csv H:\computers2userswoSP1.csv
$out = foreach ($o in $file.name) {
    Get-ADUser $o | select name, givenname
}

以下のコードを最初の に追加しようとしましたforeachが、うまくいきませんでした:

foreach ($r in $out) {
    New-Object PSObject -prop @{
        name = $file.fullname
        givenname = $file.Firstname
    }
}

また、ループの前にこれを追加します:

Add-Member -InputObject $file -TypeName fullname
Add-Member -InputObject $file -TypeName Firstname

これをループで:

$out.givenname += $file.FirstName
$out.name += $file.

ご覧のとおり、少し暗い場所で撮影しています。推奨事項はありますか?

4

2 に答える 2

1

私があなたの意図を正しく読んだら、 ADImport-Csvからのデータに基づいて生成された各オブジェクトに2つのプロパティを追加したいと思います。その場合は、次のようなことを行うことができます(ここではによってエミュレートされます):Import-CsvConvertFrom-Csv

@'
username,fullname
bielawb,"Bartek Bielawki"
fasolaj,"Jas Fasola"
'@ | ConvertFrom-Csv | foreach {
    $AD = Get-ADUser -Identity $_.username
    New-Object PSObject -Property @{
        UserName = $_.username
        FullName = $_.fullname
        Name = $AD.Name
        GivenName = $AD.GivenName
    }
}

CSVのデータは関係ありません。フィールドがCSVにあるフィールドと一致しない場合は、New-Object構文の値を更新するだけです。

于 2013-03-01T13:47:04.363 に答える