Как получить информацию о пользователе и группе в Perl в Windows?

В Perl есть несколько встроенных функций для доступа к /etc/passwd в системах Unix (и в других местах, когда они поддерживаются) для получения информации о пользователях и группах. Например,

my $name = getpwuid($uid);

вернет имя пользователя с указанным идентификатором пользователя или undef, если такого пользователя нет.

Если Perl-скрипт должен быть переносимым и запускаться в Unices и Windows, как получить доступ к информации о пользователях и группах? ActivePerl поддерживает модули User::grent и User::pwent, которые обеспечивают доступ к /etc/passwd на местах - даже в Windows. Любопытно, что они не поддерживают встроенные функции getpw* и getgr*. Какие еще есть альтернативы?

2 ответа

Вы могли бы использовать Win32::NetAdmin модуль.

UserGetAttributes а также GroupIsMember похоже, они делают то, что вам нужно.

Как ни странно, сборка Interl для Perl, поставляемая с Microsoft Services for Unix, поддерживает getpw* и друзей.

Другие вопросы по тегам