我在绞盘中有一个AD组“Office-Users”,不同部门的用户组是其成员。 Finance-dep持有财务中的所有用户,Finance-dep是Office-Users组的成员,依此类推。
我希望将嵌套组的所有用户导出到csv,并为每个用户提供更多信息。
我的所有用户都是这样的:
Get-ADGroupMember Office-Users | where{$_.ObjectClass -eq "Group"} | %{Write $_.Name;Get-ADGroupMember $_}
但它只返回name,SamAccountName,distinguishedName等。
我想念用户的说明,lastLogonTimestamp,whenCreated,Enabled / Disabled,所以我可以查看谁正在使用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 :(得分:0)
如何将第一行更改为此?
Get-ADGroupMember Office-Users | where{$_.ObjectClass -eq "Group"} | %{Write $_.Name;Get-ADUser (Get-ADGroupMember $_) -properties *}
现在,您拥有这些组中用户的所有属性,并且可以有选择地显示您关注的任何属性。
答案 1 :(得分: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
谢谢:)