Win32 question: Problem with NetLocalGroupDelMembers
Mark Hammond
mhammond at skippinet.com.au
Fri Sep 6 23:10:57 EDT 2002
Marten Hedman wrote:
> Hi,
>
> Im writing a script for administrating local user groups on a remote
> WinNT computer, using Python 2.2.1 and the Win32 extensions, build 148.
> Getting information about users in a group and adding users to a group
> works fine, but when I try to delete users from a group I get an
> exception, 'TypeError: The object can not be converted to a Unicode
> object'. An interactive example session looks like this:
This is a bug in the documentation.
> >>> win32net.NetLocalGroupDelMembers(server, group, mem)
> Traceback (most recent call last):
> File "<interactive input>", line 1, in ?
> TypeError: The object can not be converted to a Unicode object
This function expects a list of string usernames, *not*
PyLOCALGROUP_INFO structures. Thus, the following will work:
names = [ m['domainandname'] for m in mem ]
win32net.NetLocalGroupDelMembers(server, group, names)
I added the following function to win32netdemo.py.
Mark.
def LocalGroup(uname=None):
"Creates a local group, adds some members, deletes them, then
removes the group"
level = 3
if uname is None: uname=win32api.GetUserName()
if uname.find("\\")<0:
uname = win32api.GetDomainName() + "\\" + uname
group = 'python_test_group'
# delete the group if it already exists
try:
win32net.NetLocalGroupDel(server, group)
print "WARNING: existing local group '%s' has been deleted."
except win32net.error:
pass
group_data = {'name': group}
win32net.NetLocalGroupAdd(server, 1, group_data)
try:
u={'domainandname': uname}
win32net.NetLocalGroupAddMembers(server, group, level, [u])
mem, tot, res = win32net.NetLocalGroupGetMembers(server, group,
level)
print "members are", mem
if mem[0]['domainandname'] != uname:
print "ERROR: LocalGroup just added %s, but members are %r"
% (uname, mem)
# Convert the list of dicts to a list of strings.
win32net.NetLocalGroupDelMembers(server, group,
[m['domainandname'] for m in mem])
finally:
win32net.NetLocalGroupDel(server, group)
print "Created a local group, added and removed members, then
deleted the group"
More information about the Python-list
mailing list