2013-09-27 30 views
0

我有一个AD组“办公室用户”在绞车不同部门用户组是成员。 Finance-dep拥有财务中的所有用户,而Finance-dep是Office-Users组的成员等等。获取嵌套AD组的用户成员和他们的信息

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

我已经得到了所有用户的出这样的:

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

但它只返回名称,SAM帐户名,distinguishedName来等

我错过了说明,的lastLogonTimestamp,whenCreated,启用/禁用的用户,所以我可以检查谁在使用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:\temp\ADUsers.csv 

/金

回答

0

得到这个工作:

$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 

谢谢:)

0

如何改变这种行头吗?

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

现在,你必须在这些组的用户的所有属性,可以有选择地显示你关心哪个属性。

+0

我得到:GET-ADGroupMember:参数无法找到匹配的参数名称 '属性'。 –

+0

@ kimr-dk我认为这是因为右括号应该在-properties *之前,这对用户来说是真的。更新了上面的内容,你能再次检查吗? –

+0

是的,那样更好,但是对于Office用户的每个组成员:“Get-ADUser:无法将'System.Object []'转换为参数'Identity'所需的类型'Microsoft.ActiveDirectory.Management.ADUser' 。不支持指定的方法 “ –