The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Win32::NetResource - manage network resources in perl

SYNOPSIS

    use Win32::NetResource;

    $ShareInfo = {
                    'path' => "C:\\MyShareDir",
                    'netname' => "MyShare",
                    'remark' => "It is good to share",
                    'passwd' => "",
                    'current-users' =>0,
                    'permissions' => 0,
                    'maxusers' => -1,
                    'type'  => 0,
                    };
    
    Win32::NetResource::NetShareAdd( $ShareInfo,$parm )
        or die "unable to add share";

DESCRIPTION

This module offers control over the network resources of Win32.Disks, printers etc can be shared over a network.

DATA TYPES

There are two main data types required to control network resources. In Perl these are represented by hash types.

%NETRESOURCE
        KEY                    VALUE
        
        'Scope'         =>  Scope of an Enumeration
                            RESOURCE_CONNECTED,
                            RESOURCE_GLOBALNET,
                            RESOURCE_REMEMBERED.
        
        'Type'          =>  The type of resource to Enum
                            RESOURCETYPE_ANY    All resources
                            RESOURCETYPE_DISK    Disk resources
                            RESOURCETYPE_PRINT    Print resources
        
        'DisplayType'   =>  The way the resource should be displayed.
                            RESOURCEDISPLAYTYPE_DOMAIN    
                            The object should be displayed as a domain.
                            RESOURCEDISPLAYTYPE_GENERIC    
                            The method used to display the object does not matter.
                            RESOURCEDISPLAYTYPE_SERVER    
                            The object should be displayed as a server.
                            RESOURCEDISPLAYTYPE_SHARE    
                            The object should be displayed as a sharepoint.
        
        'Usage'         =>  Specifies the Resources usage:
                            RESOURCEUSAGE_CONNECTABLE
                            RESOURCEUSAGE_CONTAINER.
        
        'LocalName'     =>  Name of the local device the resource is 
                            connected to.
        
        'RemoteName'    =>  The network name of the resource.
        
        'Comment'       =>  A string comment.
        
        'Provider'      =>  Name of the provider of the resource.
%SHARE_INFO

This hash represents the SHARE_INFO_502 struct.

            KEY                    VALUE
            'netname'        =>    Name of the share.
            'type'           =>    type of share.
            'remark'         =>    A string comment.
            'permissions'    =>    Permissions value
            'maxusers'       =>    the max # of users.
            'current-users'  =>    the current # of users.
            'path'           =>    The path of the share.
            'passwd'         =>    A password if one is req'd

FUNCTIONS

NOTE

All of the functions return FALSE (0) if they fail.

GetSharedResources(\@Resources,dwType)

Creates a list in @Resources of %NETRESOURCE hash references.

AddConnection(\%NETRESOURCE,$Password,$UserName,$Connection)

Makes a connection to a network resource specified by %NETRESOURCE

CancelConnection($Name,$Connection,$Force)

Cancels a connection to a network resource connected to local device $name.$Connection is either 1 - persistent connection or 0, non-persistent.

WNetGetLastError($ErrorCode,$Description,$Name)

Gets the Extended Network Error.

GetError( $ErrorCode )

Gets the last Error for a Win32::NetResource call.

GetUNCName( $UNCName, $LocalPath );

Returns the UNC name of the disk share connected to $LocalPath in $UNCName.

NOTE

$servername is optional for all the calls below. (if not given the local machine is assumed.)

NetShareAdd(\%SHARE,$parm_err,$servername = NULL )

Add a share for sharing.

NetShareCheck($device,$type,$servername = NULL )

Check if a share is available for connection.

NetShareDel( $netname, $servername = NULL )

Remove a share from a machines list of shares.

NetShareGetInfo( $netname, \%SHARE,$servername=NULL )

Get the %SHARE_INFO information about the share $netname on the server $servername.

NetShareSetInfo( $netname,\%SHARE,$parm_err,$servername=NULL)

Set the information for share $netname.

AUTHOR

Jesse Dougherty for Hip Communications. Gurusamy Sarathy <gsar@umich.edu> had to clean up the horrendous code and the bugs.

4 POD Errors

The following errors were encountered while parsing the POD:

Around line 107:

'=item' outside of any '=over'

Around line 125:

You forgot a '=back' before '=head1'

Around line 158:

You forgot a '=back' before '=head2'

Around line 163:

'=item' outside of any '=over'