I have a KiX vesion of this:
Code:
$Dom = @LDomain
$usr = 'guest'

$oUser = GetObject("WinNT://" + $Dom + "/"+ $usr + ",User" )
$RID = $oUser.Get("primaryGroupID")
$PriName = GetGroupNameFromRID($RID)
If Not @Error
'Primary group name: ' + $PriName
EndIf

Function GetGroupNameFromRID($RID)
Dim $oConnection,$oCommand,$oRootDSE
$oConnection = CreateObject("ADODB.Connection")
$oConnection.Open("Provider=ADsDSOObject;")
$oCommand = CreateObject("ADODB.Command")
$oCommand.ActiveConnection = $oConnection
$oRootDSE = GetObject("LDAP://RootDSE")
$oCommand.CommandText = "<LDAP://" + $oRootDSE.Get("defaultNamingContext") + ">;(objectCategory=Group);Name,primaryGroupToken;subtree"
$oRecSet = $oCommand.Execute
While Not ($oRecSet.EOF Or $GetGroupNameFromRID)
If $oRecSet.Fields("primaryGroupToken") = $RID
$GetGroupNameFromRID = CStr($oRecSet.Fields("Name"))
EndIf
$oRecSet.MoveNext
Loop
$oConnection.Close
Exit VarType($GetGroupNameFromRID) = 0
EndFunction



-Erik