in reply to (tye)Re: Acquiring NT Group RID's
in thread Acquiring NT Group RID's

Yea, I need the nice number version (i.e. 512 or 9090 or whatever -- I wish I could just look in /etc/group for this). I was just researching using Win32::GetGroups to grab an array of all of the groups. Then, with a test account, iterate through the groups, setting the user's primary group each loop, and pulling the USER_PRIMARY_GROUP_ID from the user. Something akin to:
use strict; use Win32::AdminMisc; my $user = "test_user"; my %hash,@groupList,$group; Win32::AdminMisc::GetGroups( "DOMAIN", GROUP_TYPE_GLOBAL, \@groupList) +; #iterate through groups foreach $group (@groupList) { #set the user's primary group Win32::AdminMisc::UserSetMiscAttributes('DOMAIN',$user,USER_PRIMAR +Y_GROUP => $group); #get user's attributes Win32::AdminMisc::UserGetMiscAttributes('WSOM',$user,\%hash); #print out group RID print $group. " has RID " . $hash{USER_PRIMARY_GROUP_ID}; }
Unfortunately, Win32::AdminMisc::UserSetMiscAttributes('DOMAIN',$user,USER_PRIMARY_GROUP => $group) does not exist. There is no USER_PRIMARY_GROUP; there is only USER_PRIMARY_GROUP_ID. So, to set a user's primary group, you need the group's RID beforehand.

Foiled Again,
Jeremy