" /> The Japan Page: January 2005 Archives

« December 2004 | Main | February 2005 »

January 30, 2005

MS Exchange 2000 / 2003 Open Relay Filter

A freeware Open Relay Filter (DNS RBL, etc) for Exchange 2000 and 2003. Text description below from Martijn's site. It's freeware, I've not tested yet in production but it looks interesting.

What is ORFilter?

ORFIlter (Open Relay Filter) started as an Open Relay Filter based on RBL's (Real Time Blacklists) for Microsoft Exchange Server. As this is still the main functionality, I've added more features over time, like keyword filtering, SURBL, and custom black and white lists. ORFilter operates on your mail server, not on your mail client. When detecting / suspecting a spam message, it's depending on the score, either deleted, redirected or let through with an altered subject.

http://martijnjongen.com/Default.aspx?tabid=27

Frodo Failed

Looks like Frodo failed to destroy the ring...

FrodoFailed.JPG

I can't take credit for this graphic though, it was e.mailed to me...

January 23, 2005

Linux remote access through VNC over SSH

Use VNC over SSH with a Windows client and Putty.

Why?
Complete remote administration (with a VNC GUI) of a Linux server from a Windows workstation. Users the freeware application Putty.exe.

How?
Set up VNC (see http://www.japan-page.net/blog/archives/2005/01/running_vnc_on.html if you don't already have VNC running.)

Download Putty
. It's free!

Resources:
http://www.cyberknights.com.au/doc/PuTTY-tunnelling-HOWTO.html

Running VNC on Fedora Core2

Really just a note to myself as plenty of documentation exist out there for this...

1. Install VNC, it's included in Fedora Core 2 and later (Core 1 too?)

2. See if the service is set to start up automatically:
chkconfig --list | grep vnc
Look for ON in runlevel 3 and 5.

If it's not on, do chkconfig --level 35 vncserver (must be root).

3. As the user, type vncpasswd and assign a password for your session.

4. In order to get the full blown desktop (vs the grey screen with terminal window only) edit the file in your home drive ~/.vnc/xstartup:

Uncomment the following 2 lines:

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

Personally I use Gnome, but this setup should be the same for KDE.

5. As root, edit /etc/sysconfig/vncservers and add the line:

VNCSERVERS="1:your_user_name"

6. If you're running a firewall you'll need to open ports 5900 + your session number. Don't expose VNC to the Internet, use SSH instead.
Verify current firewall settings: iptables -L

Resources:
http://www.linode.com/forums/archive/o_t/t_1174/question_about_remote_desktop.html

http://www.fedoraforum.org/forum/showthread.php?t=28261&page=1&pp=15

Yabusame - Horseback Archery

Yabusame or Japanese horseback archery is part of the bushido or "way of the warrier".

Traditionaly a method of archery practice, in modern Japan it is difficult to find outside of a handful of Shinto Shrine annual festivals. The pictures below were taken at Hakusan-jinjya in Itabashi ward, Tokyo.

Update: President Bush attended a display of Yabusame during his visit to Japan in February 2002.

yabu3.jpg


Horseback archer in costume

This is traditionally what one wears when practicing horseback archery. Although from this angle it is hard to tell, he is wearing a hakama, which many people practicing martial arts in the west know as the "bottom half" of Karate uniform.

This picture was taken in front of the main hall of the shrine, shortly before the opening ceremony.


yabu5.jpg


Here you can see two of the officials at what is actually the very end of the course. The dirt track is about 100 yards long and about 3 yards wide, with a metal pole and rope barrier. On the left side the audience is visible. On the right side (not visible) are three evenly spaced targets mounted on bails of hay.

Both of these officials are also wearing hakama.

yabu1.jpg

Referee

Here the referee is standing at the end of the course. He is holding a small wooden rod with paper streamers on it. He will hold it over his head and then with a quick signal the archer on his horse at the other end will charge down the course and try to hit all three targets.

yabusame.jpg


With a horse charging at full gallop, just trying not to fall off is in itself challenging. Add to that trying to hit a small target and it's harder. In fact, the hardest part for the archers appears to be stringing a new arrow on the bow while bouncing up and down and trying not to fall off the horse, as the picture to the right shows.

yabu6.jpg


Five archers participated this day, and each had three chances to make the run. Four of the five were University students, and members of an archery club. All of them were able to hit the first target, but not one managed to hit the second.

yabu2.jpg

Here one of the handlers is stopping the horse after the run. The bow is the same as used in kyudo (traditional Japanese archery), made of wood it is more than six feet in length.

The fifth archer (not pictured) was older and much more experienced. Even so, he only managed to hit all three targets once.

yabu4.jpg

January 19, 2005

Sample Script: Web Interface to Windows 2000 DNS

ASP based Web Interface to Windows 2000 DNS

What does it do?

The web interface allows you to add / remove host (A) and reverse (PTR) records in DNS using an ASP based web interface.

Requires the freeware DynuExec component
Available from www.dynu.com, you must install this component to make DNS changes.

Also requires the dnscmd.exe component from the Microsoft Windows 2000 SP2 Support Tools package. This is available as a free download from Microsoft.

Who does this kind of thing?
If you don?t know what a PTR record is, you don?t need this script. I wrote a highly enhanced and customized version of these scripts to allow various technical groups to edit only their respective domains, using an MS Access based db file containing domains and permissions.

The version released to the Internet community (in this package) is more a proof of concept than a product, expect to customize this yourself if you intend to use it in production.

Note: This utility was written for Windows 2000 and while it should be workable when edited, it is completely untested on Windows 2003.

Download file

:Author is not responsible for accuracy or functionality of these scripts. You are strongly advised to test everything out of production. Not responsible for formatted HDD's, etc. etc.

Sample Script: DHCP Scopemon v.2

Version 2, new and improved!
DHCP Scope Monitor is a utility I wrote to monitor the usage of DHCP scopes on W2K servers.  For redundancy I split all DHCP scopes across 2 separate servers, but I needed a way to track usage and free IP's and the MMC is weak on these functions.

Features and Limitations

Monitors an unlimited number of scopes across 2 servers.
Sends an alert whenever a scope has less than X free IP's across both servers! That's right, it adds up the free addresses across both servers.
Alerts if the same number of scopes are not configured on both servers. Helps you to keep your configuration in sync.
Add a dummy (inactive) scope with the same name on your second server if you have low SLA scopes.

Requires

DHCPcmd.exe from the W2K Server Resource Kit

texttools32 (A very useful utility!)

A command line SMTP mailer like
postie.exe.

Note: This script was written for the older version of Texttools32 which is no longer available on the web. I've not tried the newest version, so some modification to this script is required.


Download the script here.


::REM -------------- Begin sample script -------------------------

::REM *****************************************************
::REM B a t c h P r o g r a m m i n g S a m p l e
::REM from http://www.japan-page.net/batch
::REM (C) 2002 John D. Seaman
::REM Copylefted, and released to the general Internet
::REM community, you may use, modify and release this
::REM at will as long as you retain this header.
::REM *****************************************************

@echo off
cls

echo.
echo -------------------------------------------
echo MS DHCP Subnet usage reporting utility v2.1
echo version 2003.6.23 by John D. Seaman
echo -------------------------------------------


::REM --------------------------------------------------------------
::REM ------ S T A R T -- C O N F I G U R A T I O N ----------------


::REM Set focus MS DHCP servers (text file) here
::REM Maximum of 2 servers, must be IP address not hostname!

set _dhcpsrvs=_dhcpservers.ini


::REM SMTP reporting settings

set _hst=mailserver.yourdomain.com
set _frm=%computername%@yourdomain.com
set _too=you@yourdomain.com


::REM Set default threshold for all other scopes here

set _threshold=20


::REM ------ E N D -- C O N F I G U R A T I O N ----------------
::REM --------------------------------------------------------------


::REM Make sure the DHCP server config file exists, bail if missing

if not exist %_dhcpsrvs% (
echo Error! %_dhcpsrvs% file not fount! Aborting.
goto :EOF
)


::REM Reset variables

set /a _alert=0
set /a _pass=1
set /a _loop=0

if exist _finalConf.bat del /q _finalConf.bat


::REM Get date and time for the log file

for /f "tokens=1,2,3,4* delims=/ " %%i in ('date /t') do (
set day=%%i
set mm=%%j
set dd=%%k
set yy=%%l
)

for /f "tokens=1,2,3,4* delims=/ " %%i in ('time /t') do (set _time=%%i)

set _log=dhcp-scopemon.log

echo Scope monitor v2 processed on %computername% at %_time% %yy%.%mm%.%dd%>%_log%
echo ------------------------------------------------------------------->>%_log%
echo.>>%_log%


::REM Get initial stats from DHCP servers

for /f %%i in (%_dhcpsrvs%) do call :getstats %%i


::REM Compare servers (raw scope numbers)

call :compareServers


::REM Compare servers (detailed, actual zones)

call :compareZones


::REM Get scopes

type _sub-names1.txt | t del 1 9 | t strip 1 >_dhcp-scopes.txt

::REM Extract scope free values on both servers and consolidate (nested loop time!)

for /f "eol=; tokens=1,2*" %%i in (_dhcpservers.ini) do call :extract %%i %%j


::REM Check for free IP's

call :checkScopes

echo.
echo --Scope check completed--
echo.>>%_log%
echo --Scope check completed-->>%_log%


::REM Send alerts if needed

if /i %_alert% EQU 1 (
type alert.txt >>%_log%

postie -host:%_hst% -from:%_frm% -to:%_too% -s:"DHCP Monitor: IP Address shortage!" -msg:"A shortage of available IP address exists! Check the log file." -file:alert.txt -a:%_log% -high >>%_log%
echo --Error condition found, mail sent--
echo --Error condition found, mail sent-->>%_log%
)


::REM Final cleanup

del /q *.bat *.txt


goto :EOF

::REM -- The End ---

::REM ---------------------------------------------------------
::REM -------------------- F U N C T I O N S ------------------
::REM ---------------------------------------------------------

::REM Get initial stats from each server in log
:getstats

::REM Dump all subnets into file for processing

dhcpcmd %1 mibcounts >_sub-raw%_pass%.txt


::REM Get a count of total subnets

type _sub-raw%_pass%.txt | find /c "Subnet =" >_sub-count.txt

::REM Dump subnets (name only) for use later on

type _sub-raw%_pass%.txt | find "Subnet =" >_sub-names%_pass%.txt


::REM Convert into a variable

type _sub-count.txt | t append 'set _subnetcount=' b >_sub-count.bat
call _sub-count.bat
del /q _sub-count.bat _sub-count.txt

echo.
echo Found %_subnetcount% subnets on server %1.
echo Found %_subnetcount% subnets on server %1.>>%_log%

echo set _subcount%_pass%=%_subnetcount% >>_finalConf.bat
set /a _pass=%_pass%+1
goto :EOF


::REM ---------------------------------------------------------


::REM Do subnet configuration check here (same number of zones on each server)
:compareServers

call _finalConf.bat
del /q _finalConf.bat

if "%_subnetcount1%" == "%_subnetcount1%" (
echo.
echo.>>%_log%
echo Found an equal number of subnets on each server.
echo Found an equal number of subnets on each server>>%_log%
echo.
goto :EOF
)

::REM Error! Subnet config not the same on both servers!

echo Scope %1 configuration not equal on both DHCP servers!!
echo Scope %1 configuration not equal on both DHCP servers!! >>%_log%
echo This is a critical error. Investigate ASAP!
echo This is a critical error. Investigate ASAP! >>%_log%

set _sbj="DHCP Monitor: Critical scope configration error detected!"
set _msg="Critical scope config error, DHCP scope counts don't match!! Check the log file."
set _file=%_log%

postie -host:%_hst% -from:%_frm% -to:%_too% -s:%_sbj% -msg:%_msg% -a:%_log% -high >>%_log%

goto :EOF


::REM ---------------------------------------------------------

::REM Detailed comparison of zones.
:compareZones


::REM Compare the zones

echo.
echo. >>%_log%
echo Performing detailed comparison of zones...
echo Performing detailed comparison of zones... >>%_log%

diff -B _sub-names1.txt _sub-names2.txt
goto :diff%errorlevel%

:diff0
echo.
echo.>>%_log%
echo Scope configuration is equal on both servers.
echo Scope configuration is equal on both servers.>>%_log%
echo.

goto :EOF

:diff1

::REM Error! Subnet config not the same on both servers!

echo Scope %1 configuration not equal on both DHCP servers !!
echo Scope %1 configuration not equal on both DHCP servers >>%_log%
echo This is a critical error. Investigate ASAP!
echo This is a critical error. Investigate ASAP! >>%_log%

set _sbj="DHCP Monitor: Critical scope configration error detected!"
set _msg="Critical scope config error, DHCP scope counts don't match!! Check the log file."
set _file=_alert.txt

postie -host:%_hst% -from:%_frm% -to:%_too% -s:%_sbj% -msg:%_msg% -a:%_log% -high >>%_log%

goto :EOF


::REM ---------------------------------------------------------

:extract
::REM Get scope usage stats here, we run a total of two passes here

echo.
echo DHCP server is %1
set /a _loop=%_loop%+1

for /f %%k in (_dhcp-scopes.txt) do (
echo Processing subnet %%k...
type _sub-raw%_loop%.txt | t prox '%%k' 0 2 >_sub-%%k-%_loop%.txt

::REM Cleanup!
type _sub-%%k-%_loop%.txt | t strip 1 | t repl ' ' '' | t append 'set ' b >_sub-%%k-%_loop%.bat
del /q _sub-%%k-%_loop%.txt
)

del /q _sub-raw%_loop%.txt

::REM We now have a .bat file for each scope on each DHCP server
::REM with the total used and free IP's. We need to combine them
::REM to get a total across both servers.


if "%_loop%" == "2" (
echo Loop pass 2, total everything

::REM Get results from scope on first DHCP server
for /f %%x in (_dhcp-scopes.txt) do call :subProcess %%x
)

goto :EOF

::REM ---------------------------------------------------------------
::REM ------------------ S U B --- F U N C T I O N ------------------
::REM ---------------------------------------------------------------

:subProcess
echo.
echo Subnet sub process for %1
call _sub-%1-1.bat
del /q _sub-%1-1.bat
echo subnet is %Subnet%
echo Pass 1 inuse is %NumAddressesInuse%
echo Pass 1 free is %NumAddressesFree%

::REM Put these values into a new variable

set _Inuse=%NumAddressesInuse%
set _free=%NumAddressesFree%

::REM Call the second batch file, get the values
call _sub-%1-2.bat
del /q _sub-%1-2.bat
echo Pass 2 inuse is %NumAddressesInuse%
echo Pass 2 free is %NumAddressesFree%

set /a _totalInuse=%_Inuse%+%NumAddressesInuse%
set /a _totalFree=%_free%+%NumAddressesFree%

echo Total in use is %_totalInuse%
echo Total free is %_totalFree%

echo set _subnet=%Subnet% >_final-%1.bat
echo set /a _totalInuse=%_totalInuse% >>_final-%1.bat
echo set /a _totalFree=%_totalFree% >>_final-%1.bat
)

