2016-10-25 1 views
2

Ich habe eine Eingabedatei (input.txt) mit den folgenden Daten. Die folgenden Daten werden in meiner Domain als Kontakte gespeichert. Meine Aufgabe ist es, die entsprechende Mail-ID in meiner Domain für diese Kontakte zu identifizieren.Wie füge ich den Wert in der Eingabedatei als Spalte in die exportierte Ausgabedatei in Powershell ein?

[email protected] 
[email protected] 
[email protected] 

Unten ist der Powershell-Skript ich die Aufgabe zu erfüllen, schrieb. Die Zieladresse dieser Kontakte ist meine Domain-E-Mail-ID. Aber das Problem hier ist, beim Exportieren müssen die Eingabedaten auch an mein Ergebnis angehängt werden.

Write-Host "Reading Input File.. " 
$users="" 
ForEach ($contact in $(Get-Content 'Input.txt')) 
{ 
    $DomainId = Get-ADObject -Filter {(mail -eq $contact) -and (ObjectClass -eq "Contact")} -Properties * | Select targetAddress 
    $DomainId = $DomainId.targetAddress.remove(0,5) 
    $users+= (Get-AdUser -Filter {Mail -eq $DomainId} -Properties * | Select Mail)  
} 
Write-Host "Exporting to CSV.." 
$users | Export-CSV -Path 'output.csv' -NoTypeInformation 

Im Folgenden finden Sie die aktuelle Ausgabe (output.csv)

Mail; 
[email protected]; 
[email protected]; 
[email protected]; 

Aber die erwartete Ausgabe ist,

Mail;InputId; 
[email protected];[email protected]; 
[email protected];[email protected]; 
[email protected];[email protected]; 

Gibt es eine Möglichkeit, die erwartete Ausgabe zu erhalten. Wenn ja, bitte helfen. Vielen Dank im Voraus für Ihre Unterstützung.

Antwort

0

Ungeprüfte, aber so etwas wie dies funktionieren könnte:

Write-Host "Reading Input File.. " 
$users = foreach ($contact in (Get-Content 'Input.txt')) 
{ 
    $DomainId = Get-ADObject -Filter { 
         (mail -eq $contact) -and (ObjectClass -eq "Contact") 
        } -Properties * | Select-Object -ExpandProperty targetAddress 

    $DomainId = $DomainId.Remove(0,5) 
    $Mail = (Get-AdUser -Filter {Mail -eq $DomainId} -Properties Mail).Mail 

    [PSCustomObject]@{ 
     InputId = $DomainId 
     Mail = $Mail 
    } 
} 

Write-Host "Exporting to CSV.." 
$users | Export-CSV -Path 'output.csv' -NoTypeInformation 

Sie wollen PSCustomObjects geht in Export-CSV, mit einer Eigenschaft pro Spalte. Und sie sind einfach zu erstellen, indem Sie von einer Hashtabelle aus handeln, anstatt viele Add-Member zu verwenden.

Verwandte Themen