Lista de saída de grupos de usuários

7

Embora seja fácil no Linux, não é tão fácil no Windows pelo que consegui reunir até agora. Eu encontrei o comando que meio que faz o que eu quero, que é:

net user username /domain

No entanto, desejo remover todos os dados, exceto a lista dos grupos. Acho que findstr pode ser a resposta, mas não tenho certeza de como usar isso para fazer isso. Essencialmente, eu acho que o script faria algo assim (a menos que haja um comando mais específico que seria fabuloso):

net user username /domain > temp.txt
findstr (or some other command) file.txt > groups.txt
del temp.txt

A saída dos dados seria uma lista como esta:

grupo1; group2; group3

Agora, eu poderia estar lidando com isso de uma maneira complicada, então, como eu mencionei, se há um comando que pode gerar APENAS grupos de segurança de um usuário que seriam fantásticos.

    
por Smitty 07.10.2011 / 07:17

3 respostas

2
dsquery user -name "My Full Name" | dsget user -memberof | dsget group -samid

Eu achei isso muito bonito e me deu o que eu estava procurando, caso alguém estivesse curioso! :)

    
por 22.10.2011 / 01:58
3

Use o PowerShell!

$user = [wmi] "Win32_UserAccount.Name='JohnDoe',Domain='YourDomainName'"
$user.GetRelated('Win32_Group')

ou apenas para nomes de grupos:

$user = [wmi] "Win32_UserAccount.Name='JohnDoe',Domain='YourDomainName'"
$user.GetRelated('Win32_Group') | Select Name

link

    
por 08.10.2011 / 19:31
2

Hmm.

net user paul /domain | find "Global Group memberships"

Dará a você os grupos, mas se você não quiser o cabeçalho, precisará de algo mais envolvido:

for /f "tokens=4*" %f in ('net user paul /domain ^| find "Global Group memberships"') do echo %f

Então,% f contém os grupos.

    
por 07.10.2011 / 09:29