MSは自社の有料Webサービスの正常動作すら確認しない程度にはIEを見捨てているらしい。

 今回はビミョーな何だかなぁ感が残るお話。

 さて、当方が触る環境の中には所謂「管理された端末」というヤツがありまして。
 32bitのWin7にブラウザはIEだけ、Officeも2010のままバージョンアップの気配すら無し、というまぁ「日本企業では標準的」な端末でございます。
 そして当方、この端末を使ってMSのWebサービスを使うことがままあるのですな。

 なのだが、最近のMSはどうやら自社サービスがIEで正常に動くか全く確認していない模様。
 何故って、有料サービス含めて、FirefoxやChromeではまともに動くのにIEだとコケる、という事象が割と頻度高く発生しているんですよ。
 え、Edge?確認していないので不明。

 ちなみにコケてる理由はだいたい「IEにとって」DOMの扱いがミスってる、ということ。
 F12でデバッグコンソール見てみるとこんなのが出ていることが多い。

 >SEC7118: [URL] の XMLHttpRequest には Cross Origin Resource Sharing (CORS) が必要です。
 >SEC7119: [URL] の XMLHttpRequest には CORS プレフライトが必要です。

 はい、フツーにクロスドメインアクセス周りの不具合でございます。
 具体的な被害としては、ダイアログから先に進まない、ボタンが無反応、突然Access Deniedで蹴飛ばされる、ファイル転送が始まらない等。

 問題というか話がアレなのは、FirefoxやChromeで使っているとこのテの問題にはほぼ遭遇しないこと。
 究極的にはIEのバグというか互換性の話になるってことよね、コレ。
 そして、症状が出てから数日程度で、何事も無かったかのように直ったり、また突然発症したりを繰り返していること。
 特別な操作しなくとも簡単に再現可能な不具合が何度も繰り返し発症する辺り、まぁ少なくてもきちんとテストはして無いんだろうなと。

 あ、別にMSがIEを切り捨てることについては個人的には全く文句は無いんてすよ。というか、さっさと諦めてくれた方が幸せ。
 ただ、ならば明示的にアナウンスしてくれと。日本の「端末」管理者の大多数は未だにIEだけ動かしておけば安泰だと思考停止しているので、ね。

 とまぁ、本日はこんなしょうもない話でした、はい。

Share

