[ カテゴリー » PC関連 ]

SQL Server 2005 Express SP3への更新に失敗する

blog20090220-SQLSvr2005ExpSP3-InstanceName

今週頭くらいからWindows XP SP3上で自動更新機能からMicrosoft SQL Server 2005 Express Edition SP3 (KB955706)のインストールを促されるのですが、いざやると毎回失敗していました。それだけならいいのですが、シャットダウンのときに毎回その更新をやろうとするため、時間がかかってしょうがない。

検索すると同じ症状になって質問している人がちらほらいるのですが、「SQL Serverなんて使ってるの?」→「要るかどうか分からないんです」→「普通使わないよ、消しちゃえ」→「使わないみたいですね、アンインストールします」てな流れ。

私使ってるから (T_T)

まずはWindows Updateに接続して、左側にある更新履歴を確認。あぁ、やっぱり何度も失敗している。エラーコードを見ると、0x2B2F。ところがこれでMicrosoftのページを検索しても何も出てこない。16進数は10進数に直して検索するLink なんてしらね~よ(つдT) 0x2B2F=11055。このエラーコードの意味は"Unable to install Windows Installer MSI file"、非常につかみどころが無い・・・

結局半日かけて解決した方法は以下の通り(基本的に管理者権限必要)
  1. 念のため、SQL Server関連はコントロールパネルのサービスから停止しておく。
  2. 更新はWindows Updateではなく、下記のフルインストールパッケージを使う。インストールパッケージだが、アップデートにも対応してくれる。
  3. インストール時にいろいろ聞かれるので、適当に答えるw
    • IISがインストールされていないという警告が出ますが、実際入れていないなら無視。
    • Management Studio Expressをインストールしているなら、更新対象に加える。
    • 画像のように(これは英語版ですが)、インスタンスの名前には既定のインスタンスを指定する。
  4. 上の更新でMSXML6の更新に失敗して後が全部失敗する場合、以下のようにする(XP SP3を入れるとMSXML6 SP2が入るのが原因らしい)。
    • このページLink にある、Windows Installer Clean UpLink をダウンロード [2010/10/8 ダウンロードできなくなりました。追記参照してください]。インストールするとスタートメニューのプログラムに追加されるので実行。MSXML6を削除する。
    • Microsoft Core XML Services (MSXML) 6.0Link をダウンロード、インストール。これでMSXML6が初期バージョンに戻る。
    • 再度SQL Server 2005 Express SP3フルインストールを実行。これでうまくいかない場合は、他を当たってください orz

      [2010/1/15 追記] SQL Server Express関連もこのツールで削除するとうまく行ったという報告があります。Toriさんのコメントを読んでください

  5. 自動更新を考え直させるためWindows再起動、もしくはコントロールパネル-管理ツール-サービスからAutomatic Updateをいったん停止・再起動。
  6. それでも自動更新が騒ぐ場合は、Windows Updateの更新履歴を削除。
    • コントロールパネル-管理ツール-サービスからAutomatic Updateサービスを停止。
    • %WINDIR%¥SoftwareDistributionディレクトリを名前変更するか削除。
    • Automatic Updateサービスを開始。
    • Windows再起動(シャットダウン時の更新が相変わらずセットされている場合)。
あ~疲れた。
[参考]

[2009/2/27 追記] 今読み返すと、MSXML6をアンインストールする(もしくは初期版に戻す)だけで良いんじゃないかと思えてきた。誰か気が向いたらお試しを。

[2009/3/19 追記] MSXML6アンインストール→Windows updateでうまく行ったという報告が来てます。コメント参照。

[2010/10/8 追記] Windows Installer CleanUpがダウンロード不可能になっているようです。この件の解決は2010/10/8の時点で文書番号: 968749Link にて、マイクロソフトに連絡を取るようにとなってます。契約を結ぶ必要があるなど面倒そうですが、費用はかからないとのことです。

[2010/10/8 追記] 検索Link したところ、以下のところからWindows Installer CleanUpがダウンロードできます。公式HPから取り下げられている以上これらは非正規と思われますので、自己責任でご使用ください。

