2016-08-16 4 views
1

ドメインコンピュータに関するデータを収集するためのスクリプトを作成していますが、これをcsvファイルに出力しようとしています。しかし、私はそれが欲しい方法で出てこない。ここで複数の値を出力する際の問題

は私のコードです:

Set-ExecutionPolicy Unrestricted -force 
Import-Module ActiveDirectory 

$CSVPath = $ScriptFolderPath + "\" + $ScriptName + ".csv" 
$Import = Get-Content "c:\T2\AD Computers Scripts\ComputersTest.csv" 

foreach ($Member in $Import) 
{ 
    $ComputerName = Get-ADComputer $Member -Properties Name, CanonicalName | Select Name, CanonicalName 

    $ConnectionStatus = Test-Connection $Member -Quiet 
    IF ($ConnectionStatus -eq $TRUE) 
    { 
     $IPAddress = Test-Connection $Member -Count 1 | Select -ExpandProperty IPV4Address 
    } 
    ELSE 
    { 
     $IPAddress = "Not able to contact server" 
    } 

    $CSVPath 

    $Report1 = $ComputerName | ForEach -Process {$_ | Add-Member -Name IPAddress -Value $IPAddress -MemberType NoteProperty -PassThru} 
    $Report1 | Add-Member -Name Subnet -Value $CSVPath -MemberType NoteProperty -PassThru 
    $Report1 
    "`n`n`n" 

アウトプットは次のようになります。

Name       CanonicalName     IPAddress      Subnet 
----       -------------     ---------      ------ 
CEN-RVS      abc.local/Servers/Corpora... 10.19.95.2     C:\t2\AD Computers Scripts 
CEN-RVS      abc.local/Servers/Corpora... 10.19.95.2     C:\t2\AD Computers Scripts 

私は必要なのは、単一の行です。 Add-Memberから-PassThruパラメータは、「変更されたオブジェクトを出力」を意味

Name       CanonicalName     IPAddress      Subnet 
----       -------------     ---------      ------ 
CEN-RVS      abc.local/Servers/Corpora... 10.19.95.2     C:\t2\AD Computers Scripts 
+0

残りのスクリプトはどこにありますか?あなたは「サブネット:c:\ t2 \ ADコンピュータスクリプト」と言ってほしいですか? – TessellatingHeckler

+1

'Add-Member'ステートメントから' -PassThru'を削除してください –

+0

マティアスはいつもあなたの助けに感謝します。それがそれを解決しました。 – JRN

答えて

2

:それは次のようになります。

$Report1 | Add-Member -Name Subnet -Value $CSVPath -MemberType NoteProperty -PassThru 
$Report1 

終わりに$Report1文を削除するか、アドインメンバーから-PassThruスイッチを削除する次のいずれか

したがって、これら2つのステートメントは(離れ$Report1にNotePropertyを追加の副作用から)冗長です文

関連する問題