Python プログラミング

イマドキのWindowsファイルファイルサーバーへpysmbでアクセス

イマドキ(2022/07現在) 使えるサンプルソース置いておきます。

ポートは445

use_ntlm_v2=True

is_direct_tcp=True

がポイントだと思う。

#SMBConnection 系定数
SMBUSER = "ユーザー"
SMBPASS = "パスワード"
RMHOST = "アクセスホスト"
DOMAIN = "ドメイン"
RMADDR = "xx.xx.xx.xx"
RMPORT = 445

def main():

    #SMBConnection
    conn = SMBConnection(
        SMBUSER,
        SMBPASS,
        platform.uname().node,
        RMHOST,
        domain=DOMAIN,
        use_ntlm_v2=True,
        is_direct_tcp=True)

    conn.connect(RMADDR, RMPORT)
    print(conn.echo('echo success'))

思考の経緯(失敗談。苦労したところ)

元々のきっかけとして、とあるファイルサーバーのファイル存在チェック的な作業をログインしたPCでPythonちょいプログラム作って実施していた。

import os.path
os.path.isfile(path)

このようなプログラムだったのだが、これを常時起動している端末のタスクスケジューラ実行で自動化したところ

SMBレベルでログインしていないと使えない

という事象に苦しむことになったのだ。

pysmbライブラリの、SMBConnectionを使えばログオフ状態で実現できそうだが

意外と情報が少ないのと、ポートや設定を試行錯誤することに至った。

現時点で使えるサンプルを公開させて頂きました。

誰かのお役に立てたら嬉しいです。

-Python, プログラミング
-,