goto :EOF


::REM ---------------------------------------------------------

:checkScopes

::REM Almost finished...! First we bust a loop with the exceptions
::REM in the _exceptions.ini file.

for /f "eol=; tokens=1,2* delims=," %%i in (_exceptions.ini) do call :subCheckExepts %%i %%j

goto :continue

::REM ------------
::REM Sub Function
::REM ------------

:subCheckExepts
echo.
echo Checking special exceptions for zone %1...
echo. >>%_log%
echo Checking special exceptions for zone %1... >>%_log%

if not exist _final-%1.bat (
echo Invalid exception zone specified in _exceptions.ini!
echo Invalid exception zone specified in _exceptions.ini! >>%_log%
set /a _alert=1
goto :EOF
)

call _final-%1.bat
echo Free IP's: %_totalFree%
echo Total IP's: %_totalInuse%

::REM Delete the batch file so this zone doesn't get processed twice.
del /q _final-%1.bat
if /i not %2 LSS %_totalFree% (
echo -----------------------------------------------
echo ----------------------------------------------->>alert.txt
echo Exempted subnet %1 has a shortage of free IP's
echo Exempted subnet %1 has a shortage of free IP's >>%_log%
echo Free IP's......: %_totalFree% >>%_log%
echo Total IP's.....: %_totalInuse% >>%_log%
echo Alert threshold: %2 >>%_log%
set /a _alert=1

goto :EOF
)


