2008年6月30日月曜日

WindowsXP SP3適用後

「SP3適用後にWindows UpdateやMicrosoft Updateが正常にインストールできない。」

●Windows の Wups2.dll ファイルを登録する
 1.自動更新サービスを停止します
   [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします
   [名前] に cmd と入力し、[OK] をクリックします
   コマンド プロンプトでnet stop wuauservを入力し、Enter キーを押します

 2.Wups2.dll ファイルを登録します
   コマンド プロンプトで次のコマンドを入力し、Enter キーを押します
   regsvr32.exe %windir%\system32\wups2.dll
   ※"\"(バックスラッシュ)は"¥" (円記号)を入力してください

   64bit版は以下のように入力してください
   regsvr32.exe %windir%\syswow64\wups2.dll

 3.コマンド プロンプトで次のコマンドを入力し、Enter キーを押して自動更新サービスを開始します
   net start wuauserv

 4.コマンド プロンプトを終了します


Windows UpdateまたはMicrosoft Updateを実行して更新がインストールされるか確認
ほとんどはこれで解決されます。

ここでは書きませんが、上記を実行しても解決できない場合はWindows Updateエージェントをインストールする必要がありますので
http://support.microsoft.com/kb/953541/の手順2を参考にしてください。

現在は通常のXP(32bit版)ならこちらからダウンロードできます。

例としてCドライブ直下に置いた場合の手順
コマンドプロンプトを開き以下のコマンドを実行する。

C:\> WindowsUpdateAgent30-x86.exe /wuforce

再起動

2008年6月26日木曜日

BINDのUPDATE

YUMは非常に便利ですが、BINDのUPDATEには注意が必要です。

既存のnamed.confがnamed.conf.rpmsaveにリネームされ
デフォルトのname.confに入れ替わってしまいます。

named.conf.rpmsaveの内容を確認してからnamed.confへ上書きコピー、
その後BINDを再起動すれば元に戻ります。

気づかずにそのままにしておくといつの間にか名前解決ができない状態になります。
 

2008年6月17日火曜日

FortiGate ウイルス削除メッセージ(Message meets Alert condition)

外部メールサーバからPOPによる受信時にウイルスを削除した。
※外部POPサーバーからなので、Internal → ExternalにPOPをチェックするようプロファイルを作成してある。

メッセージ内容
Message meets Alert condition

Virus/Worm detected: W32/Agent.CYU!tr (見つかったウイルス)
Protocol: "pop3" (POP経由)
Source IP: 10.*.*.* (ローカルIP:受信者)
Destination IP: 61.*.*.* (グローバルIP)
Email Address From: "elyse.davie@***.at" (送信元メールアドレス※偽装の確立が高い)
Email Address To: "info@***.com" (受信メールアドレス)
http://www.fortinet.com/ve?vn=W32%2FAgent.CYU%21tr
2008-06-16 10:32:39
device_id=FGT*****
log_id=1
type=virus
subtype=infected (感染している)
pri=warning
vd=root
policyid=1 (ポリシーID1で検知された)
serial=1
user="N/A"
group="N/A"
src=10.*.*.*
sport=1074
src_int="internal"
dst=61.*.*.*
dport=110
dst_int="external"
service="pop3"
status=blocked (削除しました)
from="elyse.davie@***.at"
to="info@***.com"
file="xjolie.zip"
virus="W32/Agent.CYU!tr"
ref="http://www.fortinet.com/ve?vid=431097"
msg="File is infected."

------------------------------------------------------------------------------------
virus="Suspicious"という場合は疑いがあるということでその場合のほとんどが、
status=passthroughとなってそのまま通過します。
まぁ注意してくださいということですね。
 

マネーフォーマット(3桁ごとのカンマ区切り)

数値を999,999,999形式に変換し戻り値は文字列とする。
ここではSQL文の中に組み込みやすいユーザ定義関数(スカラ関数)を利用します。


CREATE FUNCTION [dbo].[MoneyFormat]
(
@value money --対象数値
)
-- 三桁カンマのある文字列形式で返します
RETURNS varchar(20)
AS
BEGIN
-- moneyデータ型からvarchar に変換します
-- 最後に .00 を削除します
RETURN REPLACE(CONVERT(varchar, @value, 1), '.00', '')
END

--実行してみる

select dbo.MoneyFormat(999999999) AS res

0"ゼロ"フォーマット

数値を000001形式に変換し戻り値は文字列とする。
ここではSQL文の中に組み込みやすいユーザ定義関数(スカラ関数)を利用します。

CREATE FUNCTION [dbo].[IntZeroFormat]
(
@value INT, --対象数字
@size INT  --桁数
)
RETURNS varchar(20)
AS
BEGIN
  RETURN RIGHT(REPLICATE('0', @size) + CONVERT(VARCHAR(26), @value), @size)
END

--実行してみる。
--10 → 00010に変換する。

SELECT dbo.IntZeroFormat(10, 5) AS res

SQLServer ストアドの実行権限を与えるストアド

通常はストアドを作成後、実行できるユーザを設定します。
しかしDBを他のサーバに移した場合など再設定が必要な場合があります。
ひとつずつ設定するのは面倒なので、指定ユーザを一気に設定するストアドを作ってしまおう。
※エラー処理は省略しています。必要な方はご自分で考えてみてください。

CREATE PROCEDURE [dbo].[GRANT_ADD]
 (
   --パラメータ 許可を与えるユーザーを指定します(DBに存在しログインできる状態のユーザ)
   @UserName NVARCHAR(256) = ''
 )
AS
--[DBユーザ]に実行権限を与える

 SET NOCOUNT ON

 --変数定義
 DECLARE @objectname NVARCHAR(256), @cur_cnt INT, @loop_cnt INT
 DECLARE @sql NVARCHAR(100)

 --カーソル定義(ストアド名を抽出)
 DECLARE Cur CURSOR LOCAL SCROLL STATIC
 FOR
 SELECT NAME FROM sysobjects WHERE OBJECTPROPERTY(id, N'IsProcedure') = 1
                             AND name NOT LIKE 'dt_%'

 --カーソルをオープンする
 OPEN Cur

 SET @loop_cnt = 0

 IF (@@CURSOR_ROWS <> 0)
 BEGIN

  --@@が付くときはグローバルなので念のため別途保持しておく
  SET @cur_cnt = @@CURSOR_ROWS
  
  WHILE (@cur_cnt <> @loop_cnt)
  BEGIN
    --ストアド名を@objectnameへ
    FETCH NEXT FROM Cur INTO @objectname

    --実行権限を与えるSQLの発行
    SET @sql = 'GRANT EXECUTE ON [dbo].[' + @objectname + '] TO [' + @UserName + ']'
    --SQL実行
    EXEC sp_executesql @sql

    --次のストアドへ
    SET @loop_cnt = @loop_cnt + 1
  END
 END
 ELSE
 BEGIN
   PRINT 'ストアドが見つかりません'
 END

----------------------------------------------------------------------------------

あとは以下を実行して完了!(ただしログインユーザは先に作っておいてね)
EXEC GRANT_ADD @UserName = 'ExecUser'

※ExecUserは自分の環境に合わせてください。

2008年6月16日月曜日

yumでエラーが発生してupdateできない

/etc/cron.daily/yum.cron:
Error: failure: repodata/primary.xml.gz from dag: [Errno 256] No more mirrors to try.

//手動でyum updateすると・・・
[root@centos ~]# yum update
Loading "fastestmirror" plugin
Setting up Update Process
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 709 kB 00:55
http://apt.sw.be/redhat/el4/en/i386/dag/repodata/primary.xml.gz: [Errno -1] Metadata file does not match checksum
Trying other mirror.
Error: failure: repodata/primary.xml.gz from dag: [Errno 256] No more mirrors to try.

こんなログ(手動でのエラー)が、発生して何日も解決しない場合は

リポジトリが壊れている。またはyumのデータベースが壊れている可能性がある。

対処方法
1.yum clean all を実行してから yum updateを実行してみる。

2.それでも改善されない場合はリポジトリが壊れている可能性が高いので対象のリポジトリを
 アクセス除外してみる。
 今回はdagリポジトリなので/etc/yum.repo.d/dag.repo内のenabled=1を0に変更して
 アクセスしないように設定する。

 yum updateを再度実行してみる。

3.dagリポジトリの修復
 /etc/yum.repo.d/dag.repを開きアクセス先を変更してみる。
 enabledも1に戻す。

 [dag]
 name=Dag RPM Repository for Red Hat Enterprise Linux
 #baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
 baseurl=http://ftp.riken.jp/Linux/dag/redhat/el4/en/$basearch/dag/
 gpgcheck=1
 enabled=1
 includepkgs=インクルードしたパッケージが表示される(proftpd など)


 次にGPGキーをインポートする
 rpm --import http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt

 yum updateを実行してみる。
 

「MS08-031 : Internet Explorer の重要な更新」がインストールできない

なぜか更新MS08-031のインストールに失敗する・・・

そんなときはMicrosoftから別途プログラムをダウンロードしてexeを実行しよう。

以下からお使いOS、IEに一致するプログラムを選択。
ここからダウンロードページに行けます
 

yumコマンドでCentOS4.5にMySQL5

CentOS4のデフォルトではMySQLは4.1となります。
enablerepoレポジトリにはMySQL5.0が登録されているためそれを使います。

# yum --enablerepo=centosplus install mysql-server

PHPも同様に、php4.3をphp5.1にすることができます。
# yum --enablerepo=centosplus install php

※yumが使えない・・・
そもそもyumを使うためには、GPG KEY をインポートする必要があります。
# rpm --import http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-CentOS-4


ボソボソ:忘れっぽくなったな~ あれっ昨日何食べたっけ。。。。。
 

2008年6月12日木曜日

Virtual PC コンソール 表示されない!

Virtual PC コンソールが表示されなくなった。 (Virtual PC 2007)

タスクバーにはあるのだがデスクトップ上に見当たらない、というときは以下の手順を実行してみよう。

1.タスクバーにある「Virtual PC コンソール」を右クリックして「移動」を選択します。
2.おそらくカーソルが画面左上に行くと思います。
3.「→」や「 ↓ 」キーを押しているとあら不思議、見えてきます。

Virtual PC 2007 SP1(ダウンロード)を適用してみると対策になるかも。

<追記事項 >
●2009/02/20 SP1用の修正プログラム (ダウンロード
機能アップやいくつかの不都合が改善がされています。
「ネットワークのパフォーマンスアップ、安定性の向上」「解像度は 2048 x 1920 (32 ビット) まで対応」など・・・適用後のバージョンは「6.0.210.0」となります。

更新は必ずSP1を適用してから行うこと!

●2009/07/15 SP1用のセキュリティ更新プログラム KB969856(ダウンロード

Google検索