0

我正在尝试将一些我必须使用 Python 的 Perl 脚本重新编码(并对其进行扩展)。使用 Perl,使用 Net 库,我可以提供主机名并获取 Windows 用户名。下面是一段 Perl 代码:

my $NetBios = Net::NBName->new;
my $nbName = $NetBios->node_status($hostname);
if ( $nbName ) {
    if ( $nbName->as_string =~ /^(\S+)\s+/ ) {
        ($user = $1) =~ tr/A-Z/a-z/;
    }
}

我想在 Python 中做同样的事情,但我似乎找不到合适的库来做这件事。有没有等效的方法?

对于后台,我获取连接到终端服务器端口的用户的主机名。由此,如果主机名中包含“dhcp”或“vpn”,我想使用 NetBIOS 并尝试获取该系统(可能是 PC)的用户名。

4

1 回答 1

0

虽然 afaik 你不能给它一个域

 import getpass
 print getpass.getuser()

平台 uname 也可能有用

 import platform
 platform.uname()

我在 activestate 找到了以下内容(尽管我不能保证它的作用)

http://code.activestate.com/recipes/66314-get-user-info-on-windows-for-current-user/

import win32api
import win32net
import win32netcon
def UserGetInfo():
    dc=win32net.NetServerEnum(None,100,win32netcon.SV_TYPE_DOMAIN_CTRL)
    user=win32api.GetUserName()
    if dc[0]:
        dcname=dc[0][0]['name']
        return win32net.NetUserGetInfo("\\\\"+dcname,user,1)
    else:
        return win32net.NetUserGetInfo(None,user,1)
if __name__=="__main__":
    print UserGetInfo()
于 2012-09-06T20:05:08.357 回答