Список членства в группах для пользователей AD - PullRequest
4 голосов
/ 04 ноября 2011

Используя следующий фрагмент Powershell, я получаю имена членов группы для текущего пользователя:

$groups = [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
foreach($i in $groups){
$i.Translate([System.Security.Principal.NTAccount]).value
}

Как я могу изменить это, чтобы я мог указать имя учетной записи пользователя в качестве параметра?

Спасибо,

Уве

Ответы [ 3 ]

10 голосов
/ 04 ноября 2011

Если у вас есть доступ к модулю ActiveDirectory, я бы посоветовал вам использовать Get-ADUser.Если вы не можете использовать этот модуль, вы можете использовать сборку System.DirectoryServices.AccountManagement:

Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$username = read-host -prompt "Enter a username"
$ct = [System.DirectoryServices.AccountManagement.ContextType]::Domain
$user = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($ct, $username)
$groups = $user.GetGroups()
foreach($i in $groups){
  $i.SamAccountName
}
1 голос
/ 04 ноября 2011

Вы можете скачать с сайта квестов это PSSnapin: Quest.ActiveRoles.ADManagement.(Командная консоль ActiveRoles для Active Directory) является бесплатной, и вы можете сделать:

(get-qaduser username).memberof

Чтобы получить список прямого членства в группах для пользователя 'username'

0 голосов
/ 21 октября 2013

get-help ваш лучший друг:

PS> get-help *member*

Name                              Category  Synopsis
----                              --------  --------
Export-ModuleMember               Cmdlet    Specifies the module members that are exported.
Add-Member                        Cmdlet    Adds a user-defined custom member to an instance of a Windows PowerShell object.
Get-Member                        Cmdlet    Gets the properties and methods of objects.
Add-ADGroupMember                 Cmdlet    Adds one or more members to an Active Directory group.
Add-ADPrincipalGroupMembership    Cmdlet    Adds a member to one or more Active Directory groups.
Get-ADGroupMember                 Cmdlet    Gets the members of an Active Directory group.
Get-ADPrincipalGroupMembership    Cmdlet    Gets the Active Directory groups that have a specified user, computer, group, or ser...
Remove-ADGroupMember              Cmdlet    Removes one or more members from an Active Directory group.
Remove-ADPrincipalGroupMembership Cmdlet    Removes a member from one or more Active Directory groups.

так:

 $username = "someusername"
 get-adprincipalgroupmembership $username | select name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...