我们使用这个PowerShell脚本来从AD中取出用户。我们最近从2008R2迁移到Windows Server 2012R2并注意到该脚本不再有效。经过几次调整后,除了这个循环之外,我已经成功地完成了所有工作:
Clone
这将在稍后通过电子邮件发送,因此我们有$mail += $nameofgroup | ForEach-Object {$mail += $_.Name+"<br>"}
变量。
这是一个代码示例:
从AD获取信息:
$mail
对数据进行排序:
$alla = Get-ADUser -filter 'name -like "*"' `
-Properties extensionattribute2, extensionattribute14, extensionattribute15 | `
Select-Object Name, Extensionattribute2, `
Extensionattribute14, Extensionattribute15
发布用户总数:
$nameofgroup = $alla | where { `
$.Extensionattribute14 -like "nameofgroup" -and `
$.Extensionattribute15 -like "FULL"} | `
Select-Object Name | Sort-Object Name
然后是我之前的行,我想让它按“名称”列出用户
$mail += "nameofgroup: " + ($nameofgroup).count + "<br>"
有人能在最后一行发现错误吗?
更新
我只是尝试$mail += $nameofgroup | ForEach-Object {$mail += $_.Name+"<br>"}
来查看是否包含数据,所以问题或多或少都是为什么它不会将其打印到Write-Host $nameofgroup
。
答案 0 :(得分:3)
您在循环内外追加$mail
。决定其中一个:
$mail += $nameofgroup | ForEach-Object { $_.Name+"<br>" }
或
$nameofgroup | ForEach-Object { $mail += $_.Name+"<br>" }