2

User::pwent を使用して、Perl でシステム ユーザーのフル ネームを取得しています。

require User::pwent;
my $full_name = (User::pwent::getpwnam(getlogin)->gecos)[0];

ただし、getpwnamWindows Perl には実装されていません。Windows でユーザーのフル ネームを取得する別の方法は何ですか? 利用可能ですか?

4

1 に答える 1

4

突っついた、私が見つけることができる最高のものは使用することWin32API::Net::GetUserInfo()です:

require Win32API::Net;
Win32API::Net::UserGetInfo( '', $self->sysuser, 10, my $info = {} );
my $full_name = $info->{fullName};

ただし、動作することを確認するために、いくつかのWindowsボックスで実行する必要があります。


更新:ユーザー情報レベル10で動作することが確認されました:

> perl -MWin32API::Net -E "Win32API::Net::UserGetInfo('',Win32::LoginName(), 10, my $info = {} ); say $info->{fullName}"
Bartholomew Simpson

1011が文書化されているように機能しない理由はわかりませんが、これで十分です。

于 2012-08-22T21:27:29.340 に答える