2016-09-26 2 views
0

Ich muss filtern und nicht Werte, die X500 in der Abfrage von AD enthalten, ziehen. Dies wird alles schön exportieren, aber ich brauche nichts als die SMTP-Einträge. Ich werde Einträge haben, die so aussehen, die ichExportieren Sie Daten in CSV, aber filtern Sie zuerst

SMTP müssen: [email protected]

Ich habe Einträge wie unten, dass ich nicht will.

X500:/o = domain/ou = Exchange-Verwaltungs Group (FYDPDLT)/cn = Empfänger/cn = Mail-

$Users = Get-ADUser -Filter "mail -like '*@*'" -Properties proxyAddresses | 
select name, @{ L = 'ProxyAddress_1'; E = { $_.proxyaddresses[0] } }, 
    @{ L = 'ProxyAddress_2'; E = { $_.ProxyAddresses[1] } }, 
    @{ L = 'ProxyAddress_3'; E = { $_.ProxyAddresses[2] } } | Export-Csv c:\temp\proxyadlist.csv -Notypeinformation -force 
+0

Müssen die Proxy-Adressen jeweils in ihrer eigenen Spalte erscheinen? Es wäre einfacher, wenn das nicht wichtig wäre. Sie haben eine variable colomn-Ausgabe, die einfacher gehandhabt wird, wenn Sie vor der Ausgabe die ersten benötigten Spalten berechnen. – Matt

+0

Nicht genug Informationen, aber Sie sollten 'where' verwenden, um diejenigen loszuwerden, die Sie nicht möchten. Ich weiß nicht genug, um dir zu helfen, einen guten Zustand zu schreiben. – nkasco

+0

@nkasco Das _could_ funktioniert, würde aber Spaltenlücken in der Ausgabedatei geben. – Matt

Antwort

0

Eine weitere Verfeinerung könnte wahrscheinlich gemacht werden, aber ich habe es ausgepeitscht und es sollte den Trick machen. Ich wollte sicher sein, dass die CSV keine Spalten mehr benötigt. Wollte die Grundlagen dessen zeigen, was ich denke, dass Sie brauchen.

+0

Vielen Dank Matt. Ich werde es versuchen, wenn ich morgen ins Büro komme! – NobleMan

+0

Wie immer, Matt, hast du mir das gegeben, wonach ich gesucht habe! – NobleMan

0

Haben Sie meinen Sie das wollen?

$ldapFilter = "(&(proxyAddresses=smtp:*)(proxyAddresses=x500:*))" 
Get-ADUser -LDAPFilter $ldapFilter -Properties proxyAddresses | ForEach-Object { 
    $_.proxyAddresses | Where-Object { $_ -match '^smtp:' } 
} 

Dieser erhält alle Benutzerobjekte, die sowohl smtp und x500 in proxyAddresses Attribut haben, gibt dann nur die smtp Adressen.

+0

Ich denke, er will diese herausfiltern. _Ich habe Einträge wie die unten, die ich nicht will._ – Matt

+0

Ich habe dies versucht, aber es hat nicht funktioniert – NobleMan

+0

$ Benutzer = Get-ADUser -LDAPFilter "(ProxyAddresses = SMTP: *)" -Eigenschaften ProxyAddresses | – NobleMan

Verwandte Themen