Fake tool to freak out possible thief of your system

July 21st, 2009

I have made this silly tool that does nothing except freak out a possible thief or collegue logging in to your system.
If you have .NET 3.5 installed just download this and add it to the startup folder for all users. To exit before it completes the cycle first hit “q” then hit “x”.

Laptop Stolen Tracker

Disaster recovery, exchange 2003

April 22nd, 2009

Yesterday I was called out to recover a server from a disaster crash by one of our customers. I figured I would write something here because maybe someone some day will have a use for this information.

The server itself was a Small Business Server and handled everything, Exchange 2003, Domain Controller, Fileserver. That happens in small environments but is far from ideal, because when this server went down, all users were crippled. Imagine no email for a day!

The backups were made on LTO2 tapes using NTBackup. These backups, however, were spread out over multiple days making it hard to recover everything easily. We ended up using tapes from three points in time to recover all features of the server.

Finally the main issue was Exchange. To recover the exchange database into the original location in the information store, you use NTBackup and then restore the information store to the same server. Because this was a disaster it had to go to the orginal location. First, we had to remove the Recovery Information Store, because if it exists, NTBackup will default to trying to restore the database in that information store instead of in the First Storage Group that was defined and where it needed to go. This fixed the following error that we saw in the event logs:

Event Type: Error
Event Source: MSExchangeIS
Event Category: Exchange Backup Restore
Event ID: 9635
Computer: EXCHANGE
Description: Failed to find a database to restore to from the Microsoft Active Directory. Storage Group specified on the backup media is [GUID]. Database specified on backup media is [Database Name] (EXCHANGE), error is 0xc7fe1f42.

Another work around is the registry change described here, if you must keep the recovery information store, but be careful to switch the change back after the restore is done in case you are going to perform one at a later stage when you really do want it to be written to the recovery storage group!

http://support.microsoft.com/kb/824126

Then we had to create an empty database by moving the already restored (file level restore) files to a subfolder in the MDBDATA folder and then mounting the database through the Exchange System Manager, this prompts the creation of a new and empty database, after which the information store could be restored via NTBackup.

After the recovery, the database could not be mounted due to corruption. This happens sometimes when the database is not taken offline during backup. The solution is to use ESEUTIL.exe from the bin subfolder in the exchange installation folder. However, it is best to add this folder to the environment path variable and then start eseutil from the directory where the data files are. For instance, when your database is in D:\mail\ you will want to open a dos box and run the following commands:

  • D:
  • cd mail
  • eseutil /p priv1.edb

Where priv1.edb should be changed to the filename of the exchange 2003 database. Always make sure to have a copy of the restored database folder, because if this process gets interrupted or fails you will end up with an unusable database file again and have to start back from the beginning with a new empty database and run the restore job again.

Once we had run this process through (which took 2 hours for a 16GB database) the store was mountable and we could reconnect the recovered server to the network again so the cached mail could start to be delivered.

8 hours of work to recover a domain, fileserver, and exchange server with hardly any dataloss. That is good result if you ask me!

PHP 5 - I returned after 7 or so years

July 9th, 2008

I like to have very clearly defined structures when I write code. I am not a great developer, that is why I need the features of object oriented design. After having tried PHP back in the day, I switched to python for web applications. But now it seems that the time of the PHP-mess I used to get myself into is over. An actual implementation of objects that works made me smile and see how fast I could get things done.

The features I am liking are:

  • Inheritance arranged
  • Specifying the access level for variables
  • Interfaces implemented

Finally the ability to implement a solid MVC pattern and get truly reusable code. A big cudos to the people at www.php.net

No updates for a while

June 20th, 2008

because I have started a new job (IT Specialist at Getronics Pinkroccade) I have not written a lot of text in a while. Soon I will start working on updating my book again. In the mean time thanks to the people who have taken the time to send me some very helpful feedback! I will update it all in my writing.

Many updates to my book

January 12th, 2008

After some time of not having added anything new to my book, I have gone back into gear and wrote a couple more chapters, added a community forum, and made sure my book became more visible on the internet.

Writing this book is proving to be a fun task, but also involves a couple of tough decisions. To aim to provide a reasonably complete set of information to a group of very different readers means that you have to really think about what topics have to be described. I have been researching other sources of information for a look at their approach and looked at user reviews to see how those were received.

More to come on this. For now you can read what I have so far at http://itsupportbook.com and post your comments in the new forum

Python imapcopy script

October 8th, 2007

I needed to be able to move from Zimbra to Exchange 2007. After trying to use IMAPCopy and IMAPSync I became frustrated. IMAPCopy kept on crashing, IMAPSync was trying to look at changes back and forth, but I just want a fast straightforward copy to happen. The frustration of this process prompted me to write pyMAPCopy.

There is one issue with this code, it bails out on messages larger than about 5 MB. Other than that it works. I tested this on windows with ActivePython 2.5.

 To use this, get the file that is linked here and rename the extension from .txt to .py (remove the .txt part). Make sure you have installed activepython which is downloadable from the ActiveState website: http://www.activestate.com/Products/activepython/index.plex

Once this is installed, open a dosbox and browse to the folder that holds the script. Then type in pymapcopy.py and hit enter. You will be asked to type in the server names user names and passwords. Optionally this can be specified on the command line as well, type imapcopy.py -h for more info.

Download pyMapCopy

Writing, harder than it seems

September 26th, 2007

The good news is that I have found a very helpful contact through the critique circle website who has been willing to review my writing. She is quite good and her comments are rather to the point.

The bad news is that there is a lot of room for improvement. Well, it is not that bad. It just means I will have to study hard and spend a lot of time to find the right structuring and wording of the message I want to send into the world. To help me there I ordered a book by Strunk and White on english grammar. Apparently the writer’s “bible”.

 There is more good news. I am finding the process of writing and researching very satisfying, even if it is time consuming. There are a few things that I really like about it. One of them is that it is a good way to improve my English and the knowledge of IT support. Another is that I am finding it relaxing to organize my thoughts. It is a good way to free up space for new thoughts.

 More on this later, that is for sure!

A pet project

September 21st, 2007

Today I started work on a new project of mine. I registered myself on http://www.critiquecircle.com/, downloaded XMLMind, and started writing. Now I have never been much of a novellist, but I have always been writing technical documentation. Therefore my pet project is a book for IT Support written for IT support engineers, not the manager literature that you can find everywhere. You can find this project at http://itsupportbook.com

The first chapter is about the question what IT support actually is. How do you define what the numerous groups of tech support people actually do? I wrote it as I always do, fast and without much second thought. A waterfall of thoughts flowing onto the paper, well screen actually, and put out there right away. This means it is far from perfect, but I like that. Because I know that I did not get it right, right away, I am still very open to comments relating to the text. I will revisit everything I wrote periodically and update it. I will add feedback forms. And I have a lot more action items on my list. Of course you are free to tell me your thoughts here as well!

Let’s see if I am worthy to add to the huge scope of valuable information findable online!

I was watching Lifeblood - EP 1 Finchley when I realized:

September 19th, 2007

How much more fun the internet has become …

Joost thumbnail

From Joost : Lifeblood - EP 1 Finchley

The Fly on the Wall Documentary series with Janet Ellis spends a day in Finchley HospitalJoost™ the best of tv and the internet

My net space

September 19th, 2007

This blog is here for me to spam the internet in a non-intrusive way. Here I will talk about whatever I am up to and post some of the things I am working on.