2016-08-16 2 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 

Все, что мне нужно, это одна линия. Он должен выглядеть следующим образом:

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

Где находится остальная часть вашего скрипта? Вы хотите, чтобы он сказал: '' Subnet: c: \ t2 \ AD Computer Scripts'?? – TessellatingHeckler

+1

Удалить '-PassThru' из оператора' Add-Member' –

+0

Матиас как всегда благодарит вас за помощь. Это решило. – JRN

ответ

2

Параметр Add-Member-PassThru означает «выход измененного объект».

Таким образом, эти два утверждения (за исключением побочного эффекта добавления NoteProperty к $Report1) излишний:

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

Либо удалите $Report1 заявление в конце или удалить -PassThru переключатель от Add-члена заявление

Смежные вопросы