Python: Получить авторизованные группы пользователей - PullRequest
0 голосов
/ 31 марта 2020

Я пишу программу на python, и в моей программе мне нужно получить вошедших в систему пользователей связанные группы в Windows, а затем записать их в файл для дальнейшего использования.

Кому Для этого я сделал небольшую функцию, которая выполняет whoami /groups в powershell, а затем возвращает результат. К сожалению, этот метод возвращает данные очень, очень уродливым и грязным способом, и из-за этого я действительно не могу его использовать.

Функция:

result = "Couldn't Execute Powershell Command ( Computer Runs In Linux )"
    try:
        process = subprocess.Popen(["powershell", "whoami /groups"], stdout=subprocess.PIPE)
        result = process.communicate()[0]
    except OSError:
        pass
    return result

Вывод выглядит так в file:

b'\r\nGROUP INFORMATION\r\n-----------------\r\n\r\nGroup Name                                            Type             SID          Attributes                                        \r\n===================================================== ================ ============ ==================================================\r\nEveryone                                              Well-known group S-1-1-0      Mandatory group, Enabled by default, Enabled group\r\nNT AUTHORITY\\??\x87\x99\x81\x85\x8f \x8e\x97\x85\x8e\x89 \x85\x87\x81\x98 \x81\x97\x81\x85\x96\x9a Administrators Well-known group S-1-5-114    Group used for deny only                          \r\nBUILTIN\\Administrators                                Alias            S-1-5-32-544 Group used for deny only                          \r\nBUILTIN\\Performance Log Users                         Alias            S-1-5-32-559 Mandatory group, Enabled by default, Enabled group\r\nBUILTIN\\Users                                         Alias            S-1-5-32-545 Mandatory group, Enabled by default, Enabled group\r\nNT AUTHORITY\\INTERACTIVE                              Well-known group S-1-5-4      Mandatory group, Enabled by default, Enabled group\r\nCONSOLE LOGON                                         Well-known group S-1-2-1      Mandatory group, Enabled by default, Enabled group\r\nNT AUTHORITY\\Authenticated Users                      Well-known group S-1-5-11     Mandatory group, Enabled by default, Enabled group\r\nNT AUTHORITY\\This Organization                        Well-known group S-1-5-15     Mandatory group, Enabled by default, Enabled group\r\nNT AUTHORITY\\??\x87\x99\x81\x85\x8f \x8e\x97\x85\x8e\x89                            Well-known group S-1-5-113    Mandatory group, Enabled by default, Enabled group\r\nLOCAL                                                 Well-known group S-1-2-0      Mandatory group, Enabled by default, Enabled group\r\nNT AUTHORITY\\NTLM Authentication                      Well-known group S-1-5-64-10  Mandatory group, Enabled by default, Enabled group\r\nMandatory Label\\Medium Mandatory Level                Label            S-1-16-8192                                                    \r\n'

Я искал в сети другое решение, но мне не удалось найти решение, которое работает в windows. (К сожалению, только в linux, используя библиотеку grp)

Есть ли способ найти в настоящий момент вошедшие в систему группы, связанные с пользователем, способом, подобным этому?

user groups: 
group1 
group2
group3
ect...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...