我正在尝试创建一个PowerShell脚本来列出活动目录中在过去21天内创建的所有组。这工作正常,但有时一个组可以由用户或其他安全组管理。我希望它显示用户/安全组的"显示名称"。
到目前为止我创建的内容:
$When = ((Get-Date).AddDays(-21)).Date
Get-ADGroup -SearchBase "OU=Groups,OU=BEL,OU=EU,DC=domain,DC=net" -Filter {whenCreated -ge $When} -Properties * |
Select whenCreated, cn, displayName,GroupScope, GroupCategory, description, info,@{Label='managedBy';Expression={
if(Get-ADObject $_.managedBy -Filter 'ObjectClass -eq "user"')
{(Get-ADUser $_.Manager -Properties displayName).displayName}
Else{(Get-ADGroup $_.managedBy -Properties cn).cn}
}
| Export-Csv "New groups -21 days.csv" -NoTypeInformation -Delimiter ";" -Encoding utf8; start "New groups -21 days.csv"
它说:在哈希文字中键入后缺少"="运算符,我似乎无法弄清楚需要更改什么。谢谢你的帮助。
变量 $.managedBy 和 $ 中缺少下划线。经理。两者都应$_.managedBy
$_.Manager
,并且缺少右大括号。
$When = ((Get-Date).AddDays(-21))
Get-ADGroup -Filter {whenCreated -ge $When} -Properties * |
Select whenCreated, cn, displayName, GroupScope, GroupCategory, description, info,
@{
Label='managedBy';
Expression={
if(Get-ADObject $_.managedBy -Filter 'ObjectClass -eq "user"') {
(Get-ADUser $_.Manager -Properties displayName).displayName}
Else{
(Get-ADGroup $_.managedBy -Properties cn).cn
}
}
} | Export-Csv "New groups -21 days.csv" -NoTypeInformation -Delimiter ";" -Encoding utf8; start "New groups -21 days.csv"
检查该计算属性的语法。 您的大括号失去平衡(末尾应该有另一个 } 来关闭哈希表达式)。