遇到简单的简单任务问题...查找不属于本地管理员组的用户并将其删除...
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函数。必须有我丢失的东西,但我无法理解。
答案 0 :(得分:0)
好的...
这已被推翻。答案是使用子进程或某些方法来调用命令行语句,命令行语句是......
net localgroup administrators "DOMAIN\Domain Users" /delete
我刚刚在cmd提示符下执行了该命令,并且运行成功。经典。
答案 1 :(得分:0)
我很清楚这篇文章已经过时了,但它是搜索的最佳结果,我讨厌不回答问题的答案。所以,答案是:
win32net.NetLocalGroupDelMembers期望它的第三个参数的字符串列表 例如win32net.NetLocalGroupDelMembers(计算机,“管理员”,[r“DOMAIN \域用户”])