Windowsのドライバが何故か組み込まれなくなってしまったら。

 今回は稀に突然発症するWindowsの病気、「何故かドライバがインストールされない病」のネタでも。
 何でこんなネタを出したかというと、自分の端末が喰らってしまったから。

 ◇

 まず、この症状の解説から。

 「ある日突然、それまで使えていたUSB等の機器が認識されなくなった」

 これが病状。
 ってさらっと書いているが、これ結構致命的で、使い方次第ではこうなったらPCが役立たずになってしまうことも珍しくない。
 例えばUSBメモリなんかが、昨日まで使えていたのに今日突然使えなくなった、とか。
 まぁメモリ程度なら兎も角、データ山盛HDDなんかだとかなりシャレにならないことに。

 なので、ここからは原因切り分けを開始ということで。
 まずは、デバイスマネージャを起動。この時、

 「何故か使えないデバイスが「ほかのデバイス」というトコに繋がっているように見える」

 この状況の場合、この病気の可能性が高い。
 逆に、そもそもデバイスが見えていない場合はハードウェア故障の確率の方がかなり高い。
 次にイベントビューアをチェック。

 「「Windowsログ」「システム」の中に「情報」として「イベント20001」が「UserPnp」から出力されている」
 「「ドライバー NULL Driverをインストールするプロセス」というメッセージが見える」

 上記状況にヒットしてしまった場合、ほぼ100%今回の病気ですな。

 ◇

 さて、この病気の原因なのだが。

 一言で言うと、HDD上のドライバ情報またはドライバ本体が壊れてしまった為。

 Windowsには悪い癖があって、この「ドライバ情報」というのは意外と壊れ易い。
 そしてこの「ドライバ情報」が壊れてしまうと、ドライバ本体まで使えなくなってしまう。
 更に悪いことに、この状態でドライバ自体を修復や再インストールしようとしても「ドライバは問題ありません」とか言われて蹴飛ばされてしまったりする。

 #ちなみにドライバ情報にはキャッシュ(のようなもの)があるので、そのキャッシュが捨てられて再構成されるまではドライバ情報が壊れていても特に問題は発生しない。なので、実はとっくの昔に壊れていたものがある日突然明るみに、というパターンは少なくない。

 こんな状況を打破するには、要するに壊れたドライバ情報を修復するしかない。
 修復手法は2ステップ。

 但し以降に書くこの方法、システムが壊れかけている場合はとどめを刺すことになる可能性があるので、システムフルバックアップを必ず取ってから実行すること。
 一見治っているように見えて実は他のトコが巻き添えで壊れた、なんてことも実際あるので。

 #たまに「取り敢えずコレ打て」的な書き方を見かけるが、取り敢えずで打つ程安全なコマンドではないよ念のため。

 ◇

 まずは事前準備。

 chkdsk /f C:
 (Windows10では chkdsk /f /offlinescanandfix C:)

 システム障害が起こっている環境ではかなりの確率でシステムドライブに論理エラーが出ていることが多い。
 それを放置したまま次の作業を進めてしまうと更に傷口を広げてしまう可能性があるので、まずはそこを潰しておく。
 但しこのコマンドの時点で既に打つ手なし状態だと判明する確率も実はそこまで低くはなかったりする。

 #ちなみに物理エラーが疑われるなら/rで。環境次第ではやったら時間はかかるが、そういうモノ。

 そして軽い方から。コマンドプロンプトから以下のコマンドを打つ。

 sfc /scannow

 Windowsのシステム修復機能を起動して、壊れているコンポーネント情報を修正するコマンド。
 修復はあまり期待出来ないが、エラーが出たら基本的に何処か壊れている。
 ちなみに環境にもよるが30分とか普通にかかる。

 Windows7迄の場合はここまで。
 Windows8以降では次のdismコマンドも打っておく。
 こちらはWindowsのImageを掃除するコマンド。
 詳細は横に置いておくとして、これもそこそこ時間かかる。

 DISM /Online /Cleanup-image /Restorehealth

 で、上記2つのコマンドを実行した後、再起動。
 その結果・・・改善することもあるが、環境よっては却って悪化することも。
 その場合は諦めて次へ。

 ◇

 次に、手間のかかる方。
 まずこの手法を使う場合、

 ・正常なドライバ
 ・空きHDD
 ・WindowsのインストールDVD

 この3点が存在することが大前提。
 ではこれらで何をするかというと、

 1. 現在の問題あるHDDを取り外し、空きHDDを取り付ける。
 2. Windowsをインストールして起動出来るようにする。
 3. 問題あるHDDを接続し、問題あるWindowsパーティションを見えるようにする。
 4. パーティション内からドライバの格納先を探し、インストール直後の正常なドライバで全て上書きする。
 5. 環境を戻してデバイスを認識させる。

 こうなる。
 ちなみに5.のデバイス認識では通常より時間がかかることがあるがそれは正常。

 以下、4のステップの詳細。

 ・ドライバの保存場所は大体のマシンでC:¥Windows¥System32¥DriverStore¥FileRepository。
  この下にドライバ毎にフォルダが切られていて、このフォルダ名=ドライバのinfファイル名。

 ・このドライバ毎フォルダ内にはinfと対になるsysファイルやdllファイルが保存されている。
  何かの拍子でこの中のファイルが壊れたり不整合を起こしてしまうと、ドライバのインストール不良になってしまう。

 ・Windows標準ドライバでこの症状が出た場合、同一Windowsの正常な環境からフォルダ内ファイルまるごと全コピーで上書きしてしまうのが簡単。
  サードパーティ製ドライバならドライバディスクやインターネットからコピーして入れ直す。

 ・そのままだと上書き出来ない場合は、一旦ファイル・フォルダの所有者を自分に変えてから権限を付けると作業可能。
  ローカルの管理者権限を持っていれば所有者の変更だけは出来るので、所有者変更→権限付加、の2ステップ。
  勿論作業後は元通りにしておくこと。

 ◇

 以上、こんな作業でWindowsでの「デバイス認識しない問題」「ドライバが何故か入らない問題」の大多数は片付く。

 勿論これで全部直るワケではなく、例えばレジストリが壊れていたりするともっと大事で、そこまでいってしまうと再インストールの方が幸せになれる。
 だがレジストリ自体の不整合は最近はかなり発生しづらくなっている一方、DriverStore以下のファイル不整合は相変わらず発生し易いので、大多数はドライバの不整合だけ直せばどうにかなるのではないかと。

 とまぁこんな感じで、今回はここまで。

