Спасибо
RXL, толкнул в нужном направлении.
Вот вроде бы то что мне нужно:
http://search.cpan.org/~jdb/libwin32-0.26/NetResource/NetResource.pmДобавлено через 7 дней, 1 час, 16 минут и 4 секунды:PooH, ты прав. Можно действительно рулить
net view.
Получаем все рабочие группы:
net view /domainПолучаем все машины в рабочей группе:
net view /domain:[имя_рабочей_группы]Получаем все доступные ресурсы на машине:
net view [\\имя_машины]Спасибо всем.
Добавлено через 6 дней, 23 часа и 37 минут:Здесь такая жо.., у меня уже крышу начинает сносить от этого
Есть такой скрипт:
#!perl
use strict;
use Win32::NetResource qw(:DEFAULT GetSharedResources);
my (@domain,@komp);
#
# получаем все рабочие группы в сети
#
do
{
my $list = `net view /domain`;
my @temp = split /\n/, $list;
push @domain, $temp[$_] for ( 3 .. $#temp - 1 );
};
#
# вот этот код отлично показывает все рабочие группы
#
#foreach my $temp (@domain) { print "$temp\n"; }
#
#
# Вот здесь самое интересное.......
# Находим все открытые папки на машинах
#
foreach my $temp (@domain) {
if( GetSharedResources(my $resources, RESOURCETYPE_ANY,{ RemoteName => $temp }) ) {
foreach my $href (@$resources) {
push @komp, $href->{RemoteName} if $href->{Usage} == ESOURCEUSAGE_CONNECTABLE;
}
}
}
#
# а вот этот код уже не хочет показывать открытые папки
#
#foreach my $temp (@domain) { print "$temp\n"; }
#
Все проблемы вот в этом месте:
GetSharedResources(my $resources, RESOURCETYPE_ANY,{ RemoteName => $temp })
Я для эксперемента написал вот так:
...
...
...
@domain = ( "WORK1", "WORK2" );
foreach my $temp (@domain) {
if( GetSharedResources(my $resources, RESOURCETYPE_ANY,{ RemoteName => $temp }) ) {
...
...
...
И все работает нормально.
Как мне лечить эту беду, может кто знает ? ? ?