none
Windows10 バージョン1709 webdav フォルダが空になる現象について RRS feed

  • 質問

  • お世話になります。

    Windows10にwebdavの設定(ネットワークの場所を追加)をしており、

    不具合がありましたので、ご質問させて頂きます。

    先日、Windows10のアップデートが行われ、

    バージョンが1703から1709になりました。

    この直後からwebdavサーバー(SSL設置済み)との接続が不安定になり、

    以前は見えていたwebdavサーバー内の一部のフォルダが空の状態となり、

    ファイルが存在しないように見える現象が発生しております。

    (webdavサーバーはCentOS6.6とapache2.2にて構築しております。)

    webdavサーバーへのアクセスはエクスプローラーを使用しており、

    クライアントソフト等のwebdav関連のソフトウェアは一切利用しておりません。

    フォルダとファイルについては、webdavサーバー上には存在しており、

    Windows10のバージョン1703の別のPCでは正常に見れる状態です。

    また、IE等のブラウザでURLを入力しても正常に見れる状態です。

    また、フォルダが空の状態でエクスプローラーを再読み込みすると、

    フォルダやファイルが表示される場合もあり、

    webdavサーバーのapacheのログを確認した所、

    フォルダやファイルが見れない時は、

    リクエストされたパスの最後に不要な文字列がある事を確認しました。

    不要な文字列は再読み込みする度に変わり、

    数字の場合もあれば、漢字(おそらく文字化け)になっている場合もあります。

    この現象はフォルダの階層が3~4階層以降の場所で頻発します。

    フォルダ名に日本語をつけておりますが、SJISの特殊文字は一切利用しておりません。

    Windows10バージョン1709のユーザーエージェントは、

    「Microsoft-WebDAV-MiniRedir/10.0.16299」と記録されており、

    こちらからのアクセスの場合のみ不具合が発生します。

    webdavサーバーはmod_encodingnにて文字コードの設定を行っており、

    現状はサーバー側の問題ではないと考えております。

    エクスプローラーのフォルダーオプションで履歴の消去をおこなっても、

    現象は改善されず、見えたり見えなかったりする状況が続いております。

    この現象は、手元にある3台のバージョンを1709にアップデートした

    すべてのWindows10で発生しており、それぞれメーカーの異なるPCですので

    おそらくPC個体の問題ではなく、Windows10のエクスプローラーの

    動作に問題があると推測しております。


    もし、こちらの現象について解決策や原因のわかる方がいらっしゃいましたら、

    大変お手数ですが、ご教授頂ければと思います。

    どうぞよろしくお願いいたします。



    • 編集済み ttake0804 2017年11月30日 15:30 不足事項の追加
    2017年11月30日 14:40

回答

