投稿

ラベル(vbs)が付いた投稿を表示しています

メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

現場で書き換え…

ログインスクリプトでエラー 前回、マイクロソフトのサンプルに問題があって、修正が必要と書いたのだけれど、現場でテストしてみると、さらにエラーが発生する。 strGroups = LCase(Join(CurrentUser.MemberOf)) 今度は、この記述だ・・・。 どうやら、ユーザのデータを引いた時のOUやグループの設定状況でデータ個数が配列で返らない場合に、うまくjoinできていないらしい。 そこで、 'strGroups = LCase(Join(CurrentUser.MemberOf)) if IsArray(CurrentUser.MemberOf) then    strGroups = LCase(join(CurrentUser.MemberOf)) else    strGroups = LCase(CurrentUser.MemberOf) End if てな感じで、配列かどうかで処理を分ける必要があるということが判明。 その場で、書き換えてテストしなければならない程の、逼迫ぶりで…。疲れましたゎ。 でも、これで何とか動作するようになり、OKです。 念の為、全て記述しておこう。 Const MANAGER_GROUP = "cn=manager" Const SUPPORT_GROUP = "cn=support" 'Const STAFF_GROUP   = "cn=staff" Set wshNetwork = CreateObject("WScript.Network") 'homeはプロファイル設定で掴ませることにするのでコメントアウト 'wshNetwork.MapNetworkDrive "i:" , "\\dc01\home$\" & wshNetwork.UserName wshNetwork.MapNetworkDrive "s:" , "\\dc01\staff" Set ADSysInfo = CreateObject("ADSystemInfo")