echo Subnet %1 is OK, totalInuse is %_totalInuse%, totalFree is %_totalFree%
echo Subnet %1 is OK, totalInuse is %_totalInuse%, totalFree is %_totalFree% >>%_log%

goto :EOF

:continue

::REM Next we process the remaining zones...

::REM Get remaining zones by dir of file system

dir *.bat /b >_out.txt


::REM Bust a loop, check 'em all

for /f %%i in (_out.txt) do call :subcheckBats %%i

goto :EOF

::REM ------------
::REM Sub Function
::REM ------------

:subcheckBats
call %1
if /i not %_threshold% LEQ %_totalFree% (
if /i not %_totalInuse% EQU 0 (
echo -----------------------------------------------
echo ----------------------------------------------->>alert.txt
echo Subnet %_subnet% has a shortage of free IP's!!
echo Subnet %_subnet% has a shortage of free IP's!! >>alert.txt
echo Free IP's......: %_totalFree% >>alert.txt
echo Total IP's.....: %_totalInuse% >>alert.txt
echo Alert threshold: %_threshold% >>alert.txt
echo -----------------------------------------------
echo ----------------------------------------------->>alert.txt
set /a _alert=1
goto :EOF
)
)
echo Subnet %subnet% is OK, totalInuse is %_totalInuse%, totalFree is %_totalFree%
echo Subnet %subnet% is OK, totalInuse is %_totalInuse%, totalFree is %_totalFree% >>%_log%

