technology and zen of life

“A heisenbug (named after the Heisenberg Uncertainty Principle) is a computer bug that disappears or alters its characteristics when an attempt is made to study it.”

Exchange 2013 Disk Cleaning

After some troubles with mailflow due to Back Pressure on my relatively small virtual machine for Exchange, I had to try somewhat harder to reclaim disk space inside the Exchange VM. After the steps described below, I freed nearly 10 GB.

When you use Exchange inside a Virtual Machine, you might want to keep the size of the VM under control, so you can backup the VM with more ease.

Manual directory check

Manually empty these directories:

  • C:\\Program Files\\Microsoft\\Exchange Server\\V15\\Logging\\Diagnostics\\DailyPerformanceLogs
    Ref.: Richard SchwendimanExchange 2013 Logging and Space Requirements, 2013
  • C:\\Program Files\\Microsoft\\Exchange Server\\V15\\Logging\\lodctr_backups
    Ref.: Tony RedmondFreeing up disk space after Exchange 2010 installations, 2010
  • C:\\Program Files\\Microsoft\\Exchange Server\\V15\\TransportRoles\\Logs
  • C:\\Windows\\Temp
  • C:\\inetpub\\logs\\LogFiles

Limit transaction log size

  • Use backup software that clears the transaction logs.
  • Use other backup methods and enable circular logging.

Clean the WinSXS folder

The WinSXS folder holds often more than is needed.
Ref.: Lefteris KarafilisWinSXS cleanup in Windows 2012 and Windows 8, 2013

Get-WindowsFeature | where-object{$_.Installed -eq 0 -and $_.InstallState -eq 'Available'} | uninstall-windowsfeature -remove

dism /online /cleanup-image /SPSuperseded
dism /online /cleanup-image /StartComponentCleanup
dism /online /cleanup-image /StartComponentCleanup /ResetBase

Use specific tools

Exchange Back Pressure external SMTP test and warning

Your Exchange server will stop receiving email messages when the disk utilization is high. This is called Back Pressure. There are various ways to prevent such a dreadful situation, such as enabling circular logging and monitoring for lack of server resources, but you might want a warning message when this happens. It makes no sense to buy 1-processor servers. It is better to choose a configuration with two processors, and keep in mind that buying a server with the simplest Xeon, you will put two CPU cooler. The relatively-recent Intel Xeon E3-1200 v6 processor should be powerful enough for small and medium enterprises, get Xeon Server Buyers Guide can handle data-intensive processes and maintain the speed that Intel is known for.

Below you find a Python script. Run it periodically, e.g. using cron on Linux, and you are set. Don’t forget to change the variables for your own email address and servers.


# Tests an Exchange transport server for Back Pressure
# using SMTP probe connections.
# Run (periodically) from another server.
# This script will also send a warning email message,
# using another mailserver.
# I suggest you set an Outlook rule for automatic deletion
# of the test messages when you run this script periodically.

# Evert Mouw <>
# 2014-01-04

# variables used for the target that will be tested
FROM="" # should be from AN EXTERNAL DOMAIN to the Exchange server
SUBJECT="test: back pressure"
BODY="This is a test message. Please ignore."
DEBUG=0 # either 0 (no SMTP debugging) or 1

# variables used to send yourself a warning message
WARNSUBJECT="Back Pressure on Exchange server " + SERVER
WARNBODY="Exchange server " + SERVER + " is experiencing Back Pressure and cannot receive (external) emails any longer."

import smtplib

	print ("You are a moron.")

MSG="""To: %s
From: %s
Subject: %s


WARNMSG="""To: %s
From: %s
Subject: %s


if (PORT==465):
	smtp = smtplib.SMTP_SSL(SERVER, PORT)
	smtp = smtplib.SMTP(SERVER)

	smtp.sendmail (FROM, TO, MSG)
except smtplib.SMTPException, error:
	if "Insufficient system resources" in str(error):
		print (WARNBODY)
		if (WARNPORT==465):
			warnsmtp = smtplib.SMTP_SSL(WARNSERVER, WARNPORT)
			warnsmtp = smtplib.SMTP(WARNSERVER)
		warnsmtp.sendmail (WARNFROM, WARNTO, WARNMSG)
	print (error)
	#print (repr(error))

A simple Timer for Windows

