ラベル Windows の投稿を表示しています。 すべての投稿を表示
ラベル Windows の投稿を表示しています。 すべての投稿を表示

2014/03/19

WindowsServer 2008 のタスクスケジューラで 2147943645 エラーでタスク起動不良

ここんとこ、Windowsサーバと格闘しておりました。


デイリーのバックアップ用のジョブをタスクスケジューラ上で作成して、
テスト実行すると問題なく起動するくせに、いざとなったらエラーが出ている。

タスクスケジューラは、ユーザー "<ユーザ名>" の "\<タスク名>" タスクを開始できませんでした。追加データ エラー値: 2147943645

なんじゃこれー。

…と思ったら、ユーザがログインしていない場合にジョブが実行できないとのこと。

ということで、ジョブのプロパティ内にある
  • ユーザがログオンしているかどうかにかかわらず実行する
にチェックを入れればOKというお話でした。


勝手に入れられたタスクジョブの実行回避というセキュリティ上の話からだと思うけど、
ログインしっぱなしというのは逆にセキュリティ的におかしくないすかね。

「タスクの実行時に使うユーザアカウント」情報を保持している割に
ログオン時のみ実行がデフォルトってのもなんだかなぁ、と思うのですが。。。

さらにはコンフィグミスで発生しうる内容なんだからコード返答じゃなくて
ちゃんと発生した事由を喋ってくれよー……と。


75%ほど愚痴でしたw

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/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が返らないといかん。

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

2013/10/29

WindowsXP Installation

あと半年でsupport expiredだっつーのに今更なんじゃーという話ではあるんだが、
会社で思いっきりハマったので備忘録。


以下は、こんな方へのお勧めレシピ(はぁと
  • WindowsXP SP3入れたが、Windows Updateがいつまで経っても進まない
    (「最新のソフトウェアを確認しています」のまま帰ってこない)
  • WindowsUpdateでチェック中に「0x8024D001」でエラーになる
  • どっちにしても時間ばかり浪費して、僕もう疲れたよなんだかとっても眠いんだ

というところで、以下をチェックすると幸せかもしれない。
パトラッシュ、一緒に旅立とう(←ダメ)

  1. InternetExplorerを8にしてみる。
    どうやら6は見限られて久しいらしい。
    ダウンロードはここら辺に
  2. Updateエージェントが古い可能性があるらしい。
    エージェントを手動で突っ込むのだが、
    最新版のスタンドアロンはないらしいので、
    ひとまず旧版をインストールするべし。
    ここらへん
  3. それでもアカン場合、MSのサイトにテスト&フィックスするツールがある。
    こちらのfix itページを見るといいかも。
  4. 上記のfix itだったりで「.NET Frameworkの最新版が欲しい」とか言い出す場合がある。
    その時は2.0 SP2を入れればいいかもしれない
  5. 癇癪おこさない。
    残念だけど、WindowsUpdateはえらく時間がかかります。
    仕掛けて一晩寝かすとかの方が精神的には楽。


とにかく妙にブラックボックス化されてるところが面倒なんだよなあと毎回思う。
完全に隠蔽するか(ただのMac)、もっと開示するか(ただのLinux)のどっちかにしてほしい。
※あくまでも個人の主観と感想によるものであり、弊社の公式見解ではありません。

さて、行方不明のデバイスドライバを探すか…。