Share

Windows VistaとWindows 8が根本的に同じ理由と、違う理由。

 さて、取り敢えずWindows 8を即時導入「しない」と決めつつも、一応動作検証用にWin8Pro環境も持ちつつ、日常使いPCはWin7のまま使い続けている管理人。
 巷ではWindows Vistaの二の舞とまで言われているが、まあぶっちゃけ印象だけで語ればこの表現がぴったりかなと思いつつ。
 導入後暫く経っての印象を語ってみる。

 ◇Vistaと8が根本的に同じ理由。

 「残念」なこと。
 理念や思想は兎も角、実装が全く追いついていない。

 Vistaの理念が間違っていなかったことは、Vista SE=Windows 7がこれだけ爆発的に売れたことで十分説明が付く。
 でも、Vistaの実装は余りにも「残念」だった。

 同じく、Windows 8の「タブレットでもデスクトップでも使い易い」という理念が間違っている、と言う人はあまり居ない、と思う。
 でも、8の実装は余りにも「残念」だった。

 ◇Vistaと8が根本的に違う理由。

 Vistaは「カーネル」が残念だった。
 8は「UI」が残念だった。

 UIを除くと、8のカーネル周りは正直非常に優秀という印象で、このカーネルの優秀さは十分Windows 8への乗り換え動機になると思う。
 (今日時点では)x86に比べて非力なARMでまともにNTカーネルを動かすために相当チューンナップした成果と思われるが、CPUが弱いサブノートでは体感で分かるぐらいWindows 7より軽快に動く。特に改善したのはレスポンスとかそういう要素で、逆に言うとこれはWindows 7がVistaよりはマシになったもののまだまだ改善すべきポイントであったワケで。

 但し、8では、その優秀なカーネルの上に乗ってるデスクトップ用UIが、それこそ絶望的に、カーネル改善の魅力を余裕で吹き飛ばせるぐらい、よろしくない。

 象徴的なのがデスクトップでのスタートメニュー廃止とスタート画面&チャーム強制。
 別にスタートメニューが無くなっても代替になる優秀なUIがあれば誰も文句は言わないだろうが、実際問題としてスタート画面は代替になってない。
 そしてあのチャーム。何なんだアレ本当に。
 使いにくい上に、マルチディスプレイ構成でのUIを完全に破壊している極悪人と言っても良い。

 #え、レジストリで潰せばいいって?いやソレは違うでしょ。チャームが無くて完結するUIが必要ってこと。

 但しこの辺りは象徴であって、UIとそれに関連する問題を見渡すと実はこんな話など氷山の一角。日本人なら必須のIME周りもアレだし、挙げ句、例えばシステムイメージバックアップのメニュー名が製品版になっても「Windows 7のファイルの回復」のままなんてのは、何処の出来損ないだよ、としか思えない。

 #「システム全体の回復」とかいくらでも名前の付けようがあるだろうに。

 それに加えて、Windows 1.0に戻ったとすら言われる絶望的なウィンドウデザインが付いてくる。
 ダサい上に、兎に角見にくい、分かりにくい。主たる要因はUI要素にコントラストが無さ過ぎる=のっぺりし過ぎていること。

 例えば、最近フリーのオンラインソフトで「窓影8」という、Z軸に従ってウィンドウに影を入れるツールを入れてみたら、それだけで随分とウィンドウが見易くなってびっくりしたり。こんなものMSにその気があれば「パフォーマンス」タブの中のチェック項目に速攻で入れられる筈なのに、その程度すらしていない。

 ◇

 まあMSの社内でもイロイロあったようで、Windows 8開発をトップダウンで仕切っていた人間が追い出された途端、某オンライン誌には「スタートメニュー復活か」などと書かれてしまうのが、今の8の状況。
 兎にも角にも、Windows9ででもWindows8 SP1ででも、このデスクトップ用UIをどうにかしない限り、爆発的な流行は無いな、としか思えない。

 #個人的には既に代替ツールが出回っているスタートメニューよりも、ダサ過ぎ&のっぺり過ぎるウィンドウデザインと多画面UIを破壊するチャームを先に何とかして欲しい。

 逆に、このUIさえどうにかなってしまったら、ソフト・ハードの互換性以外の理由でWindows 7やXPを含む旧Windowsを使用する意味を完全に無くすことが出来る。
 それだけのポテンシャルを持っていた、筈、だと思う。いやホントに。

