win32net无法从组中删除本地用户
我在处理一个简单的任务时遇到了问题……我要找出不应该在本地管理员组里的用户,并把他们移除……
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"])