[Samba] python: listing samba shares

Ricardo Jorge rvelhote at gmail.com
Sun Aug 16 11:58:29 MDT 2009


Just try using the regular python os.listdir()

Use this code:

.....

        ctr = srvsvc.NetShareInfoCtr()
        shares = conn.NetShareEnumAll(u'localhost', ctr, 0, 0)

        print "\n\n============"
        print "There are " + str(shares[0].ctr.count) + " shares"
        print "============\n"

        for i in range(0, shares[0].ctr.count):
                share_info = info = conn.NetShareGetInfo(u'localhost',
shares[0].ctr.array[i].name, 2)
                print share_info.name + "\t" + share_info.path + "\t "
+ share_info.comment

                if len(share_info.path) > 0:
                        try:
                                print os.listdir(share_info.path)
                        except:
                                pass

        print "\n\n"

.....

Just note that share_info.path is returning the path name "windows
style" (c:\blabla) so the dir listing will (most likely) fail. You'll
have to convert this if required.



On Sun, Aug 16, 2009 at 6:25 PM, Igor Katson<descentspb at gmail.com> wrote:
> Thanks a lot! And what about listing the share's contents with python?
>
> Ricardo Jorge wrote:
>>
>> Hi,
>>
>> There was a line missing from source4/librpc/config.mk and it wasn't
>> building the Python module.
>>
>> Here is a patch if you can apply it:
>>
>>
>> I don't know how it will work for you because of your server
>> configuration. My Samba4 server is just for coding so it's pretty much
>> all default and local.
>>
>>
>>
>>
>> On Sun, Aug 16, 2009 at 5:08 PM, Ricardo Jorge<rvelhote at gmail.com> wrote:
>>
>>>
>>> Hi,
>>>
>>> I was investigating this and I believe there is actually a way with
>>> Python but the problem is that the Python module with the binding is
>>> not being compiled (sorry but I have no idea why).
>>>
>>> There should be a module called samba.dcerpc.srvsvc.
>>>
>>> If you look at librpc/gen_ndr/py_srvsvc.c you will find
>>> NetShareEnumAll which binds to the same function that's called when -L
>>> is used in smbclient.
>>>
>>> Maybe it's something with the make file?
>>>
>>>
>>>
>>> On Sun, Aug 16, 2009 at 4:36 PM, Igor Katson<descentspb at gmail.com> wrote:
>>>
>>>>
>>>> Helmut Hullen wrote:
>>>>
>>>>>
>>>>> Hallo, Igor,
>>>>>
>>>>> Du meintest am 16.08.09:
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> Is it possible to list samba shares and their contents of a
>>>>>> particular host? --
>>>>>>
>>>>>>
>>>>>
>>>>> Shell:
>>>>>
>>>>>       smbclient -N -L $particular_host
>>>>>
>>>>> shows first all shares of that particular host and then some other
>>>>>  stuff.
>>>>> Perhaps you filter some output depending on the key word "Disk"  (or
>>>>> "Printer").
>>>>>
>>>>> Contents: "that depends".
>>>>> You must have some rights.
>>>>>
>>>>> Viele Gruesse!
>>>>> Helmut
>>>>>
>>>>>
>>>>
>>>> Thanks.
>>>> Yes, I know of that shell command, but I would like to do that directly
>>>> from
>>>> python for more flexibility, control and convenience.
>>>> --
>>>> To unsubscribe from this list go to the following URL and read the
>>>> instructions:  https://lists.samba.org/mailman/options/samba
>>>>
>>>>
>
>


More information about the samba mailing list