gpt4 book ai didi

powershell - Powershell-需要将ProxyAdresses中所有AD组中所有用户的smtp地址拉到单个列中

转载 作者:行者123 更新时间:2023-12-03 01:25:26 25 4
gpt4 key购买 nike

我有一个AD组,我需要从其中将每个用户的ProxyAddresses中的所有smtp地址拉到单个列中。我下面的脚本仅从ProxyAddresses中提取第一个地址。一些用户将有两个或多个地址。我可以在脚本中添加什么,以从ProxyAddresses中提取所有smtp地址。我是Powershell的新手,他们一直在努力使其正常工作。我花了大部分时间在谷歌上搜索,只是无法到达那里。任何帮助将不胜感激。谢谢!

    <pre><Get-ADGroupMember -Identity "EDL_ProEquities Smarsh" -Recursive |
Get-ADUser -Properties Proxyaddresses |
Select-Object @{ L = "ProxyAddresses"; E = {($_.ProxyAddresses | Where-Object
{$_ -like "*smtp:*"} | ForEach-Object {$_ -replace 'smtp:'}) -join
"`r`n'`;"}} |
Export-CSV -Path "c:\temp\EDL.csv" -NoTypeInformation</pre>

最佳答案

你快到了。 ;-)我认为您至少有两种选择来完成此任务。您可以将所有所需的smtp地址加入到csv文件的一个单元格中,如下所示:

Get-ADGroupMember -Identity 'EDL_ProEquities Smarsh' -Recursive |
Get-ADUser -Properties ProxyAddresses |
ForEach-Object {
[PSCustomObject]@{
sAMAccountName = $_.sAMAccountName
ProxyAddresses = ($_.ProxyAddresses | Where-Object { $_ -match '^smtp:' } | ForEach-Object { $_ -replace 'smtp:' }) -join ','
}
} |
Export-CSV -Path 'c:\temp\EDL.csv' -NoTypeInformation
...或者您在这样的一行上输出每个单独的smtp地址:
Get-ADGroupMember -Identity 'EDL_ProEquities Smarsh' -Recursive |
Get-ADUser -Properties ProxyAddresses |
ForEach-Object {
$User = $_
$SMTPAddressList = $_.ProxyAddresses | Where-Object { $_ -match '^smtp:' } | ForEach-Object { $_ -replace 'smtp:' }
foreach ($SMTPAddress in $SMTPAddressList) {
[PSCustomObject]@{
sAMAccountName = $User.sAMAccountName
SMTPAddress = $SMTPAddress
}
}
} |
Export-CSV -Path 'c:\temp\EDL.csv' -NoTypeInformation

关于powershell - Powershell-需要将ProxyAdresses中所有AD组中所有用户的smtp地址拉到单个列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63652383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com