「Webサイトのコンテンツを、特定の日から入れ替えたい」というニーズが結構あります。
中には夜中 0時の瞬間に切り替えるために時間まで待機なんてことをやっているところも多々あるかと思います。
このコンテンツの切り替え作業を人の手でぽちぽちコピーして行うというのも1つの手なのでしょうが、プログラムでばっさり切り替える方法がありますので紹介しておきます。
<その1>
通常 IISをインストールすると、Inetpub ディレクトリのすぐ下に AdminScripts というフォルダができています。
このフォルダの中の adsutil.vbs というスクリプトは IIS環境をいろいろと確認したり操作できるスクリプトです。
例えば、
adsutil.vbs SET W3SVC/1/ROOT/Path "c:\inetpub\wwwroot2"
とするだけで Webサイトのホームディレクトリが c:\inetpub\wwwroot2 に切り替わります。
ホームディレクトリでなくても、仮想フォルダを作っておいてその下からごっそり切り替えることも可能です。
<その2>
通常の設定であれば IISのコンテンツは『このコンピュータにあるディレクトリ』としてローカルパスを指定していますが、『ほのコンピュータにあるディレクトリ』を選択することもできます。
“ほかの”といっても Webサーバ本体のマシンを指しても良く、Webサーバで共有にしたフォルダを“\\Webサーバ名\共有名”で参照することができます。
このような設定の場合、共有しているフォルダ情報を切り替えることでも実際のWebサイトのコンテンツパスを切り替えることが可能です。
NET SHARE WebContent /DELETE
NET SHARE WebContent=c:\inetpub\wwwroot2
NET SHARE WebContent=c:\inetpub\wwwroot2
あとは上記いずれかの処理をバッチにするなりしてタスクに登録しておけば、任意の時間で自由に切り替えられます。
(WSHスクリプトと組み合わせれば、曜日によってまったく異なる Webサイトなんてのも作れるでしょう)
ただ切り替えるコンテンツはテスト環境で事前にしっかり確認しておかなくてはいけませんし、
自動に任せるとはいえ念のため実際に切り替わったことを人間の目で確認してみるべきでしょう。