Windows 获取嵌套广告组的用户成员及其信息

Windows 获取嵌套广告组的用户成员及其信息,windows,powershell,active-directory,Windows,Powershell,Active Directory,我有一个广告组“Office用户”,在不同的部门用户组都是成员。财务部门拥有财务中的所有用户,财务部门是Office用户组的成员,等等 我希望将嵌套组的所有用户导出到csv,并为每个用户提供更多信息 我让所有的用户都像这样离开: Get-ADGroupMember Office-Users | where{$_.ObjectClass -eq "Group"} | %{Write $_.Name;Get-ADGroupMember $_} 但它只返回name、SamAccountName、di

我有一个广告组“Office用户”,在不同的部门用户组都是成员。财务部门拥有财务中的所有用户,财务部门是Office用户组的成员,等等

我希望将嵌套组的所有用户导出到csv,并为每个用户提供更多信息

我让所有的用户都像这样离开:

Get-ADGroupMember Office-Users | where{$_.ObjectClass -eq "Group"} | %{Write $_.Name;Get-ADGroupMember $_}
但它只返回name、SamAccountName、distincidentifiedname等

我错过了描述,lastLogonTimestamp,创建时,为用户启用/禁用,因此我可以检查谁在使用Office

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

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


/金

把第一行改成这行怎么样

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:\temp\Office-users.csv

谢谢:)

I get:get-ADGroupMember:找不到与参数名称“properties”匹配的参数。@kimr-dk我想这是因为右括号应该在-properties*之前,这确实是为用户准备的。更新了上面的内容,您能再次检查吗?是的,这更好,但对于Office用户的每个组成员:“Get ADUser:无法将'System.Object[]转换为参数'Identity'所需的'Microsoft.ActiveDirectory.Management.ADUser'类型。不支持指定的方法。”
$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:\temp\Office-users.csv