A while ago, I needed a simple desktop Timer application. I didn’t like any of all the existing ones, so I wrote my own. It’s called EvertTimer.

screenshot of EvertTimer

screenshot of EvertTimer

Read the rest of this entry »

Useful Windows shortcuts

Here is a list of useful windows shortcuts:

Win key + E    -> Open the explorer window
Win key + R    -> Open the run command
Win key+ M    -> Minimise all windows use Shift Win key + M to undo minimise
Win key + L    ->  Lock computer
Win key + D    -> Show desktop
Win key + F    -> Open the find Dialouge
Win key +  U   -> Open the windows utility manager – you can use this to enable / disable on screen keyboard or narrator
F2    ->  Shortcut to rename
Cntrl + Esc -> same as using the win key, opens the start menu
Cntrl + shift + Esc -> opens the task manager
Cntrl + F4 -> This is used to close tabs in the main application where as alt + f4 closes the whole application
keep SHIFT pressed while inserting a USB or CD with auto boot to skip the auto boot functionality.

Hopefully this will speed up your work a bit or at least enable you to procrastinate a bit more xD

NTLDR Missing

NTLDR is Missing. Press any key to Restart
NTLDR is Missing. Press Ctrl Alt Del to restart.
Boot: Couldn’t find NTLDR.Please insert another disk.

These are a couple of messages you don’t want to see when you start up your computer. But if you do see these do not worry… they can be resolved and hopefully while keeping your data intact. Firstly for those of you who are wondering what is NTLDR it is the NT boot loader from windows which is used by all windows operating systems since Windows 2000 (and previous NT versions). It is the file which tells the computer on how to start the operating system. More detailed information on how it works can be found on the Wikipedia page.

Now lets get to resolving the issue.

The main reason for the error NTLDR is Missing to occur is that your computer is trying to boot from a non-bootable source. This could be due to a non-bootable Disk in your Drive or also a Connected USB Disk/ Device or a smart card.
Read the rest of this entry »

WindowsXP: Using the Command prompt to see and kill processes

If you are a WindowsXP user then you must be already familiar with the life-saving graphical tool called “Task Manager” on Windows. Whenever the PC starts hanging and the processes start eating up a lot of memory (Sadly most of the time its Firefox for me), we press the alt+ctr+del key to bring up the the “Task Manager” and try to kill the memory eating processes and the ones which are “not responding”. Well, you should also know that this can be done efficiently from the command prompt as well by using the task manager command prompt alternative and kill processes from command prompt.

As my project work requires writing and running codes, I generally have at least one Windows command prompt open. If this is the case with you then it is much faster to manage your windows processes from command prompt than to open up the Task Manager, just like we do on Linux using “ps” and “kill” command. Get to know the following commands and you can easily use the command prompt to see and kill processes.

1. Tasklist : This command is similar to “ps” command on Linux and is used to see the details of the programs and processes that are running in Windows. Tasklist can be applied to see how much memory and CPU time running processes are using, what DLL files they rely on, and other information. Thus it can be a very useful troubleshooting tool.

  • Processes info: When you enter tasklist on the command prompt, you can see the following informations by default. Image Name, PID, Session Name, Session#, Mem Usage
  • Processes detailed info: Additional info like, Status, User Name, CPU Time, Window Title can be displayed using tasklist /v
  • Services and Processes info: Use tasklist /svc to get a table relating Image Name, PID, and Services, very useful to know the relationship between a process and the services that are running on a system.
  • dlls and Processes info: Tasks and Use tasklist /m to find which DLLs are used by each process.
  • Filtering processes: Processes can be filtered using ImageName, PID, MemUsage, Status, Username and WindowTitle. For Example,
    • Use the following command to to find processes that are not responding.
      • tasklist /fi "status eq not responding"
    • Use the folliwing to list the processes eating up more than 10MB.
      • tasklist /fi "memusage gt 10000"
  • More Info: To get more info on advanced syntax of the command use tasklist /? or refer to Microsoft’s documentation.

(NOTE: Although Tasklist is a part of Windows XP Professional, it does not come with the Home edition. Those with the Home version of XP can download this file and can put it in the system path.)

2. Tskill : This command is used to end a process, using its name of its PID.

  • Kill with name: Use tskill processname to kill a process with name processname. For example:
    • tskill winword (closes all the Microsoft documents that you have open)
  • Kill with PID : Similarly use tskill processid to kill a process with PID processid. Tasklist can be used to find the PID of a process.
  • More Info: To get more info on advanced syntax of the command use tskill /? or refer to Microsoft’s documentation.

