win32net не может удалить локального пользователя из группы - PullRequest
0 голосов
/ 01 февраля 2012

Возникла проблема с простой простой задачей ... найдите пользователей, которые не входят в группу локальных администраторов, и удалите их ...

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 голосов
/ 14 ноября 2013

Мне хорошо известно, что это сообщение старое, но это лучший результат поиска, и я ненавижу ответы, которые не отвечают на поставленный вопрос. Итак, вот ответ:

win32net.NetLocalGroupDelMembers ожидает список строк для своего третьего аргумента например win32net.NetLocalGroupDelMembers (компьютер, «Администраторы», [r «ДОМЕН \ Пользователи домена»])

0 голосов
/ 02 февраля 2012

Хорошо ...

Это было продуманно.Ответ заключается в использовании подпроцесса или какого-либо метода для вызова оператора командной строки, а оператор командной строки ...

net localgroup administrators "DOMAIN\Domain Users" /delete

Я только что выполнил команду в командной строке cmd, и она была успешно выполнена.Классический.

...