win32net无法从组中删除本地用户

时间:2012-02-01 17:41:13

标签: python winapi active-directory-group

遇到简单的简单任务问题...查找不属于本地管理员组的用户并将其删除...

import win32net


def BAD_DomainUsers(computer):
    x = win32net.NetLocalGroupGetMembers(computer,"Administrators", 2)
    for i in x[0]:
        if i["domainandname"] == r"DOMAIN\Domain Users":
            return True
    return False

def Remove_BadUsers(computer):
    win32net.NetLocalGroupDelMembers(computer, "Administrators", r"DOMAIN\Domain Users")

computer = "P04213"

if BAD_DomainUsers(computer):  Remove_BadUsers(computer)

这将返回错误:

    win32net.NetLocalGroupDelMembers(computer, "Administrators", r"DOMAIN\Domain Users")
pywintypes.error: (1387, 'NetLocalGroupDelMembers', 'A member could not be added to or removed from the local group because the member does not exist.')

但是当我枚举Administrators组时,确定DOMAIN \ Domain Users是一个成员......否则它不会调用Remove_BadUsers函数。必须有我丢失的东西,但我无法理解。

2 个答案:

答案 0 :(得分:0)

好的...

这已被推翻。答案是使用子进程或某些方法来调用命令行语句,命令行语句是......

net localgroup administrators "DOMAIN\Domain Users" /delete

我刚刚在cmd提示符下执行了该命令,并且运行成功。经典。

答案 1 :(得分:0)

我很清楚这篇文章已经过时了,但它是搜索的最佳结果,我讨厌不回答问题的答案。所以,答案是:

win32net.NetLocalGroupDelMembers期望它的第三个参数的字符串列表 例如win32net.NetLocalGroupDelMembers(计算机,“管理员”,[r“DOMAIN \域用户”])