Eu sou novo no PowerShell, mas tenho lido manuais e praticado um pouco. Meu objetivo é listar todos os usuários em todos os grupos de segurança no caminho especificado. Eu encontrei o caminho para fazê-lo:
get-adgroup -Filter * -SearchBase "OU=Groups,DC=corp,DC=ourcompany,DC=Com" | %{Get-ADGroupMember $_.name} | ft name
Mas o problema é que não vejo o nome do grupo. Tudo o que recebo é um monte de usuários. Seria bom se alguém me dissesse como exibir o nome do grupo antes que todos os membros desse grupo sejam listados. Obrigado.
active-directory
powershell
groups
Alec T
fonte
fonte
% { "GroupName: $($_.Name)"; "==========" ; Get-ADGroupMember $_ } | ft name
, também pode obter o que deseja. A resposta de Ryan ainda é melhor, mas essa é uma linha única, se você quiser.Respostas:
Gimme the codes!
poderes, ativar!O ponto é que, tome o seu tempo e divida-o em etapas. Sei que é divertido tentar fazer com que tudo e a pia da cozinha se encaixem em uma linha com o Powershell, mas isso não é de forma alguma necessário.
Algumas notas:
Você não precisa fazer isso
Get-ADGroupMember
se coletar a propriedade Members noGet-ADGroup
Cmdlet inicial . O bom disso é que ele reduz pela metade a quantidade de chamadas que você deve fazer para o AD, o que deve acelerar o script e diminuir a carga do controlador de domínio.$ G.Members exibirá todos os membros do grupo $ G ... no Powershell 3. No Powershell 2, você ainda precisará colocar outro Foreach dentro do Foreach para enumerar os membros do grupo. ( Yo dawg, eu ouvi você como loops ... )
Eu uso
Write-Host
aqui, que é nojento. Você nunca deve realmente usarWrite-Host
. Em vez disso, você deve criar e produzir objetos, não texto, mas esse foi um outro tópico e fiquei com preguiça de fazer isso para esta resposta.fonte
Aqui está uma solução muito melhor. Isso colocará tudo em um CSV de 3 colunas com o nome do grupo, o nome de usuário e o nome da conta sam. Muito mais fácil descobrir em qual grupo alguém está quando há 400 usuários em um grupo, pois você não precisa rolar.
fonte
Eu tive que adicionar
.name
depois$group
para fazer isso funcionar para mim.fonte
Se você se deparar com o
Size Limit
problema com grupos contendo mais de 5000 membros, poderá alterar a linha a seguir:fonte
Aqui está um script que exporta todos os grupos em uma UO para um arquivo separado para cada grupo com o nome e a descrição do grupo. Se alguém quiser isso ..
fonte