『ネットワークドライブ』のトラブル
今日のブログは、『ネットワークドライブ』のトラブル&解決手順を備忘録として残しておきます。
会社の共有フォルダにファイルを保存する場合に、パソコンのZドライブにファイルを保存して共有するという使い方があります。
この仕組みは、図にして表すと下記のようになります。
--------------------------------
[パソコン] [サーバー]
--------------------------------
Zドライブ --> Dataフォルダ
(ネットワークドライブ) (共有フォルダ)
(※ Zドライブというのは仮の話なので、X、Yドライブの場合もあります)
エクスプローラーからZドライブを開いて、ExcelやWordなどのデータを保存する分には問題ありません。
しかし、アプリケーションからZドライブにファイルを出力すると保存できない問題が発生することがあります!
今回挙げるトラブル&解決手順は2つです。
①自動切断機能によるトラブル
まずは、パソコン側の自動切断機能によって発生するトラブルです。
未接続状態が15分間継続すると、ネットワークドライブは切断状態になります。
これは、サーバーリソースが無駄に使用されないようにするためのOSの機能なのですが、エクスプローラーからアクセスすると再接続をしてくれるのに対し、アプリケーションからアクセスしてもネットワークドライブを再接続されない問題があります。
少し強引な解決方法ではありますが、自動切断機能を無効にすることで、この問題を回避することができます。
■解決手順
コマンドプロンプトから、次のコマンドを実行
> net config server /autodisconnect:-1
②ログイン直後のトラブル
こちらは、パソコンによって問題が発生する場合、問題が起きない場合に分かれます。
発生原因は不明ですが、Windowsのログイン直後にネットワークドライブが切断状態になっていることがあります。
前述の自動切断と同じようにエクスプローラーからのアクセスでは再接続してくれるのですが、アプリケーションからのアクセスに対しては同様に再接続されない問題が生じます。
■解決手順
ログイン直後にエクスプローラーからフォルダを開き再接続させて問題回避できます。
1) テキストファイルを作って、下記内容をコピペします。
"Z:" や "\\192.168.xxx.xxx\data"の箇所は環境に合わせて変更してください。
----------------------------------------
Option Explicit
On Error Resume Next
Dim objNetwork ' WshNetwork オブジェクト
Set objNetwork = CreateObject("WScript.Network")
'10秒待つ
WScript.sleep 10000
'ネットワークドライブを削除
objNetwork.RemoveNetworkDrive "Z:"
'10秒待つ
WScript.sleep 10000
'ネットワークドライブを作成
objNetWork.MapNetworkDrive"Z:","\\192.168.xxx.xxx\data"
Set objNetWork = Nothing
'作成したネットワークドライブを開く
Dim fpath
Dim objWShell
Set objWShell=CreateObject("WScript.Shell")
fpath = "Z:"
objWShell.Run """" & fpath & """", 7, False
Set objWShell = Nothing
----------------------------------------
2) 拡張子を「txt」から「vbs」に変更
3) スタートアップに「vbs」ファイルを移動