listing network shares with python

13,723

Solution 1

May be pysmb can help

Solution 2

For anyone still wondering how to list network shares at the top level on windows, you can use the win32net module:

import win32net
shares, _, _ = win32net.NetShareEnum('remotehost',0)

The integer controls the type of information returned but if you just want a list of the shares then 0 will do.

This works where os.listdir('\\remotehost') fails as '\\remotehost' isn't a real folder although windows can display it like one.

Solution 3

I'm sure the OP has forgotten about this question by now, but here's (maybe) an explanation:

http://www.python.org/doc/faq/windows/#why-does-os-path-isdir-fail-on-nt-shared-directories

In case anybody else happens along this problem, like I did.

Share:
13,723
Gearoid Murphy
Author by

Gearoid Murphy

https://www.linkedin.com/in/gearoid-murphy-a6003983/

Updated on June 14, 2022

Comments

  • Gearoid Murphy
    Gearoid Murphy almost 2 years

    if I explicitly attempt to list the contents of a shared directory on a remote host using python on a windows machine, the operation succeeds, for example, the following snippet works fine:

    os.listdir("\\\\remotehost\\share")
    

    However, if I attempt to list the network drives/directories available on the remote host, python fails, an example of which is shown in the following code snippet:

    os.listdir("\\\\remotehost")
    

    Is anyone aware of why this doesn't work?, any help/workaround is appreciated.