— posted by mu at 10:06 pm   commentComment [22]  pingTrackBack [0]

PowerShellで目的の時刻のファイルを削除

すでに販売してないでしょうが、東芝のTranscubeLink ってハードディスクビデオを持ってまして、こいつは録画した内容をMPEG2ファイルとしてPCにダウンロードする事ができます。で撮り溜めてはUWSCLink を使って自動でPCに移動、時間があったら見ようと思ってたら結構たまってしまいました orz

そのうち毎週録画していた番組がすでに最終回を迎えていたにもかかわらず録画し続けたものが結構増え、これを一気に削除したいなと。Transcubeのプログラムをアップデートするとファイル名が番組のタイトルになるという機能が付くのですが、これで自動ダウンロードをすると毎週録画の番組は古いファイルが上書きされてしまうため、あえて無意味な英数字の羅列がファイル名になる状態で使用してました。よってファイル名で削除する方法は使えず。

削除したいMPEGファイルの共通点は時刻。録画終了時刻がファイルの作成時刻になっているため、これを使えば確実に目的のファイルを選び出せます。しかし共通しているのは時刻だけで、日付は曜日以外に共通性なし。こういう時PowerShellだと以下のようにできます。
dir *.mpg | where {$_.LastWriteTime.Hour -eq 21 -and $_.LastWriteTime.Minute -eq 54 -and $_.LastWriteTime.DayOfWeek -eq 0} | del
dirコマンドで拡張子mpgを持つファイルのオブジェクト(System.IO.FileInfo)配列を作成、次のwhereでそのオブジェクトのLastWriteTimeが日曜日21:54になっているものだけを抜き出し、delコマンドで削除します。whereコマンドの指定が正しいか確認したい場合、最後のdelコマンドを打たなければdirコマンドの様に選ばれたファイルのリストが表示されます。

分かっている人には当たり前の内容ですね。UNIXでもPerlとか使えば可能でしょうがこちらの方がスマートですし、これが.NETというVisual StudioやASP.NETなどと同じ基盤を背景にして実行されているというのが興味深い。私としてはWindowsって95のころはつまらなかったのですが、バージョンが進むごとに面白くなってしょうがないです。でも7はVistaとほとんど変わりなしみたいで、つまらなさそうw

[2011/4/7 追記] アクセスログを見ると最も古いファイルを消すという内容で検索が入ってました。以下のでどうでしょう?
(dir | where {$_ -is [System.IO.FileInfo]} | sort LastWriteTime)[0] | del
(dir | where {$_ -is [System.IO.FileInfo]} | sort LastWriteTime)[0..2] | del
(dir | where {$_ -is [System.IO.FileInfo]} | sort LastWriteTime)[0,2,4] | del
2行目は最も古いのから3つ、3行目は最古・3番目・5番目(どういう状況だ?)を削除。便利だ。

— posted by mu at 09:07 pm   commentComment [0]  pingTrackBack [0]

コンパイラを疑う前に

「~自分のプログラムを100回疑え」。大学でC言語を勉強していたときの先輩の言葉です。

別にこれはどの言語でも当てはまる事なのですが、特に(.NETを除く??)C/C++言語は実行時に変数型や値のチェック、自動型変換などほとんどやってくれないため、高速で曲芸的なことをするプログラムが書ける一方奇妙なバグを生みやすく、また奇妙ゆえ原因も分かりにくく、ついコンパイラやライブラリに問題があるのではないかと疑いたくなります。

しかしマイナーな製品ならともかく、MicrosoftやGNUのコンパイラ・ライブラリは出荷前はもちろんの事、出荷後も世界の多くの人が使用して動作を確認しているわけでして、そう頻繁に問題に出くわすわけはない。99%自分の書くプログラムに問題があるはずだから何回でも見直しなさい、というのが上の言葉の解釈です。

今日はTclLink から呼び出されるコマンドのWindows DLLをVisual Cで書いていたのですが、実行するたびに使用メモリが増えていく、いわゆるメモリーリークに悩まされていました。使用メモリの大きさから、この部分のメモリが解放されなければ計算上はつじつまが合うというのは目処をつけたのですが、解放する処理は行われているはずでなぜ解放されないのか分からない。Tcl拡張コマンド用DLLという特殊な物でもあり、なにかメモリを解放するライブラリにバグがあるのではと頭をよぎったのですが・・・

