2013/12/09

XPでBITSがコケる問題。

なんだか知らんけど、ここのところ何度もハマっているのでメモっておくこととする。
もちろん無保証情報です。

とはいえ、だいたいここら辺の和訳レベルだったりする。
  • XP環境(無印→SP2→SP3とアップデート)
  • Microsoft Updateを実行すると、「更新を探しています…」で帰ってこない
  • 返ってきても、いざインストールをしようとすると全パッチ即時失敗
    (0x80246008とか出たりする)
  • サービス一覧に「Background Intelligent Transfer Service(BITS)」が居ない。
    その代わり、「@%SystemRoot%\system32\qmgr.dll,-1000」とかが居る。
  • 上記サービスを起動しようとすると、エラー 1290: 0x50a で起動できない

ではプロシージャをば。
regsvr32を実行後は「成功しました」というのが出るのを確認すべし。
  1. IE閉じれ。
  2. ファイル名を指定して実行で cmd でDOS窓起動。
  3. regsvr32 qmgr.dll
  4. regsvr32 qmgrprxy.dll
  5. いっぺんWindowsを再起動する。
  6. 再起動完了後、また cmd でDOS窓起動。
  7. 以下コマンドを1行で。コピペが正義。
    %windir%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %windir%\inf\qmgr.inf
    このコマンド実行後「OSのディスクをくれー」と言われる場合があるが、その場合はOSディスクを入れるんじゃなくて、 %windir%\ServicePackFiles\i386 を指定してやる。
  8. 再起動。
  9. 再起動完了後、[マイコンピュータ]を右クリック、[管理]を開いて[サービス]セクションへ。
    BITSを手動で起動してみて起動できたらGood。
  10. 前項9.で起動できない(「指定されたファイルが見つからない」云々)ようなら cmd でDOS窓を開いて下記コマンドを1行で実行。
    Reg add HKLM\SYSTEM\CurrentControlSet\Services\BITS\Parameters /v ServiceDll /t REG_EXPAND_SZ /d %windir%\System32\qmgr.dll
  11. 再起動。
  12. 再起動完了後、9.と同じようにBITSサービスを手動スタートさせてみる。
  13. 開始できないようならさらに以下のコマンドを叩いて再起動。
    Reg add HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToBackup
  14. BITSの手動起動ができたら、スタートアップの種類を「自動」に設定しておこう。
…という感じ。コマンド叩いたりサービス管理を見たりするので、そこら辺の細かい作業方法は別途覚えておくべし。



で、MSのサイトには「WU/MUでトラブってたら自動的に直すよ」というFix itが以下らへんにある。
  http://support.microsoft.com/fixit
  http://support.microsoft.com/mats/windows_update/ja

が、BITSが死んでる場合は基本的に上記の自動修復では治らないので注意。
「不具合発見、完了」とか表示されるけど治りません。

かゆい所に手が届かないことがあるのが残念な感じ。


2013/11/27

微妙に止まる更新 / The Microsoft Conference 2013

いや、書くに書けない内容の出来事が多すぎて…。
NDA とかもあるし。


仕事の方は、まあ目下のところ Windows XP のサポート終了がとにかく大きい。
残ってる XP マシン、そして Office 2003 の駆逐に春先までのタスクは偏重する感じかな。

先週行なわれた The Microsoft Conference 2013 にも顔を出して色々と情報収集。
が、どちらかというと新しい技術の紹介が多くてちょっと方向性が違った感じ。
もちろん全く参考にならないというわけではなく、今後の環境構築や考え方のヒントにはなったので収穫はあった。


あとは2日目に急遽行なわれたテクノロジーセンター長でお馴染み澤さんのセッション。
イベントの舞台裏をぶっちゃけるという内容で、それこそこんなところにおおっぴらに書けない内容ばかりw
澤さんの軽妙なトークで繰り広げられる暴露話は、イベントの裏方をやる人間として共感できたり、ああやれば良いのかーという参考になったり。
帰社予定をちょっとずらして聴いた価値は充分にあったかな。

MSKKさんには、今後もこういうライトなセッションもぜひ用意していただきたいw

2013/11/13

Documents for security update

いや、得られる情報は蛇足であることはちゃんと把握してるんだけど。


Linuxとかのこと考えてないなぁ、と。

WindowsプラットフォームのことだしWindowsで見ればいいじゃん
…という話なのは重々承知ですが。

でもWindowsでもオプションコンポーネントだよね>Silverlight

 あと、Moonlightというのも存在は知ってます。



でもなんかちょっと違くない?
セキュリティ情報って広く一般に知らしめて
少しでも多くの人に対策とってもらいたいんだよね?


んじゃ、そんなに普及してない方言のような技術を押し出しても…ねぇ。


2013/11/08

Disabling IPv6 on Ubuntu

別にIPv6が悪いわけではなく。
環境の不一致による離婚。

