Содержание
- Windows admin blog
- Полезные команды cmd, powershell, администрирование, фичи и решения проблем на win/winserver
- AD: узнать в каких группах состоит пользователь / прямое и косвенное членство
- 1) Whoami /groups
- 2) Утилита dsget
- 3) Get-ADUser
- Как открыть локальных пользователей и группы в Windows 10
- Откройте локальные пользователи и группы в Windows 10
- 1]Использование утилиты управления компьютером
- 2]Непосредственно с помощью lusrmgr.msc
- Использование поля «Выполнить»
- Использование окна поиска Windows
- Использование командной строки Windows 10
- Использование командной строки Windows PowerShell
- Добавить или удалить пользователей из группы
- Добавить пользователя в группу с помощью командной строки
- Удаление пользователя из группы с помощью командной строки
- Добавить пользователя в группу с помощью PowerShell
- Удаление пользователя из группы с помощью PowerShell
- Работа с учётными записями Windows в оснастке «Локальные группы и пользователи»
- Добавление локальных пользователей
- Управление пользователями
- Группы пользователей Windows
- Как узнать, к каким группам относится ваша учетная запись пользователя Windows
- Используйте инструмент «Местные пользователи и группы» для быстрого просмотра
- Используйте PowerShell (или командную строку) для более подробного просмотра
Windows admin blog
Полезные команды cmd, powershell, администрирование, фичи и решения проблем на win/winserver
AD: узнать в каких группах состоит пользователь / прямое и косвенное членство
В этой статье речь пойдет о том, как вывести список групп, в которых состоит пользователь. Конечно, это можно сделать из GUI, но не всегда такой вывод удовлетворяет цели.
Также, через GUI вы не определите ПОЛНЫЙ список членства (т.н. косвенное членство), когда одни группы могут быть вложены в другие.
Если группа, в которой состоит пользователь, является вложенной группой другой группы — пользователь наделяется полномочиями, заданными конечной группе, хотя и не является ее членом напрямую. Эту группу вы не увидите на вкладке пользователя «Член групп» (Member of)
Рассмотрим в рамках этой статьи следующие инструменты:
1) Whoami /groups
Правда вывод не очень удобен для восприятия. Будут отображены все группы с прямым и косвенным членством
2) Утилита dsget
Вывести список групп, в которых состоит пользователь:
(в данном примере выводим список групп, в которых состоит пользователь Peter Parker, находящийся в OU «IT departmentSupport team»)
Следующая команда отобразит расширенный список групп, в т.ч. в которых косвенно состоит пользователь (ключ -expand)
Утилита dsget доступна только на контроллерах домена
3) Get-ADUser
Для выполнения командлета Get-ADUser требуется установить Powershell модуль Active-Directory.
Чтобы вывести список групп требуемого пользователя в удобном формате, необходимо выполнить следующий конвейер команд в powershell:
Примечание: данная команда выведет прямое членство (по сути, содержимое закладки пользователя «Член групп» (Member of)
Источник
Как открыть локальных пользователей и группы в Windows 10
Помимо того, что вы видите на экране входа в систему, Windows 10 имеет тенденцию создавать несколько пользователей и групп в фоновом режиме для выполнения нескольких задач на компьютере. Однако они не видны обычному пользователю, входят в систему в фоновом режиме и играют важную роль в структурировании разрешений. Давайте узнаем, как просматривать и управлять локальными пользователями и группами в Windows 10/8/7 на компьютере.
Откройте локальные пользователи и группы в Windows 10
Следующие методы помогут вам открывать и просматривать локальные пользователи и группы в Windows 10:
Разберем процедуру подробно. Мы также рассмотрим, как добавлять или удалять пользователей из группы.
1]Использование утилиты управления компьютером
Откройте меню WinX и выберите «Управление компьютером».
На левой панели навигации выберите Локальные пользователи и группы под расширенным списком Управление компьютером (локальное).
Здесь вы увидите две папки:
Раскрытие каждого из них даст вам необходимые сведения.
2]Непосредственно с помощью lusrmgr.msc
Чтобы открыть окно «Локальные пользователи и группы», вы должны вызвать его процесс, который называется lusrmgr.msc, и вы можете сделать это следующими четырьмя способами.
Использование поля «Выполнить»
Ударь Клавиша Windows + R комбинация кнопок на клавиатуре.
Печатать lusrmgr.msc и ударил Войти.
Откроется окно «Локальные пользователи и группы».
Использование окна поиска Windows
Ударь Клавиша Windows + S комбинация кнопок на клавиатуре. Откроется окно поиска Windows.
Ищи lusrmgr.msc и ударил Войти.
Откроется окно «Локальные пользователи и группа».
Использование командной строки Windows 10
Откройте командную строку Windows и выполните следующую команду:
Вы попадете в окно пункта назначения.
Использование командной строки Windows PowerShell
Откройте Windows PowerShell и выполните следующую команду:
Он откроется в окне назначения.
Добавить или удалить пользователей из группы
Чтобы добавить или удалить пользователей из группы:
Чтобы добавить пользователя, нажмите кнопку «Добавить» и следуйте инструкциям.
Добавить пользователя в группу с помощью командной строки
Вам необходимо выполнить следующую команду:
Замените ГРУППУ и ПОЛЬЗОВАТЕЛЬ настоящими именами.
Удаление пользователя из группы с помощью командной строки
Вам необходимо выполнить следующую команду:
Замените GROUP и USER настоящими именами.
Добавить пользователя в группу с помощью PowerShell
Вам необходимо выполнить следующую команду:
Замените GROUP и USER настоящими именами.
Удаление пользователя из группы с помощью PowerShell
Вам необходимо выполнить следующую команду:
Замените ГРУППУ и ПОЛЬЗОВАТЕЛЬ настоящими именами.
Надеюсь, это поможет.
Пользователь Windows 10 Home? Эти ссылки могут вас заинтересовать:
Источник
Работа с учётными записями Windows в оснастке «Локальные группы и пользователи»
Оснастка lusrmgr.msc доступна в числе прочих инструментов администрирования в системной консоли «Управление компьютером». Можем запустить её с помощью внутрисистемного поиска.
Здесь в древе слева раскрываем «Локальные пользователи и группы». В оснастке будет два раздела, один из них – это «Группы», где можно оперировать группами, т.е. категориями пользователей с набором определённых прав в операционной системе. Группы можно переименовывать, удалять, применять к пользователям Windows.
Другой раздел – «Пользователи», здесь, соответственно, можно управлять пользователями. Детально о возможностях этого раздела мы и будем говорить далее.
Добавление локальных пользователей
Оснастка lusrmgr.msc примечательна простотой и быстротой создания новых локальных пользователей. Так, в Win8.1 и Win10 новые пользователи создаются только в современных системных параметрах, где этот процесс сопровождается волокитой с отказом от способа входа нового пользователя в систему с подключением к аккаунту Microsoft, если мы хотим создать для него локальную «учётку». Новый пользователь сам может решить, хочет ли он подключать аккаунт Microsoft или нет, и если хочет, то он сам может это сделать в системных настройках, даже если у него будут только права стандартного пользователя. В оснастке же lusrmgr.msc всё делается на раз-два: на пустом месте в разделе «Пользователи» жмём контекстное меню, выбираем «Новый пользователь».
Вписываем имя пользователя. Далее можем установить для него пароль, а можем ничего не устанавливать, активная по умолчанию опция требования смены пароля при первом заходе этого пользователя даст ему возможность самому установить себе пароль. Мы также можем убрать галочку этой опции, тогда новая «учётка» будет незапаролена, и пользователь в любой момент позднее, если посчитает нужным, установит себе пароль в системных настройках.
Вот, собственно, и все телодвижения, если нам надо создать локального пользователя со стандартными правами. Если же учётную запись пользователю надо создать с правами администратора, тогда делаем на этом пользователе двойной клик. Откроется окошко свойств пользователя, в нём переходим на вкладку членства в группах. Удаляем группу «Пользователи».
Жмём «Добавить». В появившемся окошке выбора групп нажимаем «Дополнительно».
Далее – «Поиск». И кликаем «Администраторы».
Жмём «Ок».
Всё: у пользователя есть администраторские права. Теперь просто нажимаем «Применить».
Управление пользователями
Какие возможности по управлению учётными записями локальных пользователей нам доступны в lusrmgr.msc? Как и в других системных настройках Windows, сами обладая правами администратора, можем пользователей удалять, переименовывать, менять им пароль, менять тип «учётки» со стандартного пользователя на администратора и наоборот. Для использования этих возможностей жмём контекстное меню на нужном пользователе и выбираем что нам надо.
Источник
Группы пользователей Windows
Windows предусматривает возможность работы за одним ПК сразу несколько человек, причем каждый из пользователей может иметь разные права доступа. Кто-то имеет возможность менять настройки сети, пользоваться удаленным доступом, другой будет лишен таких привилегий. Все зависит от того, в какую группу входят эти люди.
Чтобы регулировать возможности разной категории пользователей, необходимы специальные группы Windows. Они нужны для настройки прав доступа к конкретным возможностям системы.
Изменение прав доступа
Чтобы изменять права доступа пользователей, в Windows предусмотрено 2 инструмента. Это консоль Управление компьютером и Редактор локальной групповой политики. С их помощью вы можете добавлять пользователей в ту или иную группу, а также исключать их оттуда.
Для добавления пользователя через Управление компьютером необходимо выполнить определенную последовательность операций. Сначала кликните правой кнопкой мыши по значку Мой компьютер. Затем выберите Управление/Локальные пользователи и группы/Группы. Далее выберите необходимую группу и откройте ее. После этого откроется окно, в котором вам следует выбрать «Добавить». В следующем окне, которое появится, задайте имя пользователя для включения в эту группу. При необходимости вы можете воспользоваться функцией «Проверить имена». Выбрав одного или нескольких пользователей, нажмите ОК.
Если вы хотите удалить пользователя из группы, делать нужно практически то же самое. Только вместо пункта «Добавить» вам надо будет нажать на «Удалить».
Для изменения прав доступа через Редактор локальной групповой политики вам нужно сначала открыть его через меню «Выполнить». Нужный вам файл называется gpedit.msc. Далее выбирайте Конфигурация компьютера/Конфигурация Windows/Параметры безопасности/Локальные политики/Назначение прав пользователей. Выберите подходящую вам политику с правами доступа, нажмите «Добавить» и «Задать имя пользователя». Сам процесс добавления и удаления пользователя происходит по аналогии с такими же действиями через Управление компьютером.
Между двумя способами настроек прав доступа существует заметная разница. Консоль дает обширные права и запреты. Здесь даются общие положения, а мельчайшие тонкости и детали не учитываются. Локальные политики работают по иному принципу. Пользователь может настроить права доступа с учетом каждой мелочи. Например, это может быть даже возможность изменения времени и часового пояса. Получается, что пользователь может выбрать любой из двух подходов, которые являются совершенно разными. Это дает определенную вариативность в настройках.
Приведем список основных групп пользователей Windows. Сюда могут быть включены и другие группы, но мы ограничимся приведенным ниже перечнем.
Это основные группы, которые могут встречаться практически на всех ПК с операционной системой Windows. Однако этих групп может быть гораздо больше. Часто можно встретить деление на группы Администраторы, Пользователи, Гости.
Учетная запись пользователя может входить в несколько групп. Создавать собственные группы, а также добавлять и удалять пользователей можно с помощью учетной записи администратора.
Источник
Как узнать, к каким группам относится ваша учетная запись пользователя Windows
Группа безопасности — это просто набор учетных записей пользователей. Права и разрешения назначаются группе, а затем эти права и разрешения предоставляются любой учетной записи, которая является членом группы. Членство в группах может определять доступ пользователя к файлам, папкам и даже системным настройкам. Вот как вы можете узнать, к каким группам принадлежит учетная запись пользователя Windows.
Используйте инструмент «Местные пользователи и группы» для быстрого просмотра
Если вы просто хотите быстро взглянуть на локальные группы, к которым принадлежит учетная запись пользователя, инструмент Local Users and Groups отлично справится с этой задачей. Обратите внимание, что для запуска этого инструмента вам необходимо войти в Windows с учетной записью, имеющей права администратора.
Нажмите Windows + R, введите «lusrmgr.msc» в поле «Выполнить» и нажмите Enter.
В окне «Локальные пользователи и группы» выберите папку «Пользователи», а затем дважды щелкните учетную запись пользователя, которую вы хотите просмотреть.
В окне свойств учетной записи пользователя перейдите на вкладку «Член». Эта вкладка показывает локальные группы, к которым принадлежит учетная запись пользователя, а также позволяет добавить учетную запись в другие группы.
Используйте PowerShell (или командную строку) для более подробного просмотра
Нажмите «Windows + X» и выберите «Windows PowerShell».
В командной строке введите следующую команду и нажмите Enter:
К сожалению, в отличие от использования инструмента «Локальные пользователи и группы», который мы рассмотрели в предыдущем разделе, команда whoami не позволяет вам проверять группы на наличие какой-либо учетной записи, кроме той, с которой вы в данный момент вошли.
Источник
В этой статье речь пойдет о том, как вывести список групп, в которых состоит пользователь. Конечно, это можно сделать из GUI, но не всегда такой вывод удовлетворяет цели.
Также, через GUI вы не определите ПОЛНЫЙ список членства (т.н. косвенное членство), когда одни группы могут быть вложены в другие.
Если группа, в которой состоит пользователь, является вложенной группой другой группы — пользователь наделяется полномочиями, заданными конечной группе, хотя и не является ее членом напрямую. Эту группу вы не увидите на вкладке пользователя «Член групп» (Member of)
Рассмотрим в рамках этой статьи следующие инструменты:
- whoami /groups — членство в группах текущего пользователя
- dsget user — покажет прямое и косвенное членство
- Get-ADUser (Powershell)
1) Whoami /groups
Если нам необходимо узнать, в каких группах состоит текущий пользователь, под которым мы залогинены, можно воспользоваться командой:
whoami /groups
Правда вывод не очень удобен для восприятия. Будут отображены все группы с прямым и косвенным членством
2) Утилита dsget
Вывести список групп, в которых состоит пользователь:
(в данном примере выводим список групп, в которых состоит пользователь Peter Parker, находящийся в OU «IT departmentSupport team»)
dsget user "CN=Peter Parker,OU=Support team,OU=IT department,DC=Contoso,DC=com" -memberof
Следующая команда отобразит расширенный список групп, в т.ч. в которых косвенно состоит пользователь (ключ -expand)
dsget user "CN=Peter Parker,OU=Support team,OU=IT department,DC=Contoso,DC=com" -expand
Утилита dsget доступна только на контроллерах домена
3) Get-ADUser
Для выполнения командлета Get-ADUser требуется установить Powershell модуль Active-Directory.
Чтобы вывести список групп требуемого пользователя в удобном формате, необходимо выполнить следующий конвейер команд в powershell:
Get-ADUser username -properties memberof | select memberof -expandproperty memberof
Примечание: данная команда выведет прямое членство (по сути, содержимое закладки пользователя «Член групп» (Member of)
СВЯЗАННЫЕ: учетные записи пользователей, группы, разрешения и их роль в общем доступе
Группа безопасности — это просто набор учетных записей пользователей. Права и разрешения назначаются группе, а затем эти права и разрешения предоставляются любой учетной записи, которая является членом группы. Членство в группах может определять доступ пользователя к файлам, папкам и даже системным настройкам. Вот как вы можете узнать, к каким группам принадлежит учетная запись пользователя Windows.
Используйте инструмент «Местные пользователи и группы» для быстрого просмотра
Если вы просто хотите быстро взглянуть на локальные группы, к которым принадлежит учетная запись пользователя, инструмент Local Users and Groups отлично справится с этой задачей. Обратите внимание, что для запуска этого инструмента вам необходимо войти в Windows с учетной записью, имеющей права администратора.
Нажмите Windows + R, введите «lusrmgr.msc» в поле «Выполнить» и нажмите Enter.
В окне «Локальные пользователи и группы» выберите папку «Пользователи», а затем дважды щелкните учетную запись пользователя, которую вы хотите просмотреть.
В окне свойств учетной записи пользователя перейдите на вкладку «Член». Эта вкладка показывает локальные группы, к которым принадлежит учетная запись пользователя, а также позволяет добавить учетную запись в другие группы.
Используйте PowerShell (или командную строку) для более подробного просмотра
Если вы хотите более детально рассмотреть членство в группе учетной записи, которая также включает скрытые системные группы, к которым принадлежит учетная запись, вам необходимо запустить PowerShell (или командную строку; обсуждаемая здесь команда работает аналогично) ,
Нажмите «Windows + X» и выберите «Windows PowerShell».
В командной строке введите следующую команду и нажмите Enter:
whoami / группы
К сожалению, в отличие от использования инструмента «Локальные пользователи и группы», который мы рассмотрели в предыдущем разделе, команда whoami не позволяет вам проверять группы на наличие какой-либо учетной записи, кроме той, с которой вы в данный момент вошли.
Asked
11 years, 11 months ago
Viewed
1.4m times
PowerShell’s Get-ADGroupMember
cmdlet returns members of a specific group. Is there a cmdlet or property to get all the groups that a particular user is a member of?
I fixed my mistake: Get-Member
should be Get-ADGroupMember
.
asked Feb 22, 2011 at 0:57
2
Get-ADPrincipalGroupMembership will do this.
Get-ADPrincipalGroupMembership username | select name
name
----
Domain Users
Domain Computers
Workstation Admins
Company Users
Company Developers
AutomatedProcessingTeam
answered Mar 22, 2013 at 12:14
kstrausskstrauss
3,5821 gold badge12 silver badges2 bronze badges
15
Single line, no modules necessary, uses current logged user:
(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf
Kudos to this vbs/powershell article: http://technet.microsoft.com/en-us/library/ff730963.aspx
Jamie Ide
47.8k16 gold badges80 silver badges116 bronze badges
answered May 13, 2014 at 9:38
CanoasCanoas
1,8911 gold badge13 silver badges12 bronze badges
4
Old school way from CMD:
net user mst999 /domain
Linus Kleen
33.5k11 gold badges90 silver badges99 bronze badges
answered Jan 30, 2015 at 13:40
user4511672user4511672
4414 silver badges2 bronze badges
2
(GET-ADUSER –Identity USERNAME –Properties MemberOf | Select-Object MemberOf).MemberOf
mattytommo
55.3k15 gold badges126 silver badges147 bronze badges
answered Mar 26, 2012 at 20:24
4
This should provide you the details for current user. Powershell not needed.
whoami /groups
answered May 19, 2020 at 16:34
NayanNayan
3,02424 silver badges34 bronze badges
1
If you cannot get Get-ADPrincipalGroupMembership to work for you could try logging in as that user then use.
$id = [Security.Principal.WindowsIdentity]::GetCurrent()
$groups = $id.Groups | foreach-object {$_.Translate([Security.Principal.NTAccount])}
$groups | select *
answered Oct 4, 2018 at 11:09
andrew pateandrew pate
3,67734 silver badges26 bronze badges
2
While there are many excellent answers here, there is one which I was personally looking for that was missing. Once I figured it out — I thought I should post it in case I want to find it later, or it actually manages to help someone else at some point:
Get-ADPrincipalGroupMembership username | Format-Table -auto
A second approach for presenting this is to specify the individual columns you are interested in eg:
Get-ADPrincipalGroupMembership username | select name, GroupScope, GroupCategory
This gives all the AD groups the username belongs to — but also presents all of the default properties of each group formatted nicely as a table.
The key benefit this gives you is you can see at a glance which are distribution lists, & which are Security groups. You can further see at a glance which are Universal, which are DomainLocal & which are Global.
Why would you care about this last bit?
- Universal group is a security or distribution group that contains
users, groups, and computers from any domain in its forest as
members. You can give universal security groups rights and
permissions on resources in any domain in the forest. - Global group is a group that can be used in its own domain, in member
servers and in workstations of the domain, and in trusting domains.
In all those locations, you can give a global group rights and
permissions and the global group can become a member of local groups.
However, a global group can contain user accounts that are only from
its own domain. - Domain local group is a security or distribution group that can
contain universal groups, global groups, other domain local groups
from its own domain, and accounts from any domain in the forest. You
can give domain local security groups rights and permissions on
resources that reside only in the same domain where the domain local
group is located.
answered Dec 12, 2018 at 22:20
kiltannenkiltannen
1,0072 gold badges12 silver badges27 bronze badges
1
Get-Member is not for getting user’s group membership. If you want to get a list of groups a user belongs to on the local system, you can do so by:
$query = "ASSOCIATORS OF {Win32_Account.Name='DemoUser1',Domain='DomainName'} WHERE ResultRole=GroupComponent ResultClass=Win32_Account"
Get-WMIObject -Query $query | Select Name
In the above query, replace DemoUser1 with the username you want and the DomainName with either your local computer name or domain name.
answered Feb 22, 2011 at 5:40
ravikanthravikanth
24.6k4 gold badges59 silver badges60 bronze badges
2
Get group membership for a user:
$strUserName = "Primoz"
$strUser = get-qaduser -SamAccountName $strUserName
$strUser.memberof
See Get Group Membership for a User
But also see Quest’s Free PowerShell Commands for Active Directory.
[Edit: Get-ADPrincipalGroupMembership command is included in Powershell since v2 with Windows 2008 R2. See kstrauss’ answer below.]
Abraham
4797 silver badges23 bronze badges
answered Feb 22, 2011 at 1:16
tiago2014tiago2014
3,3821 gold badge20 silver badges28 bronze badges
3
Get-Member
is a cmdlet for listing the members of a .NET object
. This has nothing to do with user/group membership. You can get the current user’s group membership like so:
PS> [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups |
Format-Table -auto
BinaryLength AccountDomainSid Value
------------ ---------------- -----
28 S-1-5-21-... S-1-5-21-2229937839-1383249143-3977914998-513
12 S-1-1-0
28 S-1-5-21-... S-1-5-21-2229937839-1383249143-3977914998-1010
28 S-1-5-21-... S-1-5-21-2229937839-1383249143-3977914998-1003
16 S-1-5-32-545
...
If you need access to arbitrary users’ group info then @tiagoinu suggestion of using the Quest AD cmdlets is a better way to go.
answered Feb 22, 2011 at 2:03
Keith HillKeith Hill
190k40 gold badges344 silver badges365 bronze badges
I wrote a PowerShell function called Get-ADPrincipalGroupMembershipRecursive. It accepts the DSN of a user, computer, group, or service account. It retrieves an initial list of groups from the account’s memberOf attribute, then recursively checks those group’s memberships. Abbreviated code is below. Full source code with comments can be found here.
function Get-ADPrincipalGroupMembershipRecursive( ) {
Param(
[string] $dsn,
[array]$groups = @()
)
$obj = Get-ADObject $dsn -Properties memberOf
foreach( $groupDsn in $obj.memberOf ) {
$tmpGrp = Get-ADObject $groupDsn -Properties memberOf
if( ($groups | where { $_.DistinguishedName -eq $groupDsn }).Count -eq 0 ) {
$groups += $tmpGrp
$groups = Get-ADPrincipalGroupMembershipRecursive $groupDsn $groups
}
}
return $groups
}
# Simple Example of how to use the function
$username = Read-Host -Prompt "Enter a username"
$groups = Get-ADPrincipalGroupMembershipRecursive (Get-ADUser $username).DistinguishedName
$groups | Sort-Object -Property name | Format-Table
answered Dec 5, 2013 at 21:04
Brian ReichBrian Reich
1431 gold badge2 silver badges4 bronze badges
1
No need for long scripts when it is a simple one liner..
QUEST Command
(Get-QADUser -Identity john -IncludedProperties MemberOf | Select-Object MemberOf).MemberOf
MS AD Command
(GET-ADUSER –Identity john –Properties MemberOf | Select-Object MemberOf).MemberOf
I find the MS AD cmd is faster but some people like the Quest ones better..
Steve
answered Nov 6, 2014 at 11:03
Use:
Get-ADPrincipalGroupMembership username | select name | export-CSV username.csv
This pipes output of the command into a CSV file.
answered Jun 5, 2015 at 10:36
First, import the ActiveDirectory module:
Import-Module ActiveDirectory
Then issue this command:
Get-ADGroupMember -Identity $group | foreach-object {
Write-Host $_.SamAccountName
}
This will display the members of the specified group.
answered Dec 14, 2012 at 18:25
Jonathan RiouxJonathan Rioux
1,0292 gold badges14 silver badges29 bronze badges
1
It is just one line:
(get-aduser joe.bloggs -properties *).memberof
end of
answered May 23, 2015 at 7:08
1
The below works well:
get-aduser $username -Properties memberof | select -expand memberof
If you have a list of users:
$list = 'administrator','testuser1','testuser2'
$list | `
%{
$user = $_;
get-aduser $user -Properties memberof | `
select -expand memberof | `
%{new-object PSObject -property @{User=$user;Group=$_;}} `
}
answered Feb 16, 2015 at 17:25
JohnLBevanJohnLBevan
21.9k11 gold badges93 silver badges173 bronze badges
Get-QADUser -SamAccountName LoginID | % {$_.MemberOf } | Get-QADGroup | select name
answered Mar 20, 2014 at 21:22
Get-ADUser -Filter { memberOf -RecursiveMatch "CN=Administrators,CN=Builtin,DC=Fabrikam,DC=com" } -SearchBase "CN=Administrator,CN=Users,DC=Fabrikam,DC=com" -SearchScope Base
## NOTE: The above command will return the user object (Administrator in this case) if it finds a match recursively in memberOf attribute.
answered Jul 7, 2014 at 12:22
Sunil AherSunil Aher
7473 gold badges14 silver badges34 bronze badges
I couldn’t get the following to work for a particular user:
Get-ADPrincipalGroupMembership username
It threw an error that I was not willing to troubleshoot.
I did however come up with a different solution using Get-ADUser. I like it a bit better because if you don’t know the account name then you can get it based off of a wildcard on the user’s actual name. Just fill in PartOfUsersName and away it goes.
#Get the groups that list of users are the member of using a wildcard search
[string]$UserNameLike = "*PartOfUsersName*" #Use * for wildcards here
[array]$AccountNames = $(Get-ADUser -Filter {Name -like $UserNameLike}).SamAccountName
ForEach ($AccountName In $AccountNames) {
Write-Host "`nGETTING GROUPS FOR" $AccountName.ToUpper() ":"
(Get-ADUser -Identity $AccountName -Properties MemberOf|select MemberOf).MemberOf|
Get-ADGroup|select Name|sort name
}
Huge props to schmeckendeugler and 8DH for getting me to this solution. +1 to both of you.
answered Apr 24, 2015 at 0:03
AdamAdam
5411 gold badge6 silver badges8 bronze badges
To get it recursive, you can use:
<#
.SYNOPSIS
Get all the groups that a user is MemberOf.
.DESCRIPTION
This script retrieves all the groups that a user is MemberOf in a recursive way.
.PARAMETER SamAccountName
The name of the user you want to check #>
Param (
[String]$SamAccountName = 'test',
$DomainUsersGroup = 'CN=Domain Users,CN=Users,DC=domain,DC=net'
)
Function Get-ADMemberOf {
Param (
[Parameter(ValueFromPipeline)]
[PSObject[]]$Group,
[String]$DomainUsersGroup = 'CN=Domain Users,CN=Users,DC=grouphc,DC=net'
)
Process {
foreach ($G in $Group) {
$G | Get-ADGroup | Select -ExpandProperty Name
Get-ADGroup $G -Properties MemberOf| Select-Object Memberof | ForEach-Object {
Get-ADMemberOf $_.Memberof
}
}
}
}
$Groups = Get-ADUser $SamAccountName -Properties MemberOf | Select-Object -ExpandProperty MemberOf
$Groups += $DomainUsersGroup
$Groups | Get-ADMemberOf | Select -Unique | Sort-Object
answered Feb 15, 2017 at 14:59
DarkLite1DarkLite1
13.1k40 gold badges113 silver badges201 bronze badges
Studying all comments presented gave me a starting point (thanks for such) but left me with several unresolved issues. As result here is my answer. The code snippet provided does a little more than what is asked for but it provides helpful debugging info.
[array] $script:groupsdns = @()
function Get-ADPrincipalGroupMembershipRecursive()
{
Param( [string] $dn, [int] $level = 0, [array] $groups = @() )
#if(($groupsdns | where { $_.DistinguishedName -eq $dn }).Count -ne 0 ) { return $groups } # dependency on next statement
#$groupsdns += (Get-ADObject $dn -Properties MemberOf) # Get-ADObject cannot find an object with identity
if ($script:groupsdns.Contains($dn)) { return $groups }
$script:groupsdns += $dn
$mo = $Null
$mo = Get-ADObject $dn -Properties MemberOf # Get-ADObject cannot find an object with identity
$group = ($dn + " (" + $level.ToString())
if ($mo -eq $Null) { $group += "!" }
$group += ")"
$groups += $group
foreach( $groupdn in $mo.MemberOf )
{
$groups = Get-ADPrincipalGroupMembershipRecursive -dn $groupdn -level ($level+1) -groups $groups
}
if ($level -le 0)
{
$primarygroupdn = (Get-ADUser -Identity $dn -Properties PrimaryGroup).PrimaryGroup
$groups = Get-ADPrincipalGroupMembershipRecursive -dn $primarygroupdn -level ($level+1) -groups $groups
}
return $groups
}
$adusergroups = Get-ADPrincipalGroupMembershipRecursive -dn $aduser.DistinguishedName
$adusergroups | ft -AutoSize | `
Out-File -Width 512 Get-ADPrincipalGroupMembershipRecursive.txt #-Append #-Wrap # | Sort-Object -Property Name
answered Nov 28, 2018 at 20:16
1
When you do not have privileges to consult other member groups but you do have the privilege to consult group members, you can do the following to build a map of which user has access to which groups.
$groups = get-adgroup -Filter * | sort name | select Name
$users = @{}
foreach($group in $groups) {
$groupUsers = @()
$groupUsers = Get-ADGroupMember -Identity $group.Name | Select-Object SamAccountName
$groupUsers | % {
if(!$users.ContainsKey($_.SamAccountName)){
$users[$_.SamAccountName] = @()
}
($users[$_.SamAccountName]) += ($group.Name)
}
}
kiltannen
1,0072 gold badges12 silver badges27 bronze badges
answered Apr 25, 2018 at 10:34
NadzzzNadzzz
5303 silver badges12 bronze badges
For LOCAL users and groups (ie not in Active Directory), and if you don’t want to, or aren’t allowed to, or can’t install RSAT and/or Install-WindowsFeature RSAT-AD-PowerShell
and/or import-module activedirectory
then here’s a pure, pre-installed powershell (5.1+) way to do it.
(Note: Get-LocalGroup*
used below are only available Powershell v5.1 and above. «…v5.1 was released along with the Windows 10 Anniversary Update on August 2, 2016, and in Windows Server 2016. …[F]or Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, and Windows Server 2012 R2 [it] was released on January 19, 2017.» (wikipedia))
$username = "user002"
Get-LocalGroup | ForEach-Object {
# the usernames are returned in the string form "computernameusername"
if (Get-LocalGroupMember -Group $_ | Where-Object name -like "*$username") {
$_.name
}
}
Example output:
Administrators
Users
answered Mar 9, 2021 at 23:59
3
Import-Module ActiveDirectory
Get-ADUser -SearchBase "OU=Users,DC=domain,DC=local" -Filter * | foreach-object {
write-host "User:" $_.Name -foreground green
Get-ADPrincipalGroupMembership $_.SamAccountName | foreach-object {
write-host "Member Of:" $_.name
}
}
Change the value of -SearchBase to reflect the OU you need to list the users from
This will list all of the users in that OU and show you which groups they are a member of.
answered Jul 18, 2013 at 16:53
Get-ADPrincipalGroupMembership USERLOGON | select name
answered Apr 30, 2014 at 12:05
This is the simplest way to just get the names:
Get-ADPrincipalGroupMembership "YourUserName"
# Returns
distinguishedName : CN=users,OU=test,DC=SomeWhere
GroupCategory : Security
GroupScope : Global
name : testGroup
objectClass : group
objectGUID : 2130ed49-24c4-4a17-88e6-dd4477d15a4c
SamAccountName : testGroup
SID : S-1-5-21-2114067515-1964795913-1973001494-71628
Add a select statement to trim the response or to get every user in an OU every group they are a user of:
foreach ($user in (get-aduser -SearchScope Subtree -SearchBase $oupath -filter * -Properties samaccountName, MemberOf | select samaccountName)){
Get-ADPrincipalGroupMembership $user.samaccountName | select name}
answered Jul 15, 2014 at 16:22
Almost all above solutions used the ActiveDirecotry
module which might not be available by default in most cases.
I used below method. A bit indirect, but served my purpose.
List all available groups
Get-WmiObject -Class Win32_Group
And then list the groups the user belongs to
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
Comparison can then be done via checking through the SIDs
. This works for the logged in user. Please correct me if I am wrong. Completely new to PowerShell, but had to get this done for a work commitment.
answered Mar 9, 2017 at 17:07
Ruifeng MaRuifeng Ma
2,2471 gold badge20 silver badges39 bronze badges
1
With user input and fancy output formatting:
[CmdletBinding(SupportsShouldProcess=$True)]
Param(
[Parameter(Mandatory = $True)]
[String]$UserName
)
Import-Module ActiveDirectory
If ($UserName) {
$UserName = $UserName.ToUpper().Trim()
$Res = (Get-ADPrincipalGroupMembership $UserName | Measure-Object).Count
If ($Res -GT 0) {
Write-Output "`n"
Write-Output "$UserName AD Group Membership:"
Write-Output "==========================================================="
Get-ADPrincipalGroupMembership $UserName | Select-Object -Property Name, GroupScope, GroupCategory | Sort-Object -Property Name | FT -A
}
}
answered Jun 16, 2017 at 16:04
coinbirdcoinbird
1,1624 gold badges22 silver badges44 bronze badges
Putting this here for future reference. I’m in the midst of an email migration. I need to know each user account and its respective group membership, and also I need to know each group and its respective members.
I’m using the code block below to output a CSV for each user’s group membership.
Get-ADUser -Filter * |`
ForEach-Object { `
$FileName = $_.SamAccountName + ".csv" ; `
$FileName ; `
Get-ADPrincipalGroupMembership $_ | `
Select-Object -Property SamAccountName, name, GroupScope, GroupCategory | `
Sort-Object -Property SamAccountName | `
Export-Csv -Path $FileName -Encoding ASCII ; `
}
The export process for the groups and their respective members was a little convoluted, but the below works. The output filenames include the type of group. Therefore, the email distribution groups I need are/should be the Universal and Global Distribution groups. I should be able to just delete or move the resulting TXT files I don’t need.
Get-ADGroup -Filter * | `
Select-Object -Property Name, DistinguishedName, GroupScope, GroupCategory | `
Sort-Object -Property GroupScope, GroupCategory, Name | `
Export-Csv -Path ADGroupsNew.csv -Encoding ASCII
$MyCSV = Import-Csv -Path .ADGroupsNew.csv -Encoding ASCII
$MyCSV | `
ForEach-Object { `
$FN = $_.GroupScope + ", " + $_.GroupCategory + ", " + $_.Name + ".txt" ; `
$FN ; `
Get-ADGroupMember -Identity $_.DistinguishedName | `
Out-File -FilePath $FN -Encoding ASCII ; $FN=""; `
}
answered May 19, 2018 at 4:37
user208145user208145
3492 silver badges13 bronze badges
Asked
11 years, 11 months ago
Viewed
1.4m times
PowerShell’s Get-ADGroupMember
cmdlet returns members of a specific group. Is there a cmdlet or property to get all the groups that a particular user is a member of?
I fixed my mistake: Get-Member
should be Get-ADGroupMember
.
asked Feb 22, 2011 at 0:57
2
Get-ADPrincipalGroupMembership will do this.
Get-ADPrincipalGroupMembership username | select name
name
----
Domain Users
Domain Computers
Workstation Admins
Company Users
Company Developers
AutomatedProcessingTeam
answered Mar 22, 2013 at 12:14
kstrausskstrauss
3,5821 gold badge12 silver badges2 bronze badges
15
Single line, no modules necessary, uses current logged user:
(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf
Kudos to this vbs/powershell article: http://technet.microsoft.com/en-us/library/ff730963.aspx
Jamie Ide
47.8k16 gold badges80 silver badges116 bronze badges
answered May 13, 2014 at 9:38
CanoasCanoas
1,8911 gold badge13 silver badges12 bronze badges
4
Old school way from CMD:
net user mst999 /domain
Linus Kleen
33.5k11 gold badges90 silver badges99 bronze badges
answered Jan 30, 2015 at 13:40
user4511672user4511672
4414 silver badges2 bronze badges
2
(GET-ADUSER –Identity USERNAME –Properties MemberOf | Select-Object MemberOf).MemberOf
mattytommo
55.3k15 gold badges126 silver badges147 bronze badges
answered Mar 26, 2012 at 20:24
4
This should provide you the details for current user. Powershell not needed.
whoami /groups
answered May 19, 2020 at 16:34
NayanNayan
3,02424 silver badges34 bronze badges
1
If you cannot get Get-ADPrincipalGroupMembership to work for you could try logging in as that user then use.
$id = [Security.Principal.WindowsIdentity]::GetCurrent()
$groups = $id.Groups | foreach-object {$_.Translate([Security.Principal.NTAccount])}
$groups | select *
answered Oct 4, 2018 at 11:09
andrew pateandrew pate
3,67734 silver badges26 bronze badges
2
While there are many excellent answers here, there is one which I was personally looking for that was missing. Once I figured it out — I thought I should post it in case I want to find it later, or it actually manages to help someone else at some point:
Get-ADPrincipalGroupMembership username | Format-Table -auto
A second approach for presenting this is to specify the individual columns you are interested in eg:
Get-ADPrincipalGroupMembership username | select name, GroupScope, GroupCategory
This gives all the AD groups the username belongs to — but also presents all of the default properties of each group formatted nicely as a table.
The key benefit this gives you is you can see at a glance which are distribution lists, & which are Security groups. You can further see at a glance which are Universal, which are DomainLocal & which are Global.
Why would you care about this last bit?
- Universal group is a security or distribution group that contains
users, groups, and computers from any domain in its forest as
members. You can give universal security groups rights and
permissions on resources in any domain in the forest. - Global group is a group that can be used in its own domain, in member
servers and in workstations of the domain, and in trusting domains.
In all those locations, you can give a global group rights and
permissions and the global group can become a member of local groups.
However, a global group can contain user accounts that are only from
its own domain. - Domain local group is a security or distribution group that can
contain universal groups, global groups, other domain local groups
from its own domain, and accounts from any domain in the forest. You
can give domain local security groups rights and permissions on
resources that reside only in the same domain where the domain local
group is located.
answered Dec 12, 2018 at 22:20
kiltannenkiltannen
1,0072 gold badges12 silver badges27 bronze badges
1
Get-Member is not for getting user’s group membership. If you want to get a list of groups a user belongs to on the local system, you can do so by:
$query = "ASSOCIATORS OF {Win32_Account.Name='DemoUser1',Domain='DomainName'} WHERE ResultRole=GroupComponent ResultClass=Win32_Account"
Get-WMIObject -Query $query | Select Name
In the above query, replace DemoUser1 with the username you want and the DomainName with either your local computer name or domain name.
answered Feb 22, 2011 at 5:40
ravikanthravikanth
24.6k4 gold badges59 silver badges60 bronze badges
2
Get group membership for a user:
$strUserName = "Primoz"
$strUser = get-qaduser -SamAccountName $strUserName
$strUser.memberof
See Get Group Membership for a User
But also see Quest’s Free PowerShell Commands for Active Directory.
[Edit: Get-ADPrincipalGroupMembership command is included in Powershell since v2 with Windows 2008 R2. See kstrauss’ answer below.]
Abraham
4797 silver badges23 bronze badges
answered Feb 22, 2011 at 1:16
tiago2014tiago2014
3,3821 gold badge20 silver badges28 bronze badges
3
Get-Member
is a cmdlet for listing the members of a .NET object
. This has nothing to do with user/group membership. You can get the current user’s group membership like so:
PS> [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups |
Format-Table -auto
BinaryLength AccountDomainSid Value
------------ ---------------- -----
28 S-1-5-21-... S-1-5-21-2229937839-1383249143-3977914998-513
12 S-1-1-0
28 S-1-5-21-... S-1-5-21-2229937839-1383249143-3977914998-1010
28 S-1-5-21-... S-1-5-21-2229937839-1383249143-3977914998-1003
16 S-1-5-32-545
...
If you need access to arbitrary users’ group info then @tiagoinu suggestion of using the Quest AD cmdlets is a better way to go.
answered Feb 22, 2011 at 2:03
Keith HillKeith Hill
190k40 gold badges344 silver badges365 bronze badges
I wrote a PowerShell function called Get-ADPrincipalGroupMembershipRecursive. It accepts the DSN of a user, computer, group, or service account. It retrieves an initial list of groups from the account’s memberOf attribute, then recursively checks those group’s memberships. Abbreviated code is below. Full source code with comments can be found here.
function Get-ADPrincipalGroupMembershipRecursive( ) {
Param(
[string] $dsn,
[array]$groups = @()
)
$obj = Get-ADObject $dsn -Properties memberOf
foreach( $groupDsn in $obj.memberOf ) {
$tmpGrp = Get-ADObject $groupDsn -Properties memberOf
if( ($groups | where { $_.DistinguishedName -eq $groupDsn }).Count -eq 0 ) {
$groups += $tmpGrp
$groups = Get-ADPrincipalGroupMembershipRecursive $groupDsn $groups
}
}
return $groups
}
# Simple Example of how to use the function
$username = Read-Host -Prompt "Enter a username"
$groups = Get-ADPrincipalGroupMembershipRecursive (Get-ADUser $username).DistinguishedName
$groups | Sort-Object -Property name | Format-Table
answered Dec 5, 2013 at 21:04
Brian ReichBrian Reich
1431 gold badge2 silver badges4 bronze badges
1
No need for long scripts when it is a simple one liner..
QUEST Command
(Get-QADUser -Identity john -IncludedProperties MemberOf | Select-Object MemberOf).MemberOf
MS AD Command
(GET-ADUSER –Identity john –Properties MemberOf | Select-Object MemberOf).MemberOf
I find the MS AD cmd is faster but some people like the Quest ones better..
Steve
answered Nov 6, 2014 at 11:03
Use:
Get-ADPrincipalGroupMembership username | select name | export-CSV username.csv
This pipes output of the command into a CSV file.
answered Jun 5, 2015 at 10:36
First, import the ActiveDirectory module:
Import-Module ActiveDirectory
Then issue this command:
Get-ADGroupMember -Identity $group | foreach-object {
Write-Host $_.SamAccountName
}
This will display the members of the specified group.
answered Dec 14, 2012 at 18:25
Jonathan RiouxJonathan Rioux
1,0292 gold badges14 silver badges29 bronze badges
1
It is just one line:
(get-aduser joe.bloggs -properties *).memberof
end of
answered May 23, 2015 at 7:08
1
The below works well:
get-aduser $username -Properties memberof | select -expand memberof
If you have a list of users:
$list = 'administrator','testuser1','testuser2'
$list | `
%{
$user = $_;
get-aduser $user -Properties memberof | `
select -expand memberof | `
%{new-object PSObject -property @{User=$user;Group=$_;}} `
}
answered Feb 16, 2015 at 17:25
JohnLBevanJohnLBevan
21.9k11 gold badges93 silver badges173 bronze badges
Get-QADUser -SamAccountName LoginID | % {$_.MemberOf } | Get-QADGroup | select name
answered Mar 20, 2014 at 21:22
Get-ADUser -Filter { memberOf -RecursiveMatch "CN=Administrators,CN=Builtin,DC=Fabrikam,DC=com" } -SearchBase "CN=Administrator,CN=Users,DC=Fabrikam,DC=com" -SearchScope Base
## NOTE: The above command will return the user object (Administrator in this case) if it finds a match recursively in memberOf attribute.
answered Jul 7, 2014 at 12:22
Sunil AherSunil Aher
7473 gold badges14 silver badges34 bronze badges
I couldn’t get the following to work for a particular user:
Get-ADPrincipalGroupMembership username
It threw an error that I was not willing to troubleshoot.
I did however come up with a different solution using Get-ADUser. I like it a bit better because if you don’t know the account name then you can get it based off of a wildcard on the user’s actual name. Just fill in PartOfUsersName and away it goes.
#Get the groups that list of users are the member of using a wildcard search
[string]$UserNameLike = "*PartOfUsersName*" #Use * for wildcards here
[array]$AccountNames = $(Get-ADUser -Filter {Name -like $UserNameLike}).SamAccountName
ForEach ($AccountName In $AccountNames) {
Write-Host "`nGETTING GROUPS FOR" $AccountName.ToUpper() ":"
(Get-ADUser -Identity $AccountName -Properties MemberOf|select MemberOf).MemberOf|
Get-ADGroup|select Name|sort name
}
Huge props to schmeckendeugler and 8DH for getting me to this solution. +1 to both of you.
answered Apr 24, 2015 at 0:03
AdamAdam
5411 gold badge6 silver badges8 bronze badges
To get it recursive, you can use:
<#
.SYNOPSIS
Get all the groups that a user is MemberOf.
.DESCRIPTION
This script retrieves all the groups that a user is MemberOf in a recursive way.
.PARAMETER SamAccountName
The name of the user you want to check #>
Param (
[String]$SamAccountName = 'test',
$DomainUsersGroup = 'CN=Domain Users,CN=Users,DC=domain,DC=net'
)
Function Get-ADMemberOf {
Param (
[Parameter(ValueFromPipeline)]
[PSObject[]]$Group,
[String]$DomainUsersGroup = 'CN=Domain Users,CN=Users,DC=grouphc,DC=net'
)
Process {
foreach ($G in $Group) {
$G | Get-ADGroup | Select -ExpandProperty Name
Get-ADGroup $G -Properties MemberOf| Select-Object Memberof | ForEach-Object {
Get-ADMemberOf $_.Memberof
}
}
}
}
$Groups = Get-ADUser $SamAccountName -Properties MemberOf | Select-Object -ExpandProperty MemberOf
$Groups += $DomainUsersGroup
$Groups | Get-ADMemberOf | Select -Unique | Sort-Object
answered Feb 15, 2017 at 14:59
DarkLite1DarkLite1
13.1k40 gold badges113 silver badges201 bronze badges
Studying all comments presented gave me a starting point (thanks for such) but left me with several unresolved issues. As result here is my answer. The code snippet provided does a little more than what is asked for but it provides helpful debugging info.
[array] $script:groupsdns = @()
function Get-ADPrincipalGroupMembershipRecursive()
{
Param( [string] $dn, [int] $level = 0, [array] $groups = @() )
#if(($groupsdns | where { $_.DistinguishedName -eq $dn }).Count -ne 0 ) { return $groups } # dependency on next statement
#$groupsdns += (Get-ADObject $dn -Properties MemberOf) # Get-ADObject cannot find an object with identity
if ($script:groupsdns.Contains($dn)) { return $groups }
$script:groupsdns += $dn
$mo = $Null
$mo = Get-ADObject $dn -Properties MemberOf # Get-ADObject cannot find an object with identity
$group = ($dn + " (" + $level.ToString())
if ($mo -eq $Null) { $group += "!" }
$group += ")"
$groups += $group
foreach( $groupdn in $mo.MemberOf )
{
$groups = Get-ADPrincipalGroupMembershipRecursive -dn $groupdn -level ($level+1) -groups $groups
}
if ($level -le 0)
{
$primarygroupdn = (Get-ADUser -Identity $dn -Properties PrimaryGroup).PrimaryGroup
$groups = Get-ADPrincipalGroupMembershipRecursive -dn $primarygroupdn -level ($level+1) -groups $groups
}
return $groups
}
$adusergroups = Get-ADPrincipalGroupMembershipRecursive -dn $aduser.DistinguishedName
$adusergroups | ft -AutoSize | `
Out-File -Width 512 Get-ADPrincipalGroupMembershipRecursive.txt #-Append #-Wrap # | Sort-Object -Property Name
answered Nov 28, 2018 at 20:16
1
When you do not have privileges to consult other member groups but you do have the privilege to consult group members, you can do the following to build a map of which user has access to which groups.
$groups = get-adgroup -Filter * | sort name | select Name
$users = @{}
foreach($group in $groups) {
$groupUsers = @()
$groupUsers = Get-ADGroupMember -Identity $group.Name | Select-Object SamAccountName
$groupUsers | % {
if(!$users.ContainsKey($_.SamAccountName)){
$users[$_.SamAccountName] = @()
}
($users[$_.SamAccountName]) += ($group.Name)
}
}
kiltannen
1,0072 gold badges12 silver badges27 bronze badges
answered Apr 25, 2018 at 10:34
NadzzzNadzzz
5303 silver badges12 bronze badges
For LOCAL users and groups (ie not in Active Directory), and if you don’t want to, or aren’t allowed to, or can’t install RSAT and/or Install-WindowsFeature RSAT-AD-PowerShell
and/or import-module activedirectory
then here’s a pure, pre-installed powershell (5.1+) way to do it.
(Note: Get-LocalGroup*
used below are only available Powershell v5.1 and above. «…v5.1 was released along with the Windows 10 Anniversary Update on August 2, 2016, and in Windows Server 2016. …[F]or Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, and Windows Server 2012 R2 [it] was released on January 19, 2017.» (wikipedia))
$username = "user002"
Get-LocalGroup | ForEach-Object {
# the usernames are returned in the string form "computernameusername"
if (Get-LocalGroupMember -Group $_ | Where-Object name -like "*$username") {
$_.name
}
}
Example output:
Administrators
Users
answered Mar 9, 2021 at 23:59
3
Import-Module ActiveDirectory
Get-ADUser -SearchBase "OU=Users,DC=domain,DC=local" -Filter * | foreach-object {
write-host "User:" $_.Name -foreground green
Get-ADPrincipalGroupMembership $_.SamAccountName | foreach-object {
write-host "Member Of:" $_.name
}
}
Change the value of -SearchBase to reflect the OU you need to list the users from
This will list all of the users in that OU and show you which groups they are a member of.
answered Jul 18, 2013 at 16:53
Get-ADPrincipalGroupMembership USERLOGON | select name
answered Apr 30, 2014 at 12:05
This is the simplest way to just get the names:
Get-ADPrincipalGroupMembership "YourUserName"
# Returns
distinguishedName : CN=users,OU=test,DC=SomeWhere
GroupCategory : Security
GroupScope : Global
name : testGroup
objectClass : group
objectGUID : 2130ed49-24c4-4a17-88e6-dd4477d15a4c
SamAccountName : testGroup
SID : S-1-5-21-2114067515-1964795913-1973001494-71628
Add a select statement to trim the response or to get every user in an OU every group they are a user of:
foreach ($user in (get-aduser -SearchScope Subtree -SearchBase $oupath -filter * -Properties samaccountName, MemberOf | select samaccountName)){
Get-ADPrincipalGroupMembership $user.samaccountName | select name}
answered Jul 15, 2014 at 16:22
Almost all above solutions used the ActiveDirecotry
module which might not be available by default in most cases.
I used below method. A bit indirect, but served my purpose.
List all available groups
Get-WmiObject -Class Win32_Group
And then list the groups the user belongs to
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
Comparison can then be done via checking through the SIDs
. This works for the logged in user. Please correct me if I am wrong. Completely new to PowerShell, but had to get this done for a work commitment.
answered Mar 9, 2017 at 17:07
Ruifeng MaRuifeng Ma
2,2471 gold badge20 silver badges39 bronze badges
1
With user input and fancy output formatting:
[CmdletBinding(SupportsShouldProcess=$True)]
Param(
[Parameter(Mandatory = $True)]
[String]$UserName
)
Import-Module ActiveDirectory
If ($UserName) {
$UserName = $UserName.ToUpper().Trim()
$Res = (Get-ADPrincipalGroupMembership $UserName | Measure-Object).Count
If ($Res -GT 0) {
Write-Output "`n"
Write-Output "$UserName AD Group Membership:"
Write-Output "==========================================================="
Get-ADPrincipalGroupMembership $UserName | Select-Object -Property Name, GroupScope, GroupCategory | Sort-Object -Property Name | FT -A
}
}
answered Jun 16, 2017 at 16:04
coinbirdcoinbird
1,1624 gold badges22 silver badges44 bronze badges
Putting this here for future reference. I’m in the midst of an email migration. I need to know each user account and its respective group membership, and also I need to know each group and its respective members.
I’m using the code block below to output a CSV for each user’s group membership.
Get-ADUser -Filter * |`
ForEach-Object { `
$FileName = $_.SamAccountName + ".csv" ; `
$FileName ; `
Get-ADPrincipalGroupMembership $_ | `
Select-Object -Property SamAccountName, name, GroupScope, GroupCategory | `
Sort-Object -Property SamAccountName | `
Export-Csv -Path $FileName -Encoding ASCII ; `
}
The export process for the groups and their respective members was a little convoluted, but the below works. The output filenames include the type of group. Therefore, the email distribution groups I need are/should be the Universal and Global Distribution groups. I should be able to just delete or move the resulting TXT files I don’t need.
Get-ADGroup -Filter * | `
Select-Object -Property Name, DistinguishedName, GroupScope, GroupCategory | `
Sort-Object -Property GroupScope, GroupCategory, Name | `
Export-Csv -Path ADGroupsNew.csv -Encoding ASCII
$MyCSV = Import-Csv -Path .ADGroupsNew.csv -Encoding ASCII
$MyCSV | `
ForEach-Object { `
$FN = $_.GroupScope + ", " + $_.GroupCategory + ", " + $_.Name + ".txt" ; `
$FN ; `
Get-ADGroupMember -Identity $_.DistinguishedName | `
Out-File -FilePath $FN -Encoding ASCII ; $FN=""; `
}
answered May 19, 2018 at 4:37
user208145user208145
3492 silver badges13 bronze badges
Нажмите комбинацию клавиш Windows + R на клавиатуре. Введите lusrmgr. msc и нажмите Enter. Откроется окно «Локальные пользователи и группы».
Откройте «Управление компьютером» — быстрый способ сделать это — одновременно нажать Win + X на клавиатуре и выбрать в меню «Управление компьютером». В области управления компьютером, выберите «Локальные пользователи и группы» на левая панель. Альтернативный способ открыть локальные пользователи и группы — запустить lusrmgr.
Как мне найти локальных пользователей в Windows 10?
Шаг 1. Щелкните правой кнопкой мыши «Этот компьютер» и выберите «Управление» в контекстном меню, чтобы открыть «Управление компьютером». Шаг 2: Разверните Системные инструменты> Локальные пользователи и группы., а затем выберите папку Пользователи, чтобы в ней были перечислены все учетные записи пользователей, существующие в вашей Windows 10, включая отключенные или скрытые учетные записи.
Как мне найти свои группы в Windows 10?
Нажмите Windows + R, введите «люсрмгр. MSC»В поле« Выполнить », а затем нажмите Enter. В окне «Локальные пользователи и группы» выберите папку «Пользователи», а затем дважды щелкните учетную запись пользователя, которую вы хотите просмотреть. В окне свойств учетной записи пользователя перейдите на вкладку «Член».
Где локальные пользователи и группы в домашнем едином языке Windows 10?
В Windows 10 Home Edition нет параметра «Локальные пользователи и группы», поэтому вы не можете его увидеть в «Управление компьютером». Вы можете использовать учетные записи пользователей нажав Window + R, набрав netplwiz и нажав OK как описано здесь.
Как мне найти локальных пользователей и группы?
Нажмите комбинацию клавиш Windows + R на клавиатуре. Введите lusrmgr. msc и нажмите Enter. Откроется окно «Локальные пользователи и группы».
Как управлять группами в Windows 10?
Чтобы добавить пользователей в группу в Windows 10, сделайте следующее.
- Нажмите сочетания клавиш Win + R на клавиатуре и введите в поле выполнения следующее: lusrmgr.msc. …
- Щелкните Группы слева.
- Дважды щелкните группу, в которую вы хотите добавить пользователей, в списке групп.
- Нажмите кнопку «Добавить», чтобы добавить одного или нескольких пользователей.
Как мне увидеть всех пользователей на экране входа в Windows 10?
Как сделать так, чтобы Windows 10 всегда отображала все учетные записи пользователей на экране входа в систему, когда я включаю или перезагружаю компьютер?
- Нажмите клавишу Windows + X на клавиатуре.
- Выберите из списка опцию «Управление компьютером».
- Выберите параметр «Локальные пользователи и группы» на левой панели.
- Затем дважды щелкните папку «Пользователи» на левой панели.
Как мне добавлять и удалять пользователей в Windows 10?
В выпусках Windows 10 Домашняя и Windows 10 Профессиональная:
- Выберите Пуск> Параметры> Учетные записи> Семья и другие пользователи.
- В разделе «Другие пользователи» выберите «Добавить кого-нибудь на этот компьютер».
- Введите данные учетной записи Microsoft этого человека и следуйте инструкциям.
Как мне найти пользователей?
Как вывести список пользователей в Linux
- Получите список всех пользователей с помощью файла / etc / passwd.
- Получите список всех пользователей с помощью команды getent.
- Проверьте, существует ли пользователь в системе Linux.
- Системные и обычные пользователи.
Как мне найти группы пользователей?
Есть несколько способов узнать, к каким группам принадлежит пользователь. Основная группа пользователей хранится в файле / etc / passwd, а дополнительные группы, если таковые имеются, перечислены в файле / etc / group. Один из способов найти группы пользователей — чтобы перечислить содержимое этих файлов с помощью cat, less или grep .
Как мне узнать членство в группе Windows?
Вы можете проверить членство в группе с помощью Оснастка консоли Active Directory — пользователи и компьютеры (ADUC) найдя интересующего пользователя или группу, углубившись в свойства объекта и щелкнув вкладку «Члены» или «Член».
Идти к «Пользователи и компьютеры Active Directory». Щелкните «Пользователи» или папку, содержащую учетную запись пользователя. Щелкните правой кнопкой мыши учетную запись пользователя и выберите «Свойства». Щелкните вкладку «Участник».
- Remove From My Forums
Как с клиентского компьютера узнать в какие группы включена учетная запись этого компа?
-
Вопрос
-
Не могу ничего найти через поисковики, но знаю что с клиентского компьютера через какую-то консольную команду можно узнать в какие группы включена учетная запись компьютера. Компьютер находится в домене. Клиентская
ОС — Windows 7. Серверная ОС — Windows 2008.
Ответы
-
Нашел. Команда «gpresult /r».
-
Помечено в качестве ответа
Egor Lukin
23 апреля 2015 г. 8:29
-
Помечено в качестве ответа
Все ответы
-
Нашел. Команда «gpresult /r».
-
Помечено в качестве ответа
Egor Lukin
23 апреля 2015 г. 8:29
-
Помечено в качестве ответа
-
Здравствуйте,
Выполните в командной строке с правами администратора команду:
gpresult /V
Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий.
Get-ADGroup — это команда, которая возвращает список групп в Powershell. Для того что бы вывести список пользователей в группе есть другая команда Get-ADGroupMember и мы ее тоже рассмотрим. В этих командлетах есть один обязательный ключ. Для примера так мы выведем весь список групп AD в Powershell:
Get-ADGroup -Filter *
Примеры с Get-ADGroup Filter
Если мы хотим вывести, например, только список групп безопасности, то можно сделать это так:
Get-ADGroup -Filter {GroupCategory -eq "Security"}
GroupCategory — это свойство, а eq ищет точное соответствие. Операторы сравнения powershell разбирались тут.
Свойств, которые мы бы хотели вывести или сравнить достаточно много и что бы увидеть их все выполните:
Get-ADGroup -Filter * -Properties * | Get-Member -MemberType Properties
Можно делать сравнивание по нескольким значениям. Если я хочу получить группы созданные 20 дней назад, а так же что бы их тип был Distribution (группа распространения), мне следует сделать так:
$date = (Get-Date).AddDays(-20)
Get-ADGroup -Filter {(GroupCategory -eq "Distribution") -and (WhenCreated -gt $date)} -Properties *
Другие примеры рассматриваются дальше…
Получаем список пользователей группы в Powershell Get-ADGroup
Мы можем найти данные по группе указав только имя. В моем случае я ищу группу, где имя заканчивается на marketing:
Get-ADGroup -Filter {Name -like "*marketing"} -Properties Members | SELECT *
Где:
- Properties — расширяет список стандартных свойств. В нашем случае указываем, что нам нужно получить список пользователей группы в Powershell
- Select — в таком варианте команда выводит список всех свойств, а не только стандартный список
У нас есть и другой способ получить список пользователей группы — это через Get-ADGroupMember. Принцип такой же как и в предыдущих вариантах:
Get-ADGroup -Filter {Name -like "*marketing"} -Properties Members | Get-ADGroupMember
Разница этих двух вариантов в том, что в первом случае мы получаем укороченную информацию о пользователях, а во втором более подробный список.
Для получение пользователей можно сделать и так, но в этом варианте есть минус, что мы должны писать точное соответствие имени:
Get-ADGroupMember -Identity Marketing
В описании на сайте Microsoft пишут, что в нем появляется ошибка только в случае, если командлет возвращает более одной группы (в случае использования масок), но у меня так и не получилось это сделать. Вместо имени мы можем использовать SID и GUID.
Получение в Powershell групп пользователя
Обратная ситуация, когда мы хотим узнать в каких группах наш пользователь. Для этого тоже есть несколько вариантов. Первый — это через команду получения пользователей со свойством MemberOf:
Get-ADUser -Filter {Name -eq "Test User (0001)"} -Properties MemberOF
Если мы хотим узнать какую либо подробную информацию о группе сделайте так:
$groups = Get-ADUser -Filter {Name -eq "Test User (0001)"} -Properties MemberOF
$groups.MemberOF | Get-ADGroup
Мы можем найти группы пользователя и так:
Get-ADGroup -Filter * -Properties Member | where -Property Member -Like "*Test User (0001)*"
Но минус этого способа в том, что он будет выполняться дольше. Возможно это будет не заметно с 1000 пользователями, а вот с 50000 может.
…
Теги:
#powershell
#ad