http://www.perlmonks.org?node_id=1025881

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks.

I need to check connection to a particular Windows Share using the windows Net Use command.The output of Net use command is as follows:

New connections will be remembered. Status Local Remote Network ---------------------------------------------------------------------- +--------- OK \\10.81.253.70\G$ Microsoft Windows Net +work Disconnected \\10.81.253.140\IPC$ Microsoft Windows Net +work The command completed successfully.

Now to check connection for IP \\10.81.253.70\G$ , I wrote the following code

$inputDirectory="\\\\10.81.253.70\\G\$"; my $c = `net use`; my $unc = 0; my $h; my @a=split(' ',$c); foreach $h (@a) { if ($h eq 'OK' || $h eq 'Disconnected') { $status =$h; $temp=1; } elsif($temp == 1) { my $remote=$h; if($status eq 'OK' && $remote eq $inputDirectory) { $unc=1; } $temp = 0; } } if ($unc == 1) { print "UNC is Connected"; } else { print "UNC is Disconnected"; }

This works fine BUT if the share name is "\\10.81.253.70\file data\query files" than is fails because i am splitting the output of net use command on every space encountered so if the given share name contains spaces in its name than it breakes the share name on spaces , thus defeating my purpose. Please provide some help or tell how can i check connectivity to shares in windows through perl?