Get-ADGroupMember
Командлет PowerShell возвращает членов определенной группы. Существует ли командлет или свойство для получения всех групп, в которые входит конкретный пользователь?
Я исправил свою ошибку: Get-Member
должно быть Get-ADGroupMember
.
net user /domain username
, проверьте также другие методы в Get Groups, в которых пользователь является членом Использование PowerShellОтветы:
Get-ADPrincipalGroupMembership сделает это.
источник
get-aduser $username -Properties memberof | select -expand memberof
работал нормально, хотя.import-module activedirectory
в командной строке powershell, после чего он должен запуститься.Одиночная строка, не требующая модулей, использует текущего зарегистрированного пользователя:
Слава этой vbs / powershell статье: http://technet.microsoft.com/en-us/library/ff730963.aspx
источник
$env:username
на$username
и установил,$username = "testuser"
чтобы легко выполнять подстановку переменных для других пользовательских поисков.Более краткая альтернатива опубликованной Canoas, чтобы получить членство в группе для текущего пользователя.
Я сталкивался с этим методом в этой записи блога: http://www.travisrunyard.com/2013/03/26/auto-create-outlook-mapi-user-profiles/
Еще лучшая версия, которая использует регулярное выражение для удаления пустышки LDAP и оставляет только имена групп:
Более подробную информацию об использовании ускорителя типов [ADSISEARCHER] можно найти в блоге сценариста: http://blogs.technet.com/b/heyscriptingguy/archive/2010/08/24/use-the-powershell-adsisearcher-type -accelerator к поиску активный-directory.aspx
источник
| Sort-Object
чтобы сделать его еще более читабельным.Старый школьный путь из CMD:
источник
источник
Если вы не можете заставить Get-ADPrincipalGroupMembership работать на вас, попробуйте войти в систему от имени этого пользователя, а затем использовать.
источник
$id = [Security.Principal.WindowsIdentity]("username")
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | % {$_.Translate([Security.Principal.NTAccount])}
.Получить членство в группе для пользователя:
См. Получение членства в группе для пользователя.
Но также посмотрите бесплатные команды Quest PowerShell для Active Directory .
[ Изменить : команда Get-ADPrincipalGroupMembership включена в Powershell, начиная с версии 2 с Windows 2008 R2. См. Ответ Кштрауса ниже.]
источник
Get-Member
является командлет для перечисления членов в .NETobject
. Это не имеет ничего общего с членством в пользователях / группах. Вы можете получить членство в группе текущего пользователя следующим образом:Если вам нужен доступ к информации о группах произвольных пользователей, лучше воспользоваться предложением @tiagoinu об использовании командлетов Quest AD.
источник
Сначала импортируйте модуль activedirectory:
Затем введите эту команду:
Это отобразит членов указанной группы.
источник
Нет необходимости в длинных скриптах, когда это простой однострочник.
Команда QUEST
Команда MS AD
Я считаю, что команда MS AD работает быстрее, но некоторым людям больше нравятся команды Quest ..
Стив
источник
Get-Member не предназначен для получения членства в группе. Если вы хотите получить список групп, к которым принадлежит пользователь в локальной системе, вы можете сделать это следующим образом:
В приведенном выше запросе замените DemoUser1 желаемым именем пользователя, а DomainName - именем локального компьютера или доменного имени.
источник
Использование:
Это направляет вывод команды в файл CSV .
источник
Это должно предоставить вам подробную информацию о текущем пользователе. Powershell не нужен.
whoami /groups
источник
Это всего лишь одна строка:
конец :)
источник
select -expandproperty memberof
сделает вывод более читабельным / полезным.Я написал функцию PowerShell под названием Get-ADPrincipalGroupMembershipRecursive. Он принимает DSN учетной записи пользователя, компьютера, группы или службы. Он извлекает начальный список групп из атрибута memberOf учетной записи, а затем рекурсивно проверяет членство в этих группах. Сокращенный код ниже. Полный исходный код с комментариями можно найти здесь .
источник
Следующее работает хорошо:
Если у вас есть список пользователей:
источник
Get-QADUser -SamAccountName LoginID | % {$ _. MemberOf} | Get-QADGroup | выберите имя
источник
Мне не удалось заставить работать следующее для конкретного пользователя:
Это привело к ошибке, которую я не хотел устранять.
Однако я предложил другое решение, используя Get-ADUser. Мне он нравится немного больше, потому что, если вы не знаете имя учетной записи, вы можете получить его на основе подстановочного знака на фактическом имени пользователя. Просто заполните PartOfUsersName и все готово .
Огромные реквизиты schmeckendeugler и 8DH за то, что я получил это решение. +1 вам обоим.
источник
Хотя здесь есть много отличных ответов, есть один, который я лично искал, но которого не хватало. Как только я это понял - я подумал, что должен опубликовать его на случай, если я захочу найти его позже, или ему действительно удастся помочь кому-то другому в какой-то момент:
Второй подход к представлению этого - указать отдельные интересующие вас столбцы, например:
Это дает всем группам AD, к которым принадлежит имя пользователя, но также представляет все свойства по умолчанию для каждой группы, красиво отформатированные в виде таблицы.
Основное преимущество, которое это дает вам, это то, что вы можете сразу увидеть списки рассылки и группы безопасности. Вы также можете сразу увидеть, какие из них являются универсальными, которые являются локальными и глобальными.
Почему вы заботитесь об этом последнем кусочке?
источник
Измените значение -SearchBase, чтобы отразить OU, из которого вы хотите вывести список пользователей :)
Это перечислит всех пользователей в этом OU и покажет вам, в какие группы они входят.
источник
Get-ADPrincipalGroupMembership USERLOGON | выберите имя
источник
источник
Это самый простой способ просто получить имена:
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
Добавьте оператор select, чтобы обрезать ответ или получить каждого пользователя в OU в каждой группе, пользователем которой он является:
foreach ($user in (get-aduser -SearchScope Subtree -SearchBase $oupath -filter * -Properties samaccountName, MemberOf | select samaccountName)){ Get-ADPrincipalGroupMembership $user.samaccountName | select name}
источник
Чтобы получить его рекурсивно, вы можете использовать:
источник
Почти все вышеперечисленные решения использовали
ActiveDirecotry
модуль, который в большинстве случаев может быть недоступен по умолчанию.Я использовал метод ниже. Немного косвенно, но послужило моей цели.
Список всех доступных групп
Get-WmiObject -Class Win32_Group
Затем укажите группы, к которым принадлежит пользователь.
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
Сравнение может быть сделано путем проверки через
SIDs
. Это работает для вошедшего в систему пользователя. Пожалуйста, поправьте меня, если я ошибаюсь. Совершенно новый для PowerShell, но это нужно было сделать для выполнения работы.источник
С пользовательским вводом и необычным форматированием вывода:
источник
Поместите это здесь для использования в будущем. Я занимаюсь переносом электронной почты. Мне нужно знать каждую учетную запись пользователя и членство в соответствующей группе, а также мне нужно знать каждую группу и ее участников.
Я использую блок кода ниже, чтобы вывести CSV для каждого члена группы.
Процесс экспорта для групп и их соответствующих членов был немного запутанным, но ниже работает. Имена выходных файлов включают тип группы. Поэтому группы рассылки электронной почты, которые мне нужны, это / должны быть универсальными и глобальными группами рассылки. Я смогу просто удалить или переместить полученные файлы TXT, которые мне не нужны.
источник
Изучение всех представленных комментариев дало мне отправную точку (спасибо за это), но оставило мне несколько нерешенных вопросов. В результате вот мой ответ. Предоставленный фрагмент кода делает немного больше, чем требуется, но предоставляет полезную информацию для отладки.
источник
Если у вас нет прав для консультации с другими группами участников, но у вас есть право консультироваться с членами группы, вы можете сделать следующее, чтобы построить карту того, какой пользователь имеет доступ к каким группам.
источник