现在我的语法问题已修复(请不要查看缺少的下划线,这是网站上的问题)我很难将“ManagedBy”字段填入“显示名称”的经理(团体或用户)。由于某种原因,我的if / else逻辑不稳定,因为它只返回blancs。
$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.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"
感谢您的帮助。
答案 0 :(得分:0)
似乎与this问题相同:
变量扩展在scriptblock过滤器中不起作用。尝试切换到可扩展的字符串过滤器
Get-ADGroup -SearchBase "OU=Groups,OU=BEL,OU=EU,DC=domain,DC=net" -Filter "whenCreated -ge '$When'" -Properties *
答案 1 :(得分:0)
试试这个,您的初始 Get-ADGroup 工作正常(在win2012上),如果/其他需要调整的话。
$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={
$m = Get-ADObject -Identity $_.managedBy -Properties displayName,cn
if($m.ObjectClass -eq "user") {
$m.displayName}
Else{
$m.cn
}
}
}