Pythonで共有フォルダをUNCパスでなくネットワークドライブの割り当てで指定する

Pythonで共有フォルダをUNCパスでなくネットワークドライブの割り当てで指定するという内容ですが、昔、Windows Server 2012 R2に共有フォルダを作成して、別のサーバからバッチでそのUNCパスを指定したところ、うまく動作しない事象がありましたが、ネットワークドライブの割り当てで解決できました。

 

同様に、Pythonスクリプト内で、共有フォルダを絶対パスで指定したい場合は、ネットワークドライブの割り当てを行うことでうまく動作しました。

 

ちなみにネットワークドライブの割り当ては以下のようなコマンドで指定できます。

 

net use ドライブレター: \フォルダパス パスワード /user:ユーザアカウント

 

永続的に割り当てたい場合は、オプションを指定します。

 

そして、ネットワークドライブの割り当てができない場合は、以下の公式サイトの情報が参考になります。

 

 

10.1. os.path --- 共通のパス名操作

https://docs.python.org/ja/2.7/library/os.path.html

 

「これらの関数の多くは Windows の一律命名規則 (UNC パス名 ) を正しくサポートしていません。 splitunc() と ismount() は正しく UNC パス名を操作できます。」とあります。

 

その関数です。

 

os.path.splitunc(path)
パス名 path をペア (unc, rest) に分割します。ここで unc は (r'\\host\mount' のような) UNC マウントポイント、そして rest は (r'\path\file.ext' のような) パスの残りの部分です。ドライブレターを含むパスでは常に unc が空文字列になります。

利用できる環境: Windows

 

自宅の検証環境で実際に使えるかどうか検証してみようと思います。