タグ: windows

Windows7からWindows10にアップグレードした後、一部のソフトで通信できなくなった

Windows7からWindows10にアップグレードした後、FirefoxやMicrosoft EdgeでのブラウジングやWindows Media Playerでのストリーミングの再生は以前と同じく問題なかったが、
リモートデスクトップクライアントやJava製のアプリケーションで接続に失敗するようになりました。

  • コントロール パネル\すべてのコントロール パネル項目\ネットワーク接続のネットワークアダプタの削除→再起動
  • ネットワークドライバの再インストール

を試しましたが、解決せず。

しかしJava製アプリケーションで通信に失敗した際に、

java.net.SocketException: Unrecognized Windows Sockets error: 10106: create

というエラーメッセージが出ていたので、検索したところ

Bootstrap error – Unmodified Minecraft Client Support – Support – Minecraft Forum – Minecraft Forum

にあったコマンド

netsh winsock reset

を実行することで解決しました。

コマンドは以下の方法で実行しました。

  1. スタートメニュー→すべてのアプリ→Windowsシステムツール→コマンドプロンプトを右クリック→管理者として実行でコマンドプロンプトを起動
  2. netsh winsock resetと打って実行
  3. 再起動

「netsh winsock reset」って? – 「netsh winsock reset」って何をす… – Yahoo!知恵袋

WindowsにインストールしたVagrantにMinGWをインストールして、rsyncコマンドインストールする

Vagrantfile中に

config.vm.synced_folder "../app", "/var/www/app", type: "rsync"

のような同期フォルダのオプションでrsyncを使用したいため、rsyncを導入したときのメモ

Vagrantの組み込み実行ファイル領域(C:HashiCorpVagrantembedded)にrsyncをインストールして、vagrant up中にrsyncが利用できるようにする。

前提

  • Vagrantは「C:HisashiCorp」にインストールしている

インストール手順

  1. MinGWをインストールする。インストール先はデフォルトの「C:MinGW」
  2. 「C:MinGW以下」(binなどのディレクトリ)のファイル、ディレクトリを「C:HashiCorpVagrantembedded」に上書きコピー
  3. 「C:HashiCorpVagrantembeddedvarlibmingw-getdata」の【profile.xml】・【defaults.xml】を編集
    deraults.xml

    @@ -130,7 +130,7 @@
           default, irrespective of its actual "id" attribute value.
         -->
         <sysroot subsystem="mingw32" path="%R" />
    -    <sysroot subsystem="MSYS" path="%R/msys/1.0" />
    +    <sysroot subsystem="MSYS" path="/HashiCorp/Vagrant/embedded" />
       </system-map>
    
     </profile>
    

    profile.xml

    @@ -132,3 +132,3 @@
         <sysroot subsystem="mingw32" path="%R" />
    -    <sysroot subsystem="MSYS" path="%R/msys/1.0" />
    +    <sysroot subsystem="MSYS" path="/HashiCorp/Vagrant/embedded" />
       </system-map>
    
  4. mingw-getコマンドでssh,rsyncをインストール(>はコマンドプロンプト)
    > C:HashiCorpVagrantembeddedbinmingw-get.exe update
    > C:HashiCorpVagrantembeddedbinmingw-get.exe install msys-openssh msys-rsync
    

操作手順

D:\work\project\envディレクトリにVagrantfileがあり、D:\work\project\appディレクトリをゲストOS上の/var/www/appに同期したいとき。
Vagrantfileの記述は冒頭のもの。

  1. vagrant upでVagrant起動
  2. ゲストOSが起動したら、vagrant rsync-autoでホストファイル上の共有フォルダを監視状態にする
    > vagrant rsync-auto
    ==> default: Doing an initial rsync...
    ==> default: Rsyncing folder: /d/work/project/app/ => /var/www/app
    ==> default: Watching: D:/work/project/app
    D, [2015-07-01T15:21:19.682053 #4564] DEBUG -- : Adapter: considering TCP ...
    D, [2015-07-01T15:21:19.682053 #4564] DEBUG -- : Adapter: considering polling ...
    D, [2015-07-01T15:21:19.683030 #4564] DEBUG -- : Adapter: considering optimized backend...
    
  3. 共有フォルダ内のファイルを編集後保存すると、自動的にゲストOS側に転送される。
    ==> default: Rsyncing folder: /d/work/project/app/ => /var/www/app
    

    でゲストOSに反映

参考

WindowsでコマンドラインによるWiresharkの起動

開発のために通信するプログラムと共にWiresharkを起動したかったため、バッチファイルを作成しました。
Wiresharkには起動オプションがあるので、起動と同時にキャプチャを指定したフィルタで開始することができます。

起動バッチファイルをstart.bat、通信プログラムをfoo.exeとします。
2つは同じフォルダ内にあるとします。

start.bat

REM start.batが保存されているフォルダに移動
cd /d %~dp0

REM 現在時刻(キャプチャ結果ファイル名に使用する)
set time2=%time: =0%  

REM Wiresharkの実行ファイルがあるフォルダ(OSが64ビット版の場合は要変更)
set WIRESHARK_PATH=C:\"Program Files"\Wireshark\

REM Wiresharkのキャプチャ対象インタフェース番号(※1)
set CAP_INTERFACE=1

REM Wiresharkのディスプレイフィルタ(HTTPプロトコルで、送信元がAAA.BBB.CCC.DDDか送信先がAAA.BBB.CCC.DDDで送信元HTTPヘッダのホスト名がhoge.example.jpのもの)
set DISPLAY_FILTER="http && ((ip.src == AAA.BBB.CCC.DDD) || (ip.dst == AAA.BBB.CCC.DDD && http.host == \"hoge.example.jp\" ))"

REM キャプチャ結果をファイルに保存するファイル名(capture-YYYYMMDDHHIISS.txt)
set CAPTURE_FILE=capture-%date:~-10,4%%date:~-5,2%%date:~-2,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%.txt

REM Wireshark起動 (※2)
start %WIRESHARK_PATH%Wireshark.exe ^
-i %CAP_INTERFACE% ^
-Y %DISPLAY_FILTER% ^
-w %CAPTURE_FILE% ^
-k

REM プログラム起動
start foo.exe

※1 キャプチャ対象インタフェース番号について

コマンドライン上でWiresharkを-Dをつけて実行すると、番号とインタフェースのリストが出力されます。

>"C:\Program Files\Wireshark\Wireshark.exe" -D

1. \Device\NPF_{AAAAAAAA-BBBB-CCCC-DDDD-012345678901} (XXXXXXX)
2. \Device\NPF_{EEEEEEEE-FFFF-GGGG-HHHH-123456789012} (YYYYYYY)
3. \Device\NPF_{IIIIIIII-JJJJ-KKKK-LLLL-234567890123} (ZZZZZZZ)
4. \Device\NPF_{MMMMMMMM-NNNN-OOOO-PPPP-345678901234} (WWWWWWW)

※2 使用したWiresharkコマンドラインオプション

-i キャプチャ対象インタフェース番号
-Y ディスプレイフィルタ
-w キャプチャ結果保存先
-k 起動と同時にキャプチャを開始

参考