0

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

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.')

但是当我枚举管理员组时,确定 DOMAIN\Domain Users 是一个成员......否则它不会调用 Remove_BadUsers 函数。一定有一些我想念的东西,但我无法弄清楚。

4

2 回答 2

0

行...

这已经被过度考虑了。答案是使用子进程或某种方法来调用命令行语句,命令行语句是......

net localgroup administrators "DOMAIN\Domain Users" /delete

我只是在 cmd 提示符下执行了命令,它运行成功。经典的。

于 2012-02-02T12:46:00.127 回答
0

我很清楚这篇文章很旧,但它是搜索的最高结果,我讨厌不回答所提出问题的答案。所以,这里是答案:

win32net.NetLocalGroupDelMembers 需要一个字符串列表作为它的第三个参数,例如 win32net.NetLocalGroupDelMembers(computer, "Administrators", [r"DOMAIN\Domain Users"])

于 2013-11-14T13:56:47.070 回答