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

0 投票
2 回答
1027 浏览
提问于 2025-04-17 12:08

我在处理一个简单的任务时遇到了问题……我要找出不应该在本地管理员组里的用户,并把他们移除……

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这个函数了。我一定是漏掉了什么,但我就是搞不明白。

2 个回答

0

好的...

这个问题想得有点复杂了。其实答案就是用一个叫做“subprocess”的东西,或者其他方法来执行命令行的指令,具体的命令行指令是...

net localgroup administrators "DOMAIN\Domain Users" /delete

我刚刚在命令提示符里输入了这个命令,它成功运行了。经典。

0

我知道这个帖子有点老了,但它在搜索结果中排第一,我不喜欢那些没有回答问题的回复。所以,我来给出答案:

win32net.NetLocalGroupDelMembers 这个函数的第三个参数需要一个字符串列表,比如说:win32net.NetLocalGroupDelMembers(computer, "Administrators", [r"DOMAIN\Domain Users"])

撰写回答