Hey, Scripting Guy!

Hey, Scripting Guy!

TechNet コラムへようこそ。このコラムでは、よく寄せられるシステム管理スクリプトに関する質問に Scripting Guys がお答えします。システム管理スクリプトについて質問がある場合は、scripter@microsoft.com (英語のみ) までお送りください。すべての質問に回答することはできないかもしれませんが、可能な限り対応いたします。

今日の質問 : Web ページがアクセス可能かどうかを確認する方法はありますか


Web ページがアクセス可能かどうかを確認する方法はありますか

Q

Scripting Guy さん、よろしくお願いします。Web ページがアクセス可能かどうかを確認する方法はありますか。

-- JW

A

JW さん、こんにちは。正直なところ、このような質問は苦手です。答えがすぐには思い付かないのに、何らかの方法があることは漠然とながらもわかるような質問です。スクリプトの世界では、難しそうなことが意外に簡単な場合がありますが、逆に簡単なことが実際は難しいという場合もあります。

さいわい、今回の質問は取り組んでみると意外にも簡単でした。Web ページのコンテンツを取得する方法があるのはわかっていました。わからなかったのは、そのコンテンツが取得可能かどうか (つまり Web ページがアクセス可能かどうか) を確認する簡単な方法が存在するのかという点です。前置きはこれくらいにして、スクリプト センターのホーム ページが稼動しているかどうかを確認するスクリプトを次に示します。

On Error Resume Next

strURL = "http://www.microsoft.com/technet/scriptcenter/default.mspx"

Set objHTTP = CreateObject("MSXML2.XMLHTTP") 
objHTTP.Open "GET", strURL, FALSE
objHTTP.Send

Wscript.Echo(objHTTP.statusText)

まず、スクリプト センターの URL を変数 strURL に割り当てています。次に、MSXML2.XMLHTTP のインスタンスを作成します。このオブジェクトは、クライアント コンピュータと HTTP サーバーとの通信を可能にする COM オブジェクトです。さらに、Open メソッドを呼び出し、パラメータとして、"GET" (サーバーから情報を取得することを意味します)、スクリプト センターのホーム ページの URL が格納された変数 strURL、呼び出しを同期化する FALSE を渡します。その後、Send メソッドを使用して要求を HTTP サーバーに送信しています。

では、http://www.microsoft.com/technet/scriptcenter/default.mspx がアクセス可能かどうかを確認するにはどうするのかというと、statusText プロパティの値をチェックすればよいのです。statusText の値が OK であればページはアクセス可能であり、OK 以外であれば、何か問題が発生し、指定した URL にアクセスできなかったことを意味します。

ところで、Web ページのコンテンツは MSXML2.XMLHTTP オブジェクトの ResponseText プロパティとして返されます。したがって、FileSystem オブジェクトを使用してページのコンテンツをファイルに保存することができます。それを実行するサンプル スクリプトを示します。

On Error Resume Next

Const ForWriting = 2

strURL="http://www.microsoft.com/technet/scriptcenter/default.mspx"

Set objHTTP = CreateObject("MSXML2.XMLHTTP") 
objHTTP.Open "GET", strURL, FALSE
objHTTP.Send

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("script_center.htm", ForWriting)
objFile.Write objHTTP.ResponseText
objFile.Close

ここで、注意が必要な点があります。Web ページで使用されているスタイル シートやページ内のグラフィックスへのリンクが相対リンクか絶対リンクかなどによって、保存したドキュメントの書式設定が Web ページとは異なる場合があることです。ただし、ほとんどの場合、書式設定が多少異なっていてもページの内容は読み取ることができます。


関連情報

Hey, Scripting Guy! - アーカイブ もチェックしてください。

ページのトップへページのトップへ