O Get-ADGroupMember
cmdlet do PowerShell retorna membros de um grupo específico. Existe um cmdlet ou propriedade para obter todos os grupos dos quais um usuário específico é membro?
Corrigi o meu erro: Get-Member
deveria ser Get-ADGroupMember
.
O Get-ADGroupMember
cmdlet do PowerShell retorna membros de um grupo específico. Existe um cmdlet ou propriedade para obter todos os grupos dos quais um usuário específico é membro?
Corrigi o meu erro: Get-Member
deveria ser Get-ADGroupMember
.
net user /domain username
, verifique também outros métodos em Obter grupos nos quais um usuário é membro Usando o PowerShellRespostas:
Get-ADPrincipalGroupMembership fará isso.
fonte
get-aduser $username -Properties memberof | select -expand memberof
funcionou bem embora.import-module activedirectory
na linha de comando do powershell; isso deve ser executado.Linha única, sem necessidade de módulos, usa o usuário logado atual:
Parabéns a este artigo do vbs / powershell: http://technet.microsoft.com/en-us/library/ff730963.aspx
fonte
$env:username
para$username
e configurei com$username = "testuser"
para fazer facilmente a substituição de variáveis por outras pesquisas de usuários.Uma alternativa mais concisa à postada por Canoas, para obter associação ao grupo para o usuário conectado no momento.
Me deparei com esse método nesta postagem do blog: http://www.travisrunyard.com/2013/03/26/auto-create-outlook-mapi-user-profiles/
Uma versão ainda melhor, que usa um regex para remover o guff do LDAP e deixa apenas os nomes dos grupos:
Mais detalhes sobre o uso do acelerador de tipo [ADSISEARCHER] podem ser encontrados no blog do cara do script: http://blogs.technet.com/b/heyscriptingguy/archive/2010/08/24/use-the-powershell-adsisearcher-type -accelerator-to-search-active-directory.aspx
fonte
| Sort-Object
para torná-lo ainda mais legível.À moda antiga do CMD:
fonte
fonte
Se você não conseguir que Get-ADPrincipalGroupMembership funcione, tente fazer logon como esse usuário e use.
fonte
$id = [Security.Principal.WindowsIdentity]("username")
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | % {$_.Translate([Security.Principal.NTAccount])}
.Obter associação ao grupo para um usuário:
Consulte Obter associação ao grupo para um usuário
Mas também veja os comandos gratuitos do PowerShell da Quest para o Active Directory .
[ Editar : O comando Get-ADPrincipalGroupMembership está incluído no Powershell desde a v2 com o Windows 2008 R2. Veja a resposta do kstrauss abaixo.]
fonte
Get-Member
é um cmdlet para listar os membros de um .NETobject
. Isso não tem nada a ver com a associação de usuário / grupo. Você pode obter a associação ao grupo do usuário atual da seguinte forma:Se você precisar acessar as informações do grupo de usuários arbitrários, a sugestão @tiagoinu de usar os cmdlets do Quest AD é o melhor caminho a percorrer.
fonte
Primeiro, importe o módulo activeedirectory:
Em seguida, emita este comando:
Isso exibirá os membros do grupo especificado.
fonte
Não há necessidade de scripts longos quando é um liner simples.
Comando QUEST
Comando do MS AD
Acho que o cmd do MS AD é mais rápido, mas algumas pessoas gostam mais do Quest.
Steve
fonte
Get-Member não é para obter associação ao grupo de usuários. Se você deseja obter uma lista de grupos aos quais um usuário pertence no sistema local, é possível:
Na consulta acima, substitua DemoUser1 pelo nome de usuário desejado e o DomainName pelo nome do computador local ou nome de domínio.
fonte
Usar:
Isso canaliza a saída do comando em um arquivo CSV .
fonte
Isso deve fornecer os detalhes para o usuário atual. PowerShell não é necessário.
whoami /groups
fonte
É apenas uma linha:
fim do :)
fonte
select -expandproperty memberof
tornará a saída um pouco mais legível / útil.Eu escrevi uma função do PowerShell chamada Get-ADPrincipalGroupMembershipRecursive. Ele aceita o DSN de uma conta de usuário, computador, grupo ou serviço. Ele recupera uma lista inicial de grupos do atributo memberOf da conta e verifica recursivamente as associações desses grupos. Código abreviado está abaixo. O código fonte completo com comentários pode ser encontrado aqui .
fonte
O abaixo funciona bem:
Se você possui uma lista de usuários:
fonte
Get-QADUser -SamAccountName LoginID | % {$ _. MemberOf} | Get-QADGroup | selecione o nome
fonte
Não foi possível fazer o seguinte funcionar para um usuário específico:
Ele gerou um erro que eu não estava disposto a solucionar.
No entanto, criei uma solução diferente usando o Get-ADUser. Eu gosto um pouco melhor porque se você não souber o nome da conta, poderá obtê-lo com base em um curinga no nome real do usuário. Basta preencher PartOfUsersName e ele desaparece.
Adereços enormes para o schmeckendeugler e o 8DH por me levarem a esta solução. +1 para vocês dois.
fonte
Embora existam muitas respostas excelentes aqui, há uma que eu estava procurando pessoalmente que estava faltando. Depois que eu descobri - pensei em publicá-lo caso queira encontrá-lo mais tarde ou, na verdade, ele consegue ajudar outra pessoa em algum momento:
Uma segunda abordagem para apresentar isso é especificar as colunas individuais nas quais você está interessado, por exemplo:
Isso fornece a todos os grupos do AD aos quais o nome de usuário pertence - mas também apresenta todas as propriedades padrão de cada grupo formatadas como uma tabela.
O principal benefício que isso oferece é que você pode ver rapidamente quais são as listas de distribuição e quais são os grupos de segurança. Você pode ver rapidamente que são universais, que são DomainLocal e que são globais.
Por que você se importaria com este último pedaço?
fonte
Altere o valor de -SearchBase para refletir a UO da qual você precisa listar os usuários :)
Isso listará todos os usuários nessa UO e mostrará em quais grupos eles são membros.
fonte
Get-ADPrincipalGroupMembership USERLOGON | selecione o nome
fonte
fonte
Esta é a maneira mais simples de obter apenas os nomes:
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
Adicione uma instrução select para aparar a resposta ou obter todos os usuários em uma UO em todos os grupos dos quais são usuários:
foreach ($user in (get-aduser -SearchScope Subtree -SearchBase $oupath -filter * -Properties samaccountName, MemberOf | select samaccountName)){ Get-ADPrincipalGroupMembership $user.samaccountName | select name}
fonte
Para obtê-lo recursivo, você pode usar:
fonte
Quase todas as soluções acima usaram o
ActiveDirecotry
módulo, que pode não estar disponível por padrão na maioria dos casos.Eu usei o método abaixo. Um pouco indireto, mas serviu ao meu propósito.
Listar todos os grupos disponíveis
Get-WmiObject -Class Win32_Group
E, em seguida, liste os grupos aos quais o usuário pertence
[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
A comparação pode ser feita através da verificação através do
SIDs
. Isso funciona para o usuário conectado. Por favor corrija-me se eu estiver errado. Completamente novo no PowerShell, mas precisava fazer isso por um compromisso de trabalho.fonte
Com entrada do usuário e formatação de saída sofisticada:
fonte
Colocando isso aqui para referência futura. Estou no meio de uma migração de email. Preciso conhecer cada conta de usuário e seus respectivos membros do grupo, e também preciso conhecer cada grupo e seus respectivos membros.
Estou usando o bloco de código abaixo para gerar um CSV para a associação ao grupo de cada usuário.
O processo de exportação para os grupos e seus respectivos membros foi um pouco complicado, mas o abaixo funciona. Os nomes dos arquivos de saída incluem o tipo de grupo. Portanto, os grupos de distribuição de e-mail necessários são / devem ser os grupos Universal e Global Distribution. Eu devo ser capaz de excluir ou mover os arquivos TXT resultantes de que não preciso.
fonte
Estudar todos os comentários apresentados me deu um ponto de partida (obrigado por isso), mas me deixou com várias questões não resolvidas. Como resultado, aqui está a minha resposta. O snippet de código fornecido faz um pouco mais do que o solicitado, mas fornece informações úteis sobre depuração.
fonte
Quando você não tem privilégios para consultar outros grupos de membros, mas tem o privilégio de consultar os membros do grupo, pode fazer o seguinte para criar um mapa de qual usuário tem acesso a quais grupos.
fonte