Share

MicroServer with Remote Management Card on Windows7、問題なし。

 ・・・でした。実につまらん。

 ということで、リモート管理カードを突っ込んだ状態でWindows 7 (x64)をインストールし、無事ドライバ類も全て当たって正常稼動を確認したのでメモ。
 勿論Aeroなんて動かないのでClassicテーマにしてまっせ。

 んで、使用したドライバ類は以下の通り。

 「VGAコントローラ」→ ASPEED AST2150
 >http://www.aspeedtech.com/support.html
 ※Windows2008 R2用を流用

 「イーサネットコントローラ」→BCM5723 (Nextreme I Server)
 >http://www.broadcom.com/support/ethernet_nic/netxtreme_server.php

 「SMバス コントローラ」→ ATI SMBus
 「ビデオ コントローラ(VGA 互換)」→ Mobilty Radoen 4200
 >http://support.amd.com/us/gpudownload/embedded/Pages/embedded_windows_all.aspx

 ちなみにVGAは最大解像度が1280×1024でハードウェアアクセラレーション一切無という代物なので、当方のようにリモート管理に利点を見出す人以外にはゴミでしかないよ、念のため。

 にしてもホント、Javaベースの管理窓からBIOS設定が出来たり、速度は出ないとはいえ手元の端末に繋げたUSB DVD DriveがMicroServer側で繋がっているように見えたり、というのはやっぱり便利ではある。
 勿論当然、ブラウザから電源On/Offの制御、温度やファン回転数なんかのハードウェア状態監視も可能。いやはや、¥8Kでここまで出来るとは至り尽くせりですがな。

 #早速Media PlayerのDNLAサーバを有効にしていろんなトコから音楽が流せるようにしてみたりとか。

Share

