Code Library
Home Submit Free Hosting Link To Us Contacts

Batch List shared netnames on a server

Batch List shared netnames on a server Batch Batch List shared netnames on a server Download (.zip)



/* List shared netnames on a server */

call RxFuncAdd 'LoadLsRxutFuncs', 'LSRXUT', 'LoadLsRxutFuncs'
call LoadLsRxutFuncs

NETSERVER = 160
NETSHARE  = 190
SrvType   = -1  /* All servers */

parse upper arg SrvName DomainName dummy "/"pause
if SrvName = '' then call Syntax
if left( SrvName, 2 ) <> '\\' then do
        DomainName = SrvName
        SrvName    = ''
end
if left( pause, 1 ) = "P" then do
        pause = 1
        parse value SysTextScreenSize( ) with rows cols
end
else do
        pause = 0
end

myRc = NetEnumerate(NETSERVER, 'serverList', SrvName, SrvType, DomainName)
if myRc <> '0' then do
        say 'Got error from NetEnumerate() ' myRc
        exit 9
end

if serverList.0 = 0 then do
        say 'Domain controller was not found'
        exit 0
end

call SysCls
say
say 'Number of servers found: ' serverList.0

k = 0
do i=1 to serverList.0
        say
        say
        say serverList.i
        myRc = NetEnumerate(NETSHARE, 'shareInfo', '\\'serverList.i)
        if myRc <> '0' then do
                say 'Got error from NetEnumerate() ' myRc
                exit 9
        end
        if shareInfo.1 = 0 then do
                say 'Server does not share a resource'
                exit 0
        end
        say 'Number of shared netnames: ' shareInfo.0
        say
        do j=1 to shareInfo.0
                myRc = NetGetInfo(NETSHARE, 'shareInfoX', '\\'serverList.i, shareInfo.j)
/*
                myRc = NetGetInfo(NETSHARE, 'shareInfoX', SrvName, shareInfo.j)
*/
                if myRc <> '0' then do
                        say 'Got error from NetGetInfo() ' myRc
                        exit 9
                end
                say
                say '    Network name        :  ' shareInfoX.netname
                say '    Share type          :  ' shareInfoX.type
                say '    Comment             :  ' shareInfoX.remark
                say '    Local resource path :  ' shareInfoX.path
                if pause = 1 then call PauseIfNeeded
        end
end
if k > 0 then call PauseIfNeeded 'Exit'
EXIT 0


PauseIfNeeded:
        param = strip( translate( arg( 1 ) ) )
        parse value SysCurPos( ) with x y
        k = k + 1
        if x > rows - 8 | param = 'EXIT' then do
                call SysCurPos rows - 3, 0
                say 'Press any key . . .'
                call SysCurState 'OFF'
                call SysGetKey 'NOECHO'
                if param <> "EXIT" then do
                        call SysCls
                        say
                        say 'Number of servers found: ' serverList.0
                        say
                        say
                        say serverList.i
                        say 'Number of shared netnames: ' shareInfo.0
                        say
                end
                k = 0
        end
return


Syntax: procedure
        say
        say 'Usage: NETSHARE [ \\server_name ] [ domain_name ] [ /Pause ]'
        say
        exit 1
return






Tatet