python: 如何列举本地Windows用户组成员资格

2 投票
1 回答
4156 浏览
提问于 2025-04-16 17:53

我需要测试一些指定账户的组成员资格。

比如说,账户'X',它是否是组'A'和'B'的成员。

这些账户是在2003服务器上的本地Windows账户,不是域控制器(DC),而且也不连接到域控制器。

这是我在得到正确指引后形成的答案。

import win32net
import platform
import getpass

#Get current hostname and username
sHostname = platform.uname()[1]
sUsername = getpass.getuser()

#Define account memberships to test as false
memberAdmin = False
memberORA_DBA = False

for groups in win32net.NetUserGetLocalGroups(sHostname,sUsername):
    #If membership present, set to true
    if groups == 'Administrators':
        print "member of admin"
        memberAdmin = True

    if groups == 'ORA_DBA':
        print "member of ORA_DBA"
        memberORA_DBA = True

#if all true pass, else fail
if (memberAdmin == True) and (memberORA_DBA == True):
    print "membership is good"
else:
    print "current account does not have the proper group membership"

1 个回答

2

你需要使用 Python Win32 扩展 来和 Windows 系统进行互动。我觉得 win32net 模块中的一些方法可以帮助你获取所需的信息。

撰写回答