0

私が持っているいくつかのPerlスクリプトをPythonに再コーディングしようとしています(そしてそれを拡張します)。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

私の知る限り、ドメインを渡すことはできません

 import getpass
 print getpass.getuser()

プラットフォーム uname も役立つ場合があります

 import platform
 platform.uname()

私はアクティブステートで次のことを見つけました(ただし、それが何をするかについては保証できません)

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 に答える