Masato's IT Library

Microsoftの製品・サービスを中心に,色々と書いていきたいと思います

ネットワーク接続がおかしくなった時に試すこと

ネットワーク接続がどうもおかしくなった時に試すことを書き並べます.

0. 本当に切れているのか確認

コマンドプロンプトWindows)やターミナル(Mac)を起動して,ping 8.8.8.8と打ち込んでEnterを押します.
Windowsなら,WindowsキーRを同時に押して,出てきたダイアログにcmdと打ち込んでEnterを押せば立ち上がります.

次のように「損失が0%」と表示されれば,インターネットにはつながっています.

ping 8.8.8.8

8.8.8.8 に ping を送信しています 32 バイトのデータ:
8.8.8.8 からの応答: バイト数 =32 時間 =10ms TTL=58
8.8.8.8 からの応答: バイト数 =32 時間 =7ms TTL=58
8.8.8.8 からの応答: バイト数 =32 時間 =14ms TTL=58
8.8.8.8 からの応答: バイト数 =32 時間 =16ms TTL=58

8.8.8.8 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 7ms、最大 = 16ms、平均 = 11ms

続いて,ping www.google.co.jpと打ち込んでEnterを押します.

ping www.google.co.jp

www.google.co.jp [216.58.197.131]に ping を送信しています 32 バイトのデータ:
216.58.197.131 からの応答: バイト数 =32 時間 =19ms TTL=54
216.58.197.131 からの応答: バイト数 =32 時間 =18ms TTL=54
216.58.197.131 からの応答: バイト数 =32 時間 =20ms TTL=54
216.58.197.131 からの応答: バイト数 =32 時間 =26ms TTL=54

216.58.197.131 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 18ms、最大 = 26ms、平均 = 20ms

こちらも損失が0%なら問題はありません.

