Windows : してログ

Windows 7 でネットワークドライブにある削除したはずのファイルやディレクトリが表示され続けるトラブルに見舞われた。 サーバー側のファイルはすでに無いはずなのに、ネットワークドライブ上のファイルにはアクセスできる。 そのうち数個のファイルは、アイコンに×マークが表示され利用できないものもあった。 現象を整理すると下記の通り。

  • サーバー側で削除したファイルが表示されアクセスも可能
  • 一部のファイルは利用不可
  • サーバー側、クライアント側、ともに再起動してみても変化なし
  • ネットワークドライブを切断し再度接続してみても変化なし
  • ステータスバーには「オフライン(同期が必要)」と表示されている
  • ツールバーには、同期メニューが表示されているが、実行しても変化なし

最終的に改善できたのは、同期センターを開いた時、フォルダのところでオフラインファイルという表示があり、そこで右クリックして同期を行った操作だ(記憶上の内容を書いたので違っていたらごめんなさい)。 普段オフラインファイルを意識したことは無いが、特に必要性も感じないしオフにしても良いかも知れない。

普通にネットワーク上で共有ディレクトリとして使っていただけなのだが、なぜか「ネットワークエラー、~に対するアクセル許可がありません。ネットワーク管理者に...」と拒否されるようになってしまった。 リモートコンピュータからは、セキュリティタブは表示されるが、所有者の変更等は全てアクセス権限が無いと撥ね付けられてしまう。 サーバー側のデスクトップから設定しようにも、今度はセキュリティタブが表示されない。 ディレクトリへのアクセスどころか、削除も、リネームすらも全く受け付けない事態となってしまった。

その他いくつか試してみたことはありますが、今のところ解決できていません。 止められないサーバーなため、再起動やセーフモードなどは試すことが出来ない状況です。 RAID 組んだ NTFS は信頼性が高いと思っていましたが、突然アクセス不能になったことから、何らかのバックアップ措置が必要かも知れません。 今回はバックアップがあったデータだから良いものの、もし無かったり、共有ディレクトリのルートだったりしたらと思うと恐ろしい。

追記

2日後ぐらいに見たらディレクトリ毎消えていました。 削除の操作を何回か試していたので、時間差で消えたのかどうなのかは分かりません。 同様の症状になった場合は、削除の操作はせず、数日待ってみた方が良いかも知れません。

Windows Server 2003 で下記のような障害に遭遇しました。

  • リモートデスクトップで接続できなくなる
  • 実機でもログインできない(正しい認証をしても「Windows へようこそ」の画面に戻ってしまう)
  • PING は正常に応答する
  • 共有ディレクトリには問題なくアクセスできる

サーバーのデスクトップを表示できないため、シャットダウンや再起動もできない状態になりました。 電源ブチ切りはしたくないので悩みましたが、別PCからコマンドプロンプトからリモートシャットダウンできることに思い至りました。

shutdown /s /m \\server_name

しばらく実機の画面変化が無く、だめだったのかと思いましたが、それでも待ってみると電源が落ちました。 本体がかなり熱くなっていて、恐らくですが熱暴走かと思われます。 CPU に負荷を掛けるバッチ処理を長時間していたので、排熱が追いつかなくなったのでしょう。

大量の画像ファイルを Topaz Adjust などのツールで一括処理したい場合は、Photoshop のアクションを組んで実行させます。 しかし、処理中に表示されるプログレスバーが最前面にポップアップされ、入力フォーカスも移るため他の作業が困難になります。 このプログレスバーを非表示にする方法は見つけられませんでしたが、Windows の別ユーザーのタスクとして裏で実行させておけば、処理中でも問題無く別の作業を行うことができます。

  1. Windows に作業用のユーザーを追加します
  2. メインユーザーのデスクトップ上で、Ctrl + Alt + Delete を押します
  3. ユーザーの切り替えをクリックし、作業用ユーザーを選択します
  4. 作業用ユーザーのデスクトップ上で、Photoshop のアクションを走らせます
  5. 再び、Ctrl + Alt + Delete を押します
  6. ユーザーの切り替えをクリックし、メインユーザーに戻ります

作業用ユーザーのデスクトップ上で実行しているタスク(ここでは Photoshop アクション)は、ユーザー切り替えをしても裏で実行され続けます。 メインユーザーのデスクトップ上には何も表示されませんので、必要に応じてユーザー切り替えを行い、進捗状況を確認してください。

普段はシングルユーザーで Windows を使っていて、マルチユーザーの使い方まで意識が及びませんでした。 作業終了まで、PC を触らないようにしていたり、わざわざ別の PC で実行させてたりしまいたが、このような使い方をすればとても便利で効率的です。 何と言っても、有り余る昨今の PC を有効活用できます。

Windows にインストールした PHP をコマンドプロンプトから利用すると、php.ini の設定内容が反映されないのが気になっていました。 それほど使用頻度が高くないので、ini_set 関数などで対応していたのですが、さすがに不便なので調べてみました。 どうやら、見ている設定ファイルの場所が違うためのようです。

この設定ファイルに騙されるな
C:\Program Files (x86)\PHP\php.ini
本当の設定ファイルの場所
C:\Users\UserName\AppData\Local\VirtualStore\Program Files (x86)\PHP\php.ini

リモートデスクトップ上のマシンに Ctrl + Alt + Del を送りたいときは、Ctrl + Alt + End で送ることができます。

リモートデスクトップ上のマシンで、更にリモートデスクトップしているマシンに送りたいときは、Shift を加えて Ctrl + Alt + Shift + End で送ることができます。

これで、シャットダウン等が GUI から行えます。