IPv4な社内LANなんかでLinuxを使用していたりすると、
プログラムが勝手にIPv6でListenしたりして
ネットワーク上に見えなくなることがあったので、
残念ながら大元から無効化する。

/etc/sysctl.conf に以下2行を追記。
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
※古いバージョンだと2行目は要らないかも。当方12.04LTS。

登録後、
# sysctl -p
で無効化。

/sbin/ifconfig した時に
eth0      Link encap:イーサネット  ハードウェアアドレス xx:xx:xx:xx:xx:xx 
          inetアドレス:192.168.xxx.xxx  ブロードキャスト:192.168.xxx.xxx  マスク:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
…という感じに、ipv6アドレスが表示されてなければ完了。


また会う日まで、ごきげんようIPv6。

2013/11/07

SSLCipherSuite of Apache web server

ApacheサーバのSSLにおいて、RC4暗号が弱いということはわかっている。



わかっているのだが。
これ、PCブラウザはいざ知らず、携帯端末なんかはどうなんだろう。

IE6がRC4を優先したりというのは解っているけどもう来年4月には「うんこ化」が決定しているわけで、あんまり気にしてないんだけど。
古い携帯電話なんかでアクセスしてくる人を「うんこだからブー」と一律言っていいものかどうか。


資料が見つからず、ちょっと悩ましい。

2013/11/06

Using history of my Mac

ちょっとメモ的に、今までに所持してきたMacを晒してみる。

Macintosh LC475
Macintosh Centris 610
PowerBook 540c
Power Macintosh 6100
Power Macintosh 7600
Mac mini Late 2005 (PowerPC G4)
Mac mini Mid 2011 (Sandy Bridge)
MacBook Air 2012

下2台が現役さん。




…結構使ってた。

2013/10/30

To get WMI properties

ちょいとWindowsクライアントからメモリの情報を取得したくて、
ひっさびさにVBScriptなんぞを書いてインベントリの真似事的なものを作成している。

知りたいのは、だいたい以下の感じ。
 ・メモリスロットの総本数
 ・メモリ搭載容量
 ・ メモリ種類

スクリプト的にはこんなところか。

Set objWMI = GetObject("winmgmts:\\.\root\CIMV2") 
aryForm = Array("Unknown","Other","SIP","DIP","ZIP","SOJ","Proprietary","SIMM", _
    "DIMM","TSOP","PGA","RIMM","SODIMM","SRIMM","SMD","SSMP", _
    "QFP","TQFP","SOIC","LCC","PLCC","BGA","FPBGA","LGA")
aryType = Array("Unknown","Other","DRAM","Sync-DRAM","Cache-DRAM","EDO","EDRAM","VRAM", _
    "SRAM","RAM","ROM","Flash","EEPROM","FEPROM","EPROM","CDRAM", _
    "3DRAM","SDRAM","SGRAM","RDRAM","DDR","DDR2")

' -----------------------------------------

Set colItems = objWMI.ExecQuery("SELECT * FROM Win32_ComputerSystem") 
For Each objItem in colItems
    strResult = strResult & "SystemName: " & objItem.Name & vbCr
    strResult = strResult & "SystemManufacturer: " & objItem.Manufacturer & vbCr
    strResult = strResult & "SystemModel: " & objItem.Model & vbCr
    strResult = strResult & "TotalMemory: " & objItem.TotalPhysicalMemory & " bytes" & vbCr
Next

Set colItems = objWMI.ExecQuery("SELECT * FROM Win32_PhysicalMemoryArray") 
For Each objItem in colItems
    strResult = strResult & "MemorySlot: " & objItem.MemoryDevices & vbCr
Next

Set colItems = objWMI.ExecQuery("SELECT * FROM Win32_PhysicalMemory") 
For Each objItem in colItems 
    strResult = strResult & "----- " & aryForm(objItem.FormFactor) & " Module (" & _
        aryType(objItem.MemoryType) & ") on " & objItem.DeviceLocator & vbCr

    strResult = strResult & "Tag: " & objItem.Tag & vbCr
    strResult = strResult & "DataWidth: " & objItem.DataWidth & " bit" & vbCr
    strResult = strResult & "MemoryCapacity: " & objItem.Capacity & " bytes" & vbCr
    strResult = strResult & "Speed: " & objItem.Speed & "MHz" & vbCr
Next

WScript.Echo strResult

Option Explicitしていないので汚いもんだけど。


結果は下記のとおり。

で、Moduleの後ろのカッコ内がMemoryTypeから拾ったデータなんだが、
なぜか0(=Unknown)になってしまう。

MSDNのライブラリを確認すると、DDR3がない。
「じゃあDDR3なんじゃね?」としたいところだが、
このPC、DDR2なんだよね。本来21が返らないといかん。

謎。
だが、大勢に影響なさそうなのでこれで通す感じ。