1. Windowsネットワーク診断による自動修復を試す(Windows

次の記事に従い,XP以降のWindowsに標準で装備されているネットワーク診断ツールを実行してみます.
すぐに修復可能な問題が見つかれば,自動で修復を実行してくれます.

www2.mouse-jp.co.jp

2. IPアドレスの強制再取得(Windows

スタートメニューから「コマンドプロンプト」を探して,右クリック,「管理者として実行」をクリックしてください.

f:id:mst8000:20160913005055p:plain:w400

黒い画面が立ち上がったら,次のコマンドを1行づつ順番に入力してEnterを押してください.

ipconfig /release *
ipconfig /flushdns
ipconfig /renew

3. LANケーブル・無線LANアダプタの確認

有線LAN接続の場合はLANケーブルが抜けていないか,無線LAN接続の場合はアダプタが抜けているもしくはOFFになっていないことを確認しましょう.よくあることです.

4. PCの再起動・掃除

解消されなければ,とりあえず,PCを再起動しましょう.
もし,PC内部が埃で詰まっているようなことがあれば,シャットダウンしてACアダプタを抜き,内部を掃除してください.
熱がたまるといたるところに不調が現れます.

5. ルータの再起動

それでも治らなければ,途中にあるルータやスイッチングハブをすべて再起動しましょう.
大体はACアダプタをぶちっと抜いて,ちょっと経ってから差しなおせばOKです.

6. ネットワークアダプタの初期化(Windows

ネットワークアダプタを初期化してみます.
2.と同様に,コマンドプロンプトを管理者として実行してください.

続いて,次のコマンドを入力してEnter,完了したらPCを再起動してみてください.

netcfg -d

それでもなおらん

以上の手順を試しても復旧できない場合は,デバイスに物理的な問題が発生している,もしくはインターネットプロバイダに障害が発生していることが考えられます.

Bash on Ubuntu on WindowsのrmはACLを無視して削除できるのか

はじめに

つい昨日,こんな記事を見かけました.

qiita.com

なんと,Bash on Ubuntu on Windowssudo rm -rf --no-preserve-root / を実行すると, /mntWindows上の C:\ がマウントされているために,Windowsが起動不可能になってしまうようです.

ここで疑問に思いました.

最近のWindowsでは,重要なシステムファイルは,Administrators権限ですら削除できないようにACL(アクセス制御リスト)でガッチガチに保護されているのでは?

ということ.

はたして,Bash on Ubuntu on Windowsでは,ACLに打ち勝ってシステムに保護されたファイルを削除できるのか,試してみることにしました.

まずはWindows側から検証

まず初めに,Windows側でいろいろ試してみたいと思います.
といっても,使っているWindowsをぶっ壊されては堪らないので,Cドライブ直下にあるWindows.oldの残骸を使います.
このWindows.oldフォルダですが,Windowsのアップグレード時に,前のバージョンやビルドに戻すためのデータを一時的に保管するために自動生成されるフォルダで,不要になればディスククリーンアップツールを使用して削除することができます. ところが,稀にSYSTEM権限でしか触れないシステムファイルが入ってしまい,通常のWindowsからは削除できずに残ってしまうことがあります.

f:id:mst8000:20160911020155p:plain:w400

エクスプローラ

まず,普通にエクスプローラから

f:id:mst8000:20160911020846p:plain:w500

はい.普通に怒られました.

コマンドプロンプト

次に,コマンドプロンプト(管理者権限)から rmdir /S .\Windows.old でいってみます.

f:id:mst8000:20160911021224p:plain:w500

無理ですね.

PowerShell

ならば,われらがPowerShell(管理者権限)で Remove-Item -Path .\Windows.old -Recurse -Force を実行.

f:id:mst8000:20160911022358p:plain:w500

こちらも盛大に怒られました.

本丸のBash on Ubuntu on Windowsで検証

では,本丸のBash on Ubuntu on Windowsでやってみたいと思います.
と思ったら,Bash on Ubuntu on Windowsを入れ忘れていた...

入れましょう

f:id:mst8000:20160911023846p:plain:w400

さて,気を取り直してbashsudo rm -rf ./Windows.old/ を実行します.

f:id:mst8000:20160911032102p:plain:w500

怒られました.よかった...

まとめ

Bash on Ubuntu on Windowsも,ちゃんとWindows側のACLに従って(あたりまえだけど)消せないものは消せないようになっています.

でも,/mnt に全ドライブマウントされているので,迂闊に sudo rm -rf --no-preserve-root / なんてやっちゃだめですよ!

Windows 10による S.M.A.R.T.情報確認用ブータブルUSBの作成方法

はじめに

HDDやSSDなどでディスク障害が疑われる場合,まず確認するのは,ディスク自体が持つ自己診断機能「S.M.A.R.T.」の情報ですね.Windowsにおいて,S.M.A.R.T.情報を確認する上で強力なツールとして,ひよひよ氏が公開している「CrystalDiskInfo」があります. 「CrystalDiskInfo」は非常に多くのディスクに対応し,Windows ServerのServerCoreインストールであっても動作しますが,OSがブートできなくては使用することができません.そこで,Windows オペレーティング システムのインストール、展開、修復に使われる,RAM上で動作する軽量Windowsの「Windows PE」を用いて,CrystalDiskInfoを起動するだけのブータブルUSBを作成してみたいと思います.

なお,Windows PEの構成に必須の「Windows ADK for Windows 10 Version 1511」はインストールが完了しているものとします.

1. [展開およびイメージング ツール環境]の起動

スタートメニューから,[展開およびイメージング ツール環境] を右クリックし、[管理者として実行] 管理者として実行します.

2. Windows PE ファイルのコピー

作業用のフォルダ(E:\)にWindows PEのファイルをcopypeコマンドを用いてコピーします.

32bit用のWindows PEの場合は copype x86 "E:\WinPE_x86" を実行

64bit用のWindows PEの場合は copype amd64 "E:\WinPE_x64" を実行(以降は64bit用で説明)

3. イメージのマウント

Windows PEのイメージファイル(boot.wim)を作業用のフォルダにマウントします.

dism /Mount-Image /ImageFile:"E:\WinPE_x64\media\sources\boot.wim" /Index:1 /MountDir:"E:\WinPE_x64\mount"

4. パッケージの追加

「WinPE-WMI」パッケージを追加します.

dism /Image:"E:\WinPE_x64\mount" /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"
dism /Image:"E:\WinPE_x64\mount" /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-WMI_ja-jp.cab"

5. 日本語パッケージの追加と適用

5.1 インストールされている言語の確認

dism /Image:"E:\WinPE_x64\mount" /Get-Intl

4-1.PNG

en-USがインストールされているようです.

5.2 日本語ローカライズパッケージの追加

次のコマンドを実行します.

dism /Image:"E:\WinPE_x64\mount" /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-FontSupport-JA-JP.cab"
dism /Image:"E:\WinPE_x64\mount" /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\lp.cab"

5.3 Windows PEの日本語化

続けて,次のコマンドにより,Windows PEの日本語化を行います.

  • UI 言語,システムロケール,ユーザーロケール,入力ロケールを設定
    dism /Image:"E:\WinPE_x64\mount" /Set-AllIntl:ja-JP
  • 入力ロケールを設定
    dism /Image:"E:\WinPE_x64\mount" /set-InputLocale:0411:00000411
  • タイムゾーンを設定
    dism /Image:"E:\WinPE_x64\mount" /Set-TimeZone:"Tokyo Standard Time"
  • キーボードドライバの設定
    dism /Image:"E:\WinPE_x64\mount" /Set-LayeredDriver:6
  • セットアップで使われる既定の言語を設定
    dism /Image:"E:\WinPE_x64\mount" /Gen-LangINI /distribution:"E:\WinPE_x64\media"
    dism /Image:"E:\WinPE_x64\mount" /Set-SetupUILang:ja-JP /distribution:"E:\WinPE_x64\media"

5.4 インストールされている言語の確認

dism /Image:"E:\WinPE_x64\mount" /Get-Intl

4-2.PNG

日本語(ja-JP)になりましたね.

6. CrystalDiskInfoのイメージへの追加

hiyohiyo氏のページ(http://crystalmark.info/download/)より,CrystalDiskInfoのポータブル版(zip)をダウンロードします.

6-1.PNG

なお,通常版とShizuku Editionのどちらを用いても構いません.(以降はShizuku Editionで説明する)

6-2.PNG

ダウンロードしたzipファイルを展開し,「CrystalDiskInfoX_X_XShizuku」フォルダを「CrystalDiskInfo」にリネームして「E:\WinPE_x64\mount\Program Files\」以下にコピーします.

7. スタートアップスクリプトの修正

Windows PE起動時にCrystalDiskInfo自動起動するようにスタートアップスクリプトを修正します. 「E:\WinPE_x64\mount\Windows\System32\startnet.cmd」を以下の内容に変更します.

wpeinit
@echo off
"x:\Program Files\CrystalDiskInfo\DiskInfoSx64.exe"
echo WindowsPEをシャットダウンするには「wpeutil shutdown」を使用してください。
@echo on

※64bitのWindows PEでは,64bitネイティブのアプリケーションしか動作しません.

8. イメージのコミットとアンマウント

今までの作業用のフォルダの変更箇所をイメージファイル(boot.wim)にコミットして,アンマウントします.

dism /Unmount-Image /mountdir:"E:\WinPE_x64\mount" /commit

9. ISOイメージの作成

Makewinpemediaコマンドを用いて,ISOイメージファイルを生成します.

Makewinpemedia /iso "E:\WinPE_x64" "E:\WinPE_CDI_x64.iso"

※直接USBフラッシュメモリに書き込むには,次のコマンドラインを実行します.

Makewinpemedia /ufd "E:\WinPE_x64" F: (「F:」はUSBフラッシュメモリのドライブ文字とする)

その他

デバイスドライバが必要な場合は,イメージ編集中に

dism /Image:"E:\WinPE_x64\mount" /Add-Driver /Driver:[infファイルのあるフォルダ]

とすることで,デバイスドライバを含めることができます.詳しくは次の参考ページを参照してください.

参考ページ

Windows10のAnniversary Updateを一時的に阻止する

来る8月2日,ついに我々Insidersが待ちに待ったAnniversary Update (Version1607)が降ってきますね.

blogs.windows.com

 

(8/3追記)Current Branchに降ってきましたね.

blogs.windows.com 

 

Windows 10Windows as a Service(WaaS)というコンセプトに基づき,定期的に最新のWindowsが使用できるようになります.大変ありがたいものです.

www.atmarkit.co.jp

 

ところが,某幣学では,某Symantec Endpoint Protection(SEP)の影響で,Version1607が適用できないという大問題が発生しそうです.(Insider Preview Build 14385適用時に確認)

f:id:mst8000:20160712184935p:plain

 

こればかりはどうすることもできないので,諦めてコンシューマー向けの最新ビルドが適用されるCB(Current Branch)から,4か月間の猶予があるビジネスユーザー向けのCBB(Current Branch for Business)に切り替えておくこととしましょう.同様に,「8月2日に新ビルドが降って来たら困る!」なんて人もCBBに切り替えておくといいかもしれませんね.

 

(11/7追記)
弊学にも(いつの間にか)対応するSEPが配布されていました.
 Version 12.1.6 (12.1 EU6 MP5) 以降のバージョンより,正式対応しています.

 

ここからは,現状CB(Current Branch)における最新ビルドであるVersion1511 (Build10580)を例に説明します.

設定アプリを開く

Windowsキー」+「I」もしくは,スタートメニューから設定アプリを起動します.

f:id:mst8000:20160712190931p:plain

CBBへの切り替えオプションを表示させる

設定アプリの「更新とセキュリティ」を選択します.

f:id:mst8000:20160712191201p:plain

Windows Update」タブの一番下にある「詳細オプション」を選択します.

f:id:mst8000:20160712191323p:plain

CBBに切り替える

表示された画面にある「アップグレードを延期する」にチェックを入れます.

f:id:mst8000:20160712191502p:plain

 

以上です.これですぐにはVersion1607は適用されないはずです.

 

なお,恒久的にアップグレードを阻止するにはWSUS(Windows Server Update Services)により制御する,もしくはEnterpriseエディションのLTSB(Long Term Servicing Branch)を使用する必要があるとのことです.