Windows 8.1 をゲスト OS としてインストールしたところ、最初は USB が使えませんでした。 仮想マシンに、USB コントローラがインストールされていないのが原因です。 また、USB xHCI コントローラが入っている場合も、USB EHCI+UHCI コントローラに入れ替える必要があります。

  1. 仮想マシンをシャットダウンします
  2. 仮想マシンの設定を開き[ハードウェア>追加>USBコントローラ>EHCI+UHCI]を追加します
  3. 仮想マシンを起動します
参考

そのままでは「リモートコンピュータには、お使いのコンピュータでサポートされていないネットワークレベルの認証が必要です。サポートが必要な場合は、システム管理者かテクニカルサポートに問い合わせてください。」と表示され、接続できません。 この場合、WindowsXP SP3 であれば、下記のレジストリを変更することで接続できるようになります。

  1. レジストリエディタを開く(ファイル名を指定して実行>regedit)
  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]にある[Security Packages]の最後に行を追加し[tspkg]を入力する
  3. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders]にある[SecurityProviders]の末尾に[, credssp.dll](カンマを忘れずに)を入力する
  4. OS を再起動する

別な方法としては、Windows8.1 の認証レベルを変更することでも可能です。 この場合、Windows 8.1 の[システムのプロパティ>リモートネットワーク レベル認証>リモート デスクトップを実行しているコンピューターからのみ接続を許可する (推奨) ]のチェックを外します。

WIndows7 ですが、最近メモリが足りなくなることが頻発するようになっていました。 最近のブラウザはメモリを贅沢に使うようになっているし、作業上3種類を同時起動していましたから、仕方ないのかなと。 でも、さすがに我慢できなくなってきて、増設しようかと調査していたら、すでにマザーボードの最大容量4GBを積んでいて、これでメモリ足りないなんて訳ないだろうと疑い始めます。 システムのほうをチェックしていて、ようやく気づきました。 システムのプロパティでは4GBと表示されているのに、タスクマネージャでは2.8GBになっています。 しばらく見比べていて、システムのプロパティのある表示に目が止まります。 あれ? カッコ書きで2.75GB使用可能って書いてある。 なるほど、今まで2.75GBしか見えて無かったってことですよね。

インターネットで検索してみると、BIOS が古いと 64bit の Windows7 では 3.2GB 以上のメモリをフルに利用できないことがあるそうです。 原因が分かったので、最新版の BIOS を探すことにしました。 蓋を開けてマザーボードを調べると、Foxconn G31MX とあります。 これを検索すると、G31MX と G31MX-K というのがヒットするのですが、どちらなのかイマイチ分からない。 ここは適当ですが、G31MX-K のページからダウンロードすることにしました。

  • Foxconn G31MX-K サポートページから Tech Support のタブに BIOS(最新版) と FOX LiveUpdate をダウンロード
  • LiveUpdate では最新版の判定になりますが、手動アップデートを行い 773F1P14 を入れます
  • 終了したら当然再起動です(動け!)
  • 新しいハードウェアが検出されたり、Windows 再認証が必要だったりしますが、取り敢えず確認します
  • 無事4GBと認識され、動作もだいぶ軽くなったと思います
  • 不思議なことに、接続していない A ドライブを認識しました(懐かしのフロッピーディスクドライブです)
参考:Microsoft のサポート情報
BIOS アップデート前後の比較

↑ BIOS アップデート前(2.8GB しかない)


↑ BIOS アップデート後(4GB になった)



↑ BIOS アップデート前(灰色のハードウェア予約済という部分が見えていない)


↑ BIOS アップデート後(灰色の部分が無くなった)

Windows 8.1 のライセンス認証をしようとしたところ、電話でのライセンス認証になりました。 VMware ESXi 用に購入した PC にプリインストールされていた、Windows 8.1 を仮想マシン上にインストールしようとしていますので、ハードウェアが全部変わったという扱いになったのだと思います。

  1. ライセンス認証の実行

    「このプロダクトキーは他のPCで使われています」という表示が出て、新しいプロダクトキーの入力、プロダクトキーの購入、サポートに電話(Windows を再インストールしたり、ハードウェアを最近変更した場合は、サポートにお問い合わせください)の選択肢が表示されました。「サポートに電話」を選択します。

  2. 国または地域の選択

    地域の選択が表示されるので、「日本」を選びます。

  3. 電話

    フリーダイヤルと有料電話番号が表示されるので、フリーダイヤルのほうに電話します。

  4. インストールIDの入力

    自動ガイダンスに従って、製品種別(Windows)を選択すると、インストールID の入力を求められますので、画面に表示されている 9 組の数字を入力します。ここで通った場合は、確認ID を自動ガイダンスが案内してくれますので、次の画面で入力します。今回は、ハードウェアの大幅な変更と判断されたためか、オペレータとの対話になりました。

  5. オペレータとの対話

    しばらく待たされた後、オペレータに繋がりました。聞かれたことは、インストールID、製品の種類、他のPCで使っていないか、何回目のライセンス認証か、今回の1台での利用になるか、くらいだったと思います。それぞれ、Windows 8.1、プリインストールされていたものを消して ESXi 上の仮想マシンにインストールしたこと、同じPCでの使用であること、2回目のライセンス認証であること、今回の1台での利用であること、を回答しました。

  6. 確認ID の入力

    オペレータから確認ID が発行されたと告げられ、口頭で聞きながら入力をしました。最後に、「ライセンス認証」ボタンを押して Windows ライセンス認証が完了しました。

この Windows 8.1 は、最初から ESXi 上の仮想マシンで利用するつもりだったので、プリインストール時に認証しなければ良かったのだと思います。 プリインストールの OS を、ゲスト OS として同一マシンの仮想マシン上で実行するのは、ライセンス違反とはならないようです。