Windows : してログ

Windows7 あたりからは、Thumbs.db の作成場所が %LocalAppData%\Microsoft\Windows\Explorerにthumbcache_*.db に変更されています。 それ以前のOSや、ネットワーク上のディレクトリの場合は、そのディレクトリ下に作成されるようです。 旧システムやネットワークからローカルに持ってきたディレクトリにある、大量の Thumbs.db を一括削除するには、コマンドプロンプトを使うと効率が良いと思います。

del /ah /s Thumbs.db

オプションの /ah は隠しファイルを対象とする指定、/s はサブディレクトリを再帰的に処理する指定になります。

Windows7 が「エクスプローラーは動作を停止しました」というメッセージを表示し、デスクトップやタスクバーと共にエクスプローラがクラッシュすることが多くなりました。 大量のファイルをコピーしているときなどに良く起こるのですが、途中で作業が停止してしまうのでかなり不便を感じています。

とりあえず、他のサイトでも紹介されている KB2494427 をインストールして様子を見ています。 なお、この更新プログラムはマイクロソフトが十分テストを行ったものでは無いようで、問題のあるシステムのみに個別に適用するよう注意表記されております。


追記

適用後、見事にクラッシュしました。 Windows7 は使わないほうが良さそうですね。

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 の[システムのプロパティ>リモートネットワーク レベル認証>リモート デスクトップを実行しているコンピューターからのみ接続を許可する (推奨) ]のチェックを外します。