すべての返信

  • Ubuntu16.04 LTS
    Server version: Apache/2.4.18 (Ubuntu)
          Alias /webdav /var/www/webdav
          <Directory /var/www/webdav>
             DAV On
          </Directory>
    を追加しただけの 何の設定もない素のwebdavですが、Widnows10 1709 のエクスプローラーでアクセスできます。


    (Ctrl + '+'で拡大できます。)

    "mod-encoding" は apache2 用の "libapache2-mod-encoding"を使用。
    Microsoft-WebDAV-MiniRedir/10.0.15063
    URLとHTML文書をやりとりしていますね。
    (あまり使っていませんが いまのところ問題ありません。SSL使用ですかね...)

    2017年12月5日 5:40
  • 前回と同じフォルダです。
    『Widnows10 1709 のエクスプローラーでアクセスできます。』と書きましたが、間違いでした
    このときの Windows10は 1703で Microsoft-WebDAV-MiniRedir/10.0.15063
    今回は、Windows10は 1709で Microsoft-WebDAV-MiniRedir/10.0.16299
    何回かPathを行ったり来たりしているとファイルが表示されます。

    ・Windows 10 からの WebDAV 接続
    https://support.kagoya.jp/kir/manual/webdav/win10/index.html#intro
    一番下の方に『Windows OS では、OS 側の WebDAV の実装が不十分なため、操作が不安定になる場合があります。その場合は、WebDAVクライアントソフトの利用をおすすめしています。』とあって、WebDAVクライアントソフトが三つ挙げてあります。

    すみませんでした。Wiresharkで記録をとりましたので、気がついたことがあれば報告します(時間がないかも)。

    2017年12月11日 14:48
  • Win10 1709 で同様な症状が発生しました。1703では問題なく接続できていた Webdav の一部のフォルダが空の状態となります。また、数回アクセスを繰り返すと「[当該のフォルダ] は利用できません。この PC 上の場所を指している場合は、<中略> ネットワーク上の場所を指している場合は、ネットワークやインターネットに接続しているかどうかを確認してから、やり直してください。それでもその場所が見つからない場合は、その場所が移動または削除されている可能性があります。」のダイアログが表示されます。

    この時にサーバ上では、以下のようなログが記録されています。

    [接続元IP] - [接続ユーザ][13/Dec/2017:14:05:53 +0900] "PROPFIND [URL エンコードされたパス] /H29%20%E8%A5%BF%E9%89%84%E6%9F%B3%E5%B7%9D%E5%91%A8%E8%BE%BA%E6%B4%BB%E6%80%A7%E5%8C%96%E4%BA%8B%E6%A5%AD%E9%96%A2%E4%BF%82%01 HTTP/1.1" 404 379

    URLの最後の %01 が問題です。何もないか / である必要があります。正しくエンコードされていません。
    正しく表示される場合もありますから、直前の文字コードにもよるのかもしれません。
    明らかに URLエンコードの不具合と思われます。

    当然、サーバ上にはこのようなディレクトリ名は存在しませんので、HTTPステータス 404が返っています。
    これが原因で、正しく表示できていない可能性があると思われます。

    正しく表示される場合には、このようなコントロール文字を含んだリクエストは送信されていません。

    現在、対処方法を検討していますが、このような不具合は早く解消してほしいですね。



    • 編集済み Sysyz 2017年12月13日 10:06
    2017年12月13日 5:29
  • httpd.conf に以下の記述を追加することで空白になる現象がとりあえず解消されているように見えます。
    当方ではディレクトリ名の部分だけ、%01がくっつくようなので

    AliasMatch ^(.*)\x01 $1/

    # 実際には、Alias を使っているので以下のような記述になっていますが。

    AliasMatch ^/fs/(.*)\x01    /var/dav/$1/
    Alias            /fs    "/var/dav"

    %エンコードされているURI は、デコードされた状態で渡ってくるんで、そこに注意です。

    %01 以外の不具合がある場合は記述を追加することでとりあえず対処できそうな気がします。

    2017年12月14日 11:29
  • "不安定"という言葉で片付く様な感じです、文字化けというより不要なものがくっついています。
    1. 末尾に生じている。
    2. クライアントから サーバーへの通信で起こる。
    3. 存在しないパス指定なのでサーバーから クライアントへ
        "HTTP/1.1 404 Not Found  (text/html)"が送られてくる。
    4. 4-8バイト位が多い。(文字としては2-3文字)
       %E6%95%AE%E7%91%A3%E6%BD%A9%01  
       %E9%9A%B8%EE%AE%A3%C7%8F
       %E6%8D%A5%E6%A5%B4%E6%B9%AF%01
     %E2%AB%98%EE%AE%A5%C7%8F
       %E6%BD%83%01
       ・・・・(不規則でキリがない)
    5. 末尾に"n/"とか"g"とか1-2文字付いているだけのこともある。
    6. Sysyzさんの指摘の通り、末尾に"%01"が付くことがよくある。
    7. 何が起きているのか分からないけど、時々 末尾に"/desktop.ini"がくっついて送られる。
       このときも、 "HTTP/1.1 404 Not Found  (text/html)"が送られてくる。
       その後しばらく混乱が続く。

    Webdavサーバー内の全ファイルをエクスプローラー経由でSambaにコピーしてみました。
    (エクスプローラに表示されていたWebdavのルートにある全フォルダ・ファイルを Z:ドライブにドラッグ&ドロップしました。Z:ドライブはネットワークドライブ=Sambaフォルダ。)

    Webdav(33フォルダ、163ファイル、計196)---> Windows10エクスプローラー ---> Samba(30フォルダ、124ファイル、計154)。(頻繁にエラーメッセージが出ていました。)

    Webdav内のExcelファイルをダブルクリックすれば Excelで編集できるように、Samba内のExcelファイルもダブルクリックで編集できます。(CarotDAVではダブルクリックで開けません...初めて使ってみましたので使い方が分からない。エクスプローラとは双方向でドラッグ&ドロップが出来ます。)

    2017年12月15日 1:24
  • 私もこの問題はフォーラムに何度か投稿していて、PROPFIND が正しいリクエストを送らないと記載してきました。

    web.config で末尾の文字に対応しも、末尾に付与されるものはランダムな文字になります。

    これと類似して、SharePoint では CSOM を使用した API でも、ファイル名によって正常にファイルがダウンロードできないことがあります。
    たとえば、
       AAA.xlsx   -> 正常

       AAA(見積もり).xlsx  → 破損

    のように、ファイル名を変えるだけで変化しました。
    こちらは windows7 でも発生し、サーバーの問題のような気がしますが、発見されてから2カ月、ちょっと大きい問題なのではないでしょうか。

    2017年12月15日 3:48
  • たしかに、末尾にくっつくのは不定な文字ですね。場合によっては、URL内の Ascii 文字部分が末尾に繰り返されている場合もあります。ちょっとサーバ側で対処するのは面倒だなぁ... Apache でフィルタ出来るだろうか...

    ディレクトリ、ファイル名を URI(%)エンコードする際の処理がおかしいですね。クライアントPCでTcpdumpしてみると、確かに不正なURIで PROPFIND リクエストを送出していますので、サーバ側ではなく、クライアント側の問題です。

    desktop.ini は、エクスプローラ内での表示設定でしょうから、このリクエストは正常だと思います。

    URIエンコードの際の、文字列のバッファ処理がおかしいように見えます。バッファがちゃんとクリアできてなくて、ゴミが残ってるような感じに見えます。どの dll が処理してるかわかれば、それだけ入れ替えれば正常に戻せるような気もするんですが...

    フィードバック Hub アプリというのがあるそうで(https://answers.microsoft.com/ で教えていただきました)、それを使用してフィードバックを送信しておきました。改善してくれるといいのですが...

    2017年12月20日 7:16
  • 直前に扱ったファイルの拡張子が付与されたりしたので、バッファに終端文字が無くて、バッファ長で指定してそれがずれてるんでしょう。

    それにしても、office 365 の SharePoint を使用していたら、これは仕事にならない!
    一部門だけ先行して Windows 10 を入れていますが、それだけでも大混乱です。
    うちでは Windows 10 の導入は、半期か1年ずらすことにしました。


    • 編集済み izumiya 2017年12月28日 0:48
    2017年12月28日 0:48
  • 私も同じような現象に遭遇し、この投稿へ辿り着きました。

    私の環境では1709にアップデートしたPCでのみ発生しています。
    奇妙なのが1709だから必ず発生するわけでは無いようです。

    昨年末にThinkPad(当時1703)を2台購入し、同じ構成にセットアップしました。
    実際にそれを使うユーザーは、PCに疎い人なのでと言ってもしかたありませんが、1709へ更新してしまいました。
    すると本題のようにWebDAVのアクセス先が「空になる」現象に陥りました。

    一つわかったのが、親ディレクトリを英語のみにすると、それ以下が表示されることだけでした。

    現在は気持ち悪いので1703に戻しています。

    また奇妙なのが、同時に買った2台目のPC。
    一週間前くらいに意図的に1709へアップデートしたところ、こちらでは全く問題が出ませんでした。

    同じパソコンなのにこの違いは何でしょうか?

    また、全く違うメーカーのPCが使うことになりました。
    それも1709ですが、それは空になることは無いです。しかしファイル操作に難があります。

    例えばオフィスファイルを開くと、必ず読み込み専用となり、別名での保存ができたりできなかったり。

    またエクスプローラー上でファイル名の変更すらできないこともありました。
    オフィスファイルを編集していると自動バックアップが生成されますよね。そのファイル名も奇妙でした。
    拡張子がxlsccとかxlsxxlsxとか⛵(ヨットの絵、絵文字というよりシンボル文字というのかな?)が追加されていたりしました。

    サーバのエラーログを見ると、不適切な文字が含まれていますというのオンパレード。

    これって対策方法はあるのでしょうか?

    httpd.conf に以下の記述を追加することで空白になる現象がとりあえず解消されているように見えます。
    当方ではディレクトリ名の部分だけ、%01がくっつくようなので
    
    AliasMatch ^(.*)\x01 $1/
    
    # 実際には、Alias を使っているので以下のような記述になっていますが。
    
    AliasMatch ^/fs/(.*)\x01    /var/dav/$1/
    Alias            /fs    "/var/dav"
    
    %エンコードされているURI は、デコードされた状態で渡ってくるんで、そこに注意です。
    
    %01 以外の不具合がある場合は記述を追加することでとりあえず対処できそうな気がします。
    

    私はまだサーバーを触り始めたばかりなんですが、私はnginxを使っています。
    nginxの場合どのようにすれば良いのでしょうか?

    もしそれで対処した場合、今まで1709で正常に使えていたPCで使えなくなってしまうこともあるんでしょうか?

    Webdav内のExcelファイルをダブルクリックすれば Excelで編集できるように、Samba内のExcelファイルもダブルクリックで編集できます。(CarotDAVではダブルクリックで開けません...初めて使ってみましたので使い方が分からない。エクスプローラとは双方向でドラッグ&ドロップが出来ます。)

    TOOL>ENABLE WEBDAV SERVERをオンにすると、ネットワークドライブが自動的に作られる。※要初期設定
    これがオフだ通常のクライアントアプリのように振る舞い、オンだとCarotDAV経由のネットワークドライブを作ってくれます。

    CarotDAV経由で接続する場合は、CarotDAVが起動している必要があります。
    うっかりアプリケーションを終了させると切断されますので注意。

    CarotDAVの説明をしていながら、この存在を忘れてました。

    自分も問題起こしているPCでCarotDAVでつないでみましたが、
    残念ながら自分のPCではCarotDAVでも同じでした

    • 編集済み Bables55 2018年1月12日 9:49
    2018年1月12日 3:12
  • クライアント側の WebDAV コンポーネントの問題だと思うし、送信されるリクエストが様々なので、http.conf では解決できないと思います。

    >もしそれで対処した場合、今まで1709で正常に使えていたPCで使えなくなってしまうこともあるんでしょうか?

    それはないと思います。末尾に 0x01 が含まれるファイル名は普通はないと思うので。
    その前に、発生はタイミング issue (直前のオペレーションなど)なので、正常に見えてる PC でももしかしたら同じエラーが発生しませんか?

    2018年1月16日 5:26
  • > クライアント側の WebDAV コンポーネントの問題だと思うし、送信されるリクエストが様々なので、http.conf では解決できないと思います。

    そのようですね。自分の場合%01以外にも複数有るようです。
    それを除外するのは厳しそうです。
    自分の投稿で発生しないPCもあると書きましたが、
    違うPCでダメだった場所を、使えていたPCで同じ所を見に行ったら、
    これまで使えてたPCでも空になったり、コピーや名称変更などできなくなってしまいました。

    やっぱり手っ取り早い方法は1703に戻して、1709への更新を拒否し続けるしか無いようですね。

    2018年1月16日 5:41
  • フィードバック Hub アプリというのがあるそうで(https://answers.microsoft.com/ で教えていただきました)、それを使用してフィードバックを送信しておきました。改善してくれるといいのですが...


    Sysyzさん。
    フィードバック提出した「件名/タイトル」を教えて頂けますか?
    賛同者が少ないとピックアップされにくいようですね。一票入れたいと思います。

    よろしくお願いします。


    • 編集済み Bables55 2018年1月22日 0:45
    2018年1月22日 0:43
  • フィードバック HUB なんて本当に読んでもらってるのかわかりません。

    以前、有償サポートを受けた時に、そのアンケートのコメントに書いたら、
    エンジニアのほうでちゃんと読んでくれてました。

    有象無象のところに放り込むよりもいいと思いますよ。

    2018年1月22日 1:47
  • 修正
    https://support.microsoft.com/ja-jp/help/4089848/windows-10-update-kb4089848

    2018年4月8日 9:54
  • 自分はそれは配信されていなかったですが、4/11に配信されたWindows Updateで改善した模様です。

    KB4093112
    https://support.microsoft.com/ja-jp/help/4093112/windows-10-update-kb4093112

    kb4089848が統合されているのかな?

    2018年4月12日 0:21