Как получить информацию о пользователе и группе в 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* и друзей.