やっぱり私が悪うございました orz

別の箇所でまったく同じ量のメモリを確保していて、そちらを解放していなかったというお粗末な内容。

ちなみに私の経験の中で自分のプログラムが悪くなかった(と思う)のは、Windows 95のTrueTypeを描画するAPIだけです。まったく同じプログラムをWindows NTで実行したら何の問題も無かったので・・・

— posted by mu at 10:11 pm   commentComment [0]  pingTrackBack [0]

Windows 7βを入れてみた

Windows7-Desktop

Windows 7を入れるにはVistaが動くマシンの方がいいのでしょうが、手持ちのそれはDell Vostro 1500ノートPCであり、HDD交換が面倒 & メインマシンの停止を意味するため、AthlonXP 2100+/768MB DDR RAM/GeForce 6800のデスクトップマシンに入れることに。

とりあえずインストールは問題なく完了。Vista世代から見ればかなり性能の劣るマシンですが、スワップの嵐ということも無くAeroデスクトップで動いてます。グラフィックドライバはWindows 7専用が必要らしく、nVidiaの場合はWindows Updateをかければインストールされます。

現時点気になったのは、
  • IEでページをスクロールさせたりウィンドウサイズを変更するとページ表示がちらつくこと。Vostro 1500のVistaではそんなことは無く滑らかですので、マシンの性能不足かWindows 7がβなせいだと思います。(2009/1/13 追記: トラブル後再起動したら気にならないレベルになりました)
  • ウィンドウを画面の端のほうに持っていくと枠が現れ、マウスボタンを離すとその枠の形にウィンドウが整形されてしまうこと。画面端にウィンドウをきれいに収める機能なのでしょうが、どうも余計なお世話。これはどこかの設定で変更できるでしょう。

nTuneLink 入れようとしたら、Install Shieldが起動中にOSごと無反応になってしまったので、今晩はここまで。

[2009/1/11 追記] どうもPC自体が古くなって不安定になっているらしい。もう一度nTuneインストールに挑戦したらすんなり入ったのですが、その後エクスペリエンス インデックス測定中に再びハングアップ、以後起動すらしなくなりました orz

[2009/1/12 追記] またメモリの接触が悪くなっていた模様。コネクタに問題があるのでしょうか。挿し直して現在Memtest86で確認中。

[2009/1/13 追記]
  • PSULink 動かず。おそらくGameGuardLink のせい。
  • nTuneはインストールできるものの、nVidiaコントロールパネルにクロック変更の項目が現れない。
  • Aeroデスクトップのサムネイル機能(画面下タスクバーにマウスカーソルを置くとそのアプリケーションの縮小画面が表示される)が強化されてますね。あまり使わないけどVista SP2にも入れてくれないかなぁ。

[2017/1/21] 文中の年がすべて2008だったのを修正

— posted by mu at 02:03 am   commentComment [0]  pingTrackBack [0]

ロボットをカウンターから除外

これを書いている時点でこのブログの来訪者カウンターは158,103となっていますが、9割以上は検索ロボットであることは分かってました。ppBlogLink のページを見ると検索ロボットをカウントしない方法が載ってましたので、先ほど変更完了。これからは現実に近いカウントがされると思います。あとカウンターの桁数も6桁表示されるようにしました。

[参考]

[2009/1/14 追記] 東京大学 喜連川研究室Link をカウント対象外に追加

[2009/1/23 追記] トレンドマイクロLink をカウント対象外に追加、WEBロボットのネットワークアドレス一覧へのリンク追加。

[2009/12/27 追記] User agent 'CamelStampede'をカウント対象外に追加。検索エンジンらしいLink

[2010/7/24 追記] User agent 'Googlebot'をカウント対象外に追加。ログにはGooglebot-Mobileと。

[2010/11/30 追記] アドレス'compute-1.amazonaws.com'をカウント対象外に追加

— posted by mu at 03:21 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0270 sec.
prev
2026.2
next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28