goto :EOF

:EOF

::REM -------------- end sample script -------------------------

Sample Script: DNS zone dump utility

A handy script to dump the contents (records) of Windows 2000 DNS zones.

Gets all DNS zones that W2K is authoritative for, dump the zone records to txt files.

Purpose: track changes if needed, do offline scripted duplicate RR checks, etc.

Note: This script was written for the older version of Texttools32 which is no longer available on the web. I've not tried the newest version, so some modification to this script is required.

Requires t.exe from Texttools32


Download file


::REM *****************************************************
::REM B a t c h P r o g r a m m i n g S a m p l e
::REM from http://www.japan-page.net
::REM (C) 2002 John D. Seaman
::REM Copylefted, and released to the general Internet
::REM community, you may use, modify and release this
::REM at will as long as you retain this header.
::REM *****************************************************

Author is not responsible for accuracy or functionality of these scripts. You are strongly advised to test everything out of production. Not responsible for formatted HDD's, etc. etc.

Sample Script: Get today's date

A sample command line batch file to get today's date from the system. I use this mostly to output a log file with today's date (such as the format 2005.1.18.log) from a batch script. If you just want today's date or time, from Windows 2000 or newer call the variable %date% or %time%.

You may need to reorder the variables depending on your time zone and time display format, or if you use this on NT4, etc. This sample script works fine on English Windows 2000 or newer.