Windows 7インストール済環境を後からVHD Bootに切り替えてみる。(後編)

 続きモノの最終回。
 Windows 7をVHDブートしようとした時の、諸々な話とか。

 ◆

 その1。
 パーティションを丸ごとVHD化するなら、予め可能な限りパーティションを圧縮しておくのがお薦め。

 というのは、前回も書いた通り、VHD化してVHDファイル自体が小さくなっても、それを起動に使用するには結局元のパーティションサイズと同じだけのディスク容量が必要になってしまうため。
 ドライブ容量のうち300GBのうち30GBしか使ってなければVHDファイルは30GBになるが、コレを使って起動しようとすれば300GBのディスク容量が必要なんですな。
 ここでパーティションを100GBまで圧縮してからVHD化すれば、このVHDを使って起動するのには100GBのディスク容量で問題ない。

 幸い、Windows 7ではパーティションを後から拡張するのは簡単なので、一度縮小した後、どうしてもディスク容量が必要になったらその時にまた拡張すれば良い。

 さてそれでは実際にどうやって縮小すればいいのかというと、一番簡単なのはWindows標準機能。
 「管理ツール」>「コンピューターの管理」から「記憶域」>「ディスクの管理」と開いて、パーティションを選んで「ボリュームの縮小」。
 MS純正だけあって簡単且つあっさりと出来るのだが、機能も簡単なもの。環境によっては全然縮まない、なんてことも。

 一方、サードパーティ製の各種パーティション操作ツールならば、ボリュームをかなり圧縮することが可能。
 代わりにおカネがかかる・・・筈なのだが、個人の非営利目的ならタダで使える製品もあるので、そういうのを探してみるのも良いかも。

 #但し当方は英語版しか見たことがない。なので、英語が多少は読めないとキビシイかも。

 ◆

 その2。
 では、実際に容量が窮屈になってしまったVHDの拡張方法は、ということでメモ。

 作業は以下の2段作業。

 ・まずVHDファイル自体を大きくする
 ・VHDファイルの中の領域を拡大する

 HDD最後方にインストールされたOSを起動して、コマンドプロンプトを起動。
 さあコマンドを打ち込みましょ。

 ◇

 まず1段目の作業。

 diskpart

 ここでUACが起動して「いいの?」と訊いてくるので「OK」とすると、新しいコマンドプロンプト画面が開く。
 その中で、以下のコマンドを入力。

 SELECT VDISK file=”VHDファイル名”
 EXPAND VDISK maximum=容量(MB単位)

 例えば、E:¥Windows.VHDを60GBに引き延ばすには

 SELECT VDISK file=”E:¥Windows.VHD”
 EXPAND VDISK maximum=61240

 無事出来たら

 EXIT

 でこのコマンドプロンプトを閉じましょ。

 ◇

 2段目の作業。

 「管理ツール」>「コンピューターの管理」から「記憶域」>「ディスクの管理」と選択し、右クリックで「VHDの接続」。
 ダイアログで問題のVHDを選択して、OKをクリック。

 するとVHDが水色のアイコンでマウントされるので、それを見ると後ろの方に「未使用領域」が見える筈。
 後は前にあるボリュームを選択して右クリック→「ボリュームの拡張」を選択、ウィザードが表示されるので「次へ」を連打すれば目一杯まで拡張される、以上。

 ボリュームが拡張し終わったら、水色のアイコンを右クリックして「VHDの切断」で作業完了。

 以上。

 ◆

 その3。
 最後に、パフォーマンスを何より重視するなら、VHDを固定容量タイプに変換するのがお薦め。

 VHDというのはMicrosoft純正だけありパフォーマンス面では相当頑張っていて、圧縮の効いている「可変容量タイプ」のものでも「一般的な使い方」では素のHDDのアクセスとあまり変わらないパフォーマンスが期待できる。
 但し、圧縮が効いているだけあって絶対的なパフォーマンスを追いかけるならやはり不利なのは事実。

 ということで、VHDを固定容量タイプに変換する方法。
 といっても実は出来るのは「変換」ではなく「新規に固定容量タイプを作成して、中身をコピー」することなんですわ。

 なので、この作業をするにはディスクが十分に空いていることを確認して。
 再びHDD最後方にインストールされたOSを起動して、コマンドプロンプトを起動。
 さあコマンドを打ち込みましょ。

 diskpart

 ここでUACが起動して「いいの?」と訊いてくるので「OK」、新しいコマンドプロンプト画面が開く。
 その中で、以下のコマンドを入力。

 CREATE VDISK file=”新しく作るVHD” source=”今あるVHD” type=fixed

 容量にもよるが、一般的に暫く時間がかかりますよ。無事終わったら

 EXIT

 でこのコマンドプロンプトを閉じましょ。
 最後に、新しいVHDが起動出来るように、古いVHDと新しいVHDのファイル名を変更しておしまい、と。

 #ちなみに、固定容量タイプを可変容量タイプにコピーすることも可能。
  その時のコマンドラインは、以下の通り。

  CREATE VDISK file=”新しく作るVHD” source=”今あるVHD” type=expandable

  こうすると、新しいVHDは圧縮の効いた可変容量タイプになりまっせ。

 ◆

 以上。
 それでは皆さんもVHDブートでサクサク環境切替なPCライフをお楽しみ下さい。ではでは。

Share