获取嵌套 AD 组的用户成员及其信息



>我有一个AD组"办公室用户"在不同的部门用户组是成员。财务 dep 保存财务中的所有用户,财务部门是办公室用户组的成员,依此类推。

我喜欢将嵌套组的所有用户导出为 csv,每个用户都有更多信息。

我让所有用户都像这样出来:

Get-ADGroupMember Office-Users | where{$_.ObjectClass -eq "Group"} | %{Write $_.Name;Get-ADGroupMember $_}

但它只返回名称,SamAccountName,distinguished Name等。

我想念用户的描述,最后登录时间戳,创建时间,启用/禁用,因此我可以检查谁在使用Office。

有没有简单的方法可以做到这一点?

我已经使用它来导出所有用户及其状态/信息,但它不是基于 Office 组。我试图修改它,但我失败了:)

$alist = "Name`tAccountName`tDescription`tLastLogonTimestamp`tCompany`twhenCreated`tAcctEnabled`tGroups`n"
$userlist = Get-ADUser -Filter * -Properties * | Select-Object -Property Name,SamAccountName,Description,lastLogonTimestamp,Company,whenCreated,Enabled,MemberOf | Sort-Object -Property Name
$userlist | ForEach-Object {
$grps = $_.MemberOf | Get-ADGroup | ForEach-Object {$_.Name} | Sort-Object
$arec = $_.Name,$_.SamAccountName,$_.Description,[datetime]::FromFileTime($_.lastLogonTimestamp).ToString('d MMMM yyyy'),$_.Company,$_.whenCreated,$_.Enabled
$aline = ($arec -join "`t") + "`t" + ($grps -join "`t") + "`n"
$alist += $aline
}
$alist | Out-File C:tempADUsers.csv

/金

将第一行更改为此行怎么样?

Get-ADGroupMember Office-Users | where{$_.ObjectClass -eq "Group"} | %{Write $_.Name;Get-ADUser (Get-ADGroupMember $_) -properties *}

现在,您拥有这些组中用户的所有属性,并且可以有选择地显示您关心的任何属性。

让它工作:

$alist = "Name`tAccountName`tDescription`tLastLogonTimestamp`tCompany`twhenCreated`tAcctEnabled`n"
$userlist = Get-ADGroupMember Office-Users -Recursive | Get-ADUser -properties * | Select-Object -Property Name,SamAccountName,Description,lastLogonTimestamp,Company,whenCreated,Enabled | Sort-Object -Property Name
$userlist | ForEach-Object {
$arec = $_.Name,$_.SamAccountName,$_.Description,[datetime]::FromFileTime($_.lastLogonTimestamp).ToString('HH:mm d MMMM yyyy'),$_.Company,$_.whenCreated,$_.Enabled
$aline = ($arec -join "`t") + "`t" + "`n"
$alist += $aline
}
$alist | Out-File C:tempOffice-users.csv

谢谢:)

最新更新