Download file

::REM *****************************************************
::REM B a t c h P r o g r a m m i n g S a m p l e
::REM from http://www.japan-page.net
::REM (C) 2002 John D. Seaman
::REM Copylefted, and released to the general Internet
::REM community, you may use, modify and release this
::REM at will as long as you retain this header.
::REM *****************************************************

Author is not responsible for accuracy or functionality of these scripts. You are strongly advised to test everything out of production. Not responsible for formatted HDD's, etc. etc.

Sample Script: Errorlevel checking in batch scripts

A batch command line programming example of how to call a utility or perform a function and react according to the %errorlevel% value returned post execution.

In this example we parse a log file for an error string.

Download file

::REM *****************************************************
::REM B a t c h P r o g r a m m i n g S a m p l e
::REM from http://www.japan-page.net
::REM (C) 2002 John D. Seaman
::REM Copylefted, and released to the general Internet
::REM community, you may use, modify and release this
::REM at will as long as you retain this header.
::REM *****************************************************

Author is not responsible for accuracy or functionality of these scripts. You are strongly advised to test everything out of production. Not responsible for formatted HDD's, etc. etc.

Sample Script: DNS KCC

A sample script for Microsoft Windows 2000 DNS servers.

Compares the number of DNS zones on your W2K DNS servers and alerts
when they are out of synch. This can be useful in a large
distributed environment when you have both primary and
secondary DNS servers and multiple regional admins.



