使用PowerShell创建一个过期AD用户的csv

时间:2014-12-12 02:17:42

标签: powershell active-directory

我在下面创建了powershell脚本。它工作正常,但我想让它返回用户的经理。看来该对象已返回,但search-adaccount不会执行此操作。有人能帮忙吗?感谢

$UserList = Search-ADAccount -AccountExpiring -UsersOnly -TimeSpan 07.00:00:00 | Select-Object name,                   AccountExpirationDate, LastLogonDate, UserPrincipalName 
$ReportName = "C:\Users\administrator\desktop\ExpiringUsers-7DayReport.csv" 
$UserList | Export-CSV $ReportName

1 个答案:

答案 0 :(得分:0)

Search-ADAccount可能不会直接为您提供所需要的内容,但是Get-AdUser中的简单管道将为您提供其他内容。

$UserList = Search-ADAccount -AccountExpiring -UsersOnly -TimeSpan 07.00:00:00 | 
     Get-ADUser -Properties Manager,AccountExpirationDate,LastLogonDate | 
     Select-Object Name,Manager,AccountExpirationDate,LastLogonDate,UserPrincipalName
$ReportName = "C:\Users\administrator\desktop\ExpiringUsers-7DayReport.csv" 
$UserList | Export-CSV $ReportName

您要查找的多个属性在Get-AdUser的属性中不是标准属性,因此我们需要确保使用-Properties进行收集。

从评论中更新

如果你想要经理的名字而不是dn,你需要提取它与我们对Search-ADAccount的结果一样。一种方法是更改​​Select行,如下所示:

Select-Object Name,AccountExpirationDate,LastLogonDate,UserPrincipalName,@{Name="Manager Name";Expression={$_.Manager | Get-Aduser | Select-Object -ExpandProperty Name}}

创建名为Manager Name的计算属性(不能使用manager,因为已存在具有该名称的属性。)。拿出管理器并将其传递到Get-Aduser并只提取name属性。