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! :)
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.
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
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.