Reports and alerts on any zones found shut down.
Shows zones missing on inconsistent servers.
Sends reports by SMTP e.mail.
Download file

::REM *****************************************************
::REM B a t c h P r o g r a m m i n g S a m p l e
::REM from http://www.japan-page.net/batch
::REM (C) 2002 John D. Seaman
::REM Copylefted, and released to the general Internet
::REM community, you may use, modify and release this
::REM at will as long as you retain this header.
::REM *****************************************************

Author is not responsible for accuracy or functionality of these scripts. You are strongly advised to test everything out of production. Not responsible for formatted HDD's, etc. etc.

Sample Script: Eventlog monitor for Domain Controllers

A sample script utility to monitor critical events in DC eventlogs and alert by SMTP mail.
Download file

::REM *****************************************************
::REM B a t c h P r o g r a m m i n g S a m p l e
::REM from http://www.japan-page.net/batch
::REM (C) 2002 John D. Seaman
::REM Copylefted, and released to the general Internet
::REM community, you may use, modify and release this
::REM at will as long as you retain this header.
::REM *****************************************************

Author is not responsible for accuracy or functionality of these scripts. You are strongly advised to test everything out of production. Not responsible for formatted HDD's, etc. etc.

January 18, 2005

Festivals in Japan (O-Matsuri)

Festivals and Fried Octopus Balls

OK class, take out your notebooks and get ready for a quick lesson in how to have fun. July and August are festival season in Japan, andwherever you go, there's a PARTY!

matsuri101.jpg

Usually the consumption of large quantities of sake or beer is optional, but it helps. You will probably find several of the items below in any festival. Oh, by the way the Fried Octopus Balls are for real. Ever heard of abelskivers? Ok, just think of a small round ball of dough similar to pancake batter, with a chunk of octopus inside. Pour a little sauce and flaked seaweed on top and you're set! It's called takoyaki (fried octopus) in Japanese, and a festival wouldn't be a festival without it. Personally, I really love fried octopus balls - NOT!

mikoshi.jpg
O-MIKOSHI


An O-MIKOSHI or portable shrine is the most traditional and exciting part of a festival. Made of wood, with several long runners or "poles" running front to back. These shrines range in size from small sized "Childrens O-MIKOSHI" to Cadillac size monsters that weigh more than a ton.

Anywhere from ten to a hundred people, dressed in Happi coats and Hachimaki headbands chant while carrying the shrine. With an O-mikoshi it's not the destination, it's getting there that's the fun part.

A DAISHA is a giant festival cart built with the same strength and attention to detail as the Temple or Shrine itself. Consequently, they often weigh 5 tons or more. (Nowadays, some of these carts even have sub-structures made of steel I-beams!) The center area under the roof seats a handful of musicians who play HAYASHI, or traditional festival music.

matsuri3.jpg

DAISHA

These two youngsters are wearing the traditional clothing that people carrying the portable shrines do.

matsuri4-2.jpg

WA SHOY to ya!

The best part is the wide variety of costumes and variations, with bright colors making the festival a very lively sight.

The picture to the left, and upper left side were taken at the annual Hachioji City Festival in Tokyo. The picture on the upper right was taken at the Kawagoe Summer Festival, which is famous throughout Japan for the large number of festival carts that are pulled by hand up and down the main street.

If you have the chance, check out a festival while you are in Japan. A good source of festival schedules and information are any of the English language Japanese daily newspapers.

v.1998.10.2

ASCII Art Generator web page

ASCII Art Generator - create ASCII art without the hard work, just type your text and choose a font. Perfect for the busy oldskool sysadmin.