(NOTE: Tskill is a part of both Windows XP Professional and the Home edition.)

3. Taskkill : Similar to Tskill, this command is also used to end a process but it provides us more options in doing so. Apart from specifying the PID or the image name of the process to kill, we can also use ceratin filters to kill the matching processes as explained below.

  • Kill with name: Use taskill /IM imagename to kill a process with the given Image name. For example:
    • taskkill /im notepad.exe /f (forces notepad to be killed.)
  • Kill with PID : Use taskill /PID processid to kill a process with the given processid.
  • Filtering Taskkill: Processes to be killed can be filtered using ImageName, PID, MemUsage, CPUTime, Session, Status, Username, WindowTitle, Services or Modules (dll). For Example,
    • Use the following command to forcefully shut down all the processes that are not responding.
      • taskkill /f /fi "status eq not responding"
    • Use the folliwing to close down all programs using more than 10 MB..
      • taskkill /f /fi "memusage gt 10000"
  • More Info: To get more info on advanced syntax of the command use taskkill /? or refer to Microsoft’s documentation.

(NOTE: Taskkill is only a part of Windows XP Professional.)

So Enjoy using the task manager command line version!

Go on, show the power of your commands to the processes. Happy killing them. 😉

(Extra Note (Added for my own safety) : I am not responsible if anything goes wrong, while trying out the commands given here.)

Lan over Internet

Although I do love using the netgear r6700, being just out of college, I realized that one thing I am going to miss is the LAN and how easily everyone was just a net send away. And the main thing the GAMING experience you share with friends is never the same. With everyone being behind a NAT and some even behind proxy servers a direct connection is out of question. But there is still way to play those lan games over the Internet. While I wrote the previous post Lan over internet using Hamachi, this one uses wippien

There is a very sleek solution in form of VPN (Virtual Private Network) over the Internet which gives you alternate IP’s for your private LAN and you can now do anything you want just like it was a real LAN. Wippien is a P2P based VPN application so you do not have to worry about delays or speed limitations due to routing all the traffic via a central server. While Hamachi is a server based VPN.

Installation of Wippien is very simple just visit the site to download the small < 2 Mb file and it will guide you along to creating your own VPN network. Once setup you can use your Wippien IP as in you were directly connected in a LAN and begin to play games online or to use other services such as remote desktop or windows file sharing.

Wippien uses the Jabber protocol to connect you to your friends. I would recommend creating a new account rather than using your existing jabber account for convenience sake.


To connect to a LAN/network from a computer over Internet, firstly you will need to setup a VPN between one on the network to the computer outside, Wippien will do this for you. Now to be able to communicate/connect with the other computers on the network you will have to use the internal computer connected to you via Wippien as a proxy. To set up a proxy on the computer you can use tools like ccproxy, winproxy, or if you just want to communicate/ connect on a particular service you can simply use port forwarding.

Also VPN can be used by two or more users to connect directly when they don’t have an Internet IP, it can be used to play LAN games, file sharing netmeeting and various other services that require direct connection.
Wippien is available for both windows and Linux environments and what’s more its open source for those who want to try something extra.

Increase your computers performance

Computers tend to slow down especially if you are running under windows platform. Like most things a computer needs regular maintenance to keep it up and running at the optimum speed. In this post I would give you some tips and tricks on how to maintain your system to have it running properly and for a long time. This post I am specifically focusing on increasing your systems performance without having to lose or give up on any visual effects or tools. Later on I will also write a post on how to tweak your system performance for old PC’s.

1. Defragment: Disk fragmentation can have a huge impact on the systems performance. When the files are fragment the system takes longer to fetch the various parts of the file and join them together from the disk.
By default windows comes with a built in Disk Defragmenter utility that analyzes and defragments the system disk.

The Disk defragmenter can be found at Start -> All Programs -> Accessories -> System tools -> Disk Defragmenter

Read the rest of this entry »


The views expressed on this blog are personal. We do not claim to be a representative voice of the views of any organisation whatsoever. We are not responsible for the content present on the blogs to which we have linked.Views expressed are solely that of the author and does not reflect a collective opinion of contributors.