Я пытаюсь получить членов группы безопасности AD и перечислить их имя учетной записи, имя, фамилию и дату последнего входа.Получение вложенных элементов группы безопасности AD
Это сценарий, я в настоящее время
# Function get-NestedMembers
# List the members of a group including all nested members of subgroups
function get-NestedMembers ($group){
if ($group.objectclass[1] -eq 'group') {
write-verbose "Group $($group.cn)"
$Group.member |% {
$de = new-object directoryservices.directoryentry("LDAP://$_")
if ($de.objectclass[1] -eq 'group') {
get-NestedMembers $de
}
Else {
$de.sAMAccountName
}
}
}
Else {
Throw "$group is not a group"
}
}
# get-NestedMembers usage examples :
# get a group
$group = new-object directoryservices.directoryentry("LDAP://CN="group name",OU=folder,OU=Citrix,OU=Applications,DC=xx,DC=xx,DC=xx,DC=com")
# Get all nested members
get-NestedMembers $group
Как изменить его, чтобы получить также фамилия, имя и дата последнего входа в систему? В настоящее время он отображает только имя учетной записи (sAMAccountName).
Большое спасибо за любую помощь.
Редактировать
Этот скрипт работает для меня. Просто отредактируйте строку 26 с адресом LDAP группы, которую вы хотите отсканировать.
# Function get-NestedMembers
# List the members of a group including all nested members of subgroups
Import-Module ActiveDirectory
function get-NestedMembers ($group){
if ($group.objectclass[1] -eq 'group') {
write-verbose "Group $($group.cn)"
$Group.member |% {
$de = new-object directoryservices.directoryentry("LDAP://$_")
if ($de.objectclass[1] -eq 'group') {
get-NestedMembers $de
}
Else {
$de
}
}
}
Else {
Throw "$group is not a group"
}
}
# get a group
$group = new-object directoryservices.directoryentry("LDAP://CN=GroupName,OU=Groups,OU=File Servers,OU=Applications,DC=contoso,DC=com")
# Get all nested members
get-NestedMembers $group|FT @{l="First Name";e={$_.givenName}},@{l="Last Name";e={$_.sn}},@{l="Last Logon";e={[datetime]::FromFileTime($_.ConvertLargeIntegerToInt64($_.lastLogonTimestamp[0]))}},sAMAccountName
Выход выглядит следующим образом:
First Name Last Name Last Logon sAMAccountName
---------- --------- ---------- --------------
Name Surname 10.11.2014 14:58:02 {accname}
Name Surname 17.11.2014 19:11:15 {accname}
Name Surname 07.11.2014 15:38:57 {accname}
Name Surname 14.11.2014 03:50:03 {accname}
Name Surname 16.11.2014 21:30:15 {accname}
Замечательно, это делает именно то, что я хотел! Большое спасибо, вы спасли мне часы ручной работы :) –