User::pwent を使用して、Perl でシステム ユーザーのフル ネームを取得しています。
require User::pwent;
my $full_name = (User::pwent::getpwnam(getlogin)->gecos)[0];
ただし、getpwnam
Windows Perl には実装されていません。Windows でユーザーのフル ネームを取得する別の方法は何ですか? 利用可能ですか?
User::pwent を使用して、Perl でシステム ユーザーのフル ネームを取得しています。
require User::pwent;
my $full_name = (User::pwent::getpwnam(getlogin)->gecos)[0];
ただし、getpwnam
Windows Perl には実装されていません。Windows でユーザーのフル ネームを取得する別の方法は何ですか? 利用可能ですか?
突っついた、私が見つけることができる最高のものは使用すること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が文書化されているように機能しない理由はわかりませんが、これで十分です。