http://www.network-science.de/ascii/

Exchange Service Account in Exchange 2000/2003

How to grant an Exchange admin the equivalent of service account rights...

http://www.petri.co.il/grant_full_mailbox_rights_on_exchange_2000_2003.htm

January 14, 2005

How to install MovableType 3.x on Microsoft Windows 2003 Server

How to install MoveableType 3.x on MS Windows Server 2003
I found a page by Simon detailing how to install MovableType on Windows XP, but not much on the web for MS Windows server 2003 documentation. So, for those of you who have to do it on Windows...

1. Install MS Windows Server 2003, get IIS up and running.

2. Install ActiveState Active Perl. I used version 5.8, you can download the latest from here. Run the installer, be sure to choose the ISAPI and CGI options.
3. Configure IIS from the MMC snapin. Under Web Service Extensions you'll need to allow Perl CGI Extension, it remains disabled by default after the Perl installation.
4. Download MoveableType here. There is a free personal version, but you'll have to register.
5. Install MoveableType per the installation instructions. The instructions are fairly complete, but really intended for the Linux audience. So I'll just detail the missing Windows tips.

Be sure to install with a CGI-BIN directory and a static content directory. CGI-BIN on Windows you say? Yes, name the CGI-BIN whatever you like, in my case it's named /blog/ . This is just the location that the executable .CGI (Perl scripts) are stored. The static directory should hold the /images/ , /docs/ subdirectories and the mt.js and style.css files.

6. Once the installation is finished, go back to the MMC snapin and create a virtual directory out of whatever you named your CGI-BIN folder. Click on Configuration, then confirm there's an entry for .CGI. I had to add one, so just copy the settings for .PL which should have been added by the ActiveState installer.

7. Open up your web browser and type in the URL to the mt-check.cgi file in your CGI-BIN folder, it should look like www.myserver.com/blog/mt-check.cgi. This will run and detect the status of your Perl installation. If it fails to run, you'll need to troubleshoot your Perl and IIS configuration.

You will be missing some Perl modules now, so open a dos window and type ppm and hit enter. This will open up the Perl Package Manager, after which you can get the componenets you need. I had to download html-template and file-db.

Example PPM download commands:
install DB_File

Windows systems will require the Image::Magick Perl plugin. Download the full distro for Windows here, be sure to check the "add ActiveState Perl" option.


8. Once you get the required components all green, you're ready to edit your mt.cfg file. Hint, your DB path should be in the format d:\inetpub\wwwroot\cgi-bin\mydb . Be sure to put the full filesystem path here.

9. Now start the MoveableType initialization. The instructions could have been more detailed on this part.

Now you manually create a DB directory under your CGI-bin directory. Make sure the path was added to the mt.cfg file. Save yourself some future hacker related trouble and use something more creative than just "db".

10. To initialize MT and create the DB my pointing your browser to www.myserver.com/blog/mt-load.cgi . If it fails anywhere the instructions will tell you. (If you get the annoying MovableType is here but doesn't work page you didn't type mt.cgi !)

Be sure to manually delete the mt-load.cgi file.

11. Load the file www.myserver.com/cgi-bin/mt.cgi and log in with the default password. Once logged in, change the password, then configure your site options and generate the content.

HINT: You'll probably need to change the content path here.

HINT: You'll need to add "index.html" to the documents section of the IIS MMC snapin, it's not one of the defaults.

12. If you get any errors while rebuilding your site, that's usually write perms on the file system. I'm still experimenting with the best set of perms, but IUSR_machine-name will need write.


13. Have fun.

This content is offered as is with no guarantee of fitness, etc etc. If you totally screw up your MovableType install, delete it and start over. It took me 2 tries to get it going. :-)

Additional Links for MovableType:
Reducing Comment Spam
SnipTools for Thumbnails

Content at last...

The new blog is up. Following my default upgrade path of once-every-three years (for content that is...)

As a full time IT guy, with a family, and a new (old) house to remodel, posting content to my website is about as important as changing the air in my tires. So now I've finally joined the present and have CSS style sheets and a blog engine back end too.

The old content will get migrated back in shortly...

2a

Cheers,

--john seaman