在哈希文本中键入后缺少'='运算符



我正在尝试创建一个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"

检查该计算属性的语法。 您的大括号失去平衡(末尾应该有另一个 } 来关闭哈希表达式)。

最新更新