pysmb OperationFailure, service 您所在的位置:网站首页 smb是什么东西 pysmb OperationFailure, service

pysmb OperationFailure, service

2024-04-13 04:19| 来源: 网络整理| 查看: 265

使用到pysmb库,就不可避免地被要求提供service_name

listPath()、retrieveFile()、storeFile()……

拿listPath()函数来说,凭直觉尝试一下:

listPath('server', 'shared_folder') listPath('\\\\server', '\\shared_folder') listPath('\\\\server\\shared_folder', '\\')

都以报错告终……(因为这里不会涉及server。)

函数说明

看来不能轻易蒙混过关了,还是认真啃函数说明吧:

service_name – the name of the shared folder for the *path*

path – path relative to the *service_name* where we are interested to learn about its files/sub-folders.

直译中文是:service_name是*path*的共享文件夹的名字,而path是需要读取的文件夹,是个相对路径。

共享文件夹的名字?

难道是这样:listPath('shared_folder', '\\shared_folder') ?

很遗憾,还是不对。

不过,这已经接近答案了。

主要的问题是,path是一个相对路径,相对shared folder的路径,应该是shared folder的下级路径。

所以正确的理解应该是:service_name就是共享文件夹名称,而path则是共享文件夹的相对路径(本身或下级)。

因此,listPath('shared_folder', '\\')或者listPath('shared_folder', ''),又或者listPath('shared_folder', 'sub_folder')都是OK的。

示例:

from smb.SMBConnection import SMBConnection host = '192.168.0.1' # 远程服务器IP username = 'administrator' # 远程服务器用户 password = 'Mon'sWork' my_name = 'Omega-PC' # 本机机器名 remote_name = 'M-86' # 远程服务器机器名 conn = SMBConnection(username, password, my_name, remote_name) conn.connect(host, 139) # 也有可能是445 # 列出共享文件夹SoftWare下的文件名、创建时间 for i in conn.listPath('SoftWare', '\\'): print(i.filename, i.create_time) service_name到底是什么东西?

广泛读了网上很多资料,service_name其实是相对于发布共享的机器而言的,

在发布共享机器上的命令行窗口运行net share,列示出来的共享名,都可以作为该参数的值(资源列不为空的部分)。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有