Mar 30 2008

Changing Windows Vista Themes

Now before we start, I Just need to say that since there are system files that require changes, I can not be held responsible for any system problems that might occur, This is at your own risk. ALWAYS ensure you take backups when changing any system files.

Now Vista has made it a little harder to change themes, as when you upload a new theme to the , however this is a quick guide which will enable you to use custom vista themes.

First step is download the patched system files

Now there are a few options under windows vista, if you are not sure what version of vista you have. STOP HERE you really should not be trying to do this.

Second Step

here are the steps:

1. Login as a user with Administrative privileges -or- have Administrative
credentials ready (check under the keyboard for a slip of paper).

2. Navigate to %systemroot%\System32

3. Right-click uxtheme.dll and click properties.

4. Take ownership of the file and close dialogs. (if you are unsure follow

5. Repeat steps 3 and 4 for themeui.dll and shsvcs.dll

6. Right-click uxtheme.dll and click properties.

7. Give yourself (or group) Full Control permissions and close dialogs.

8. Repeat steps 6 and 7 for themeui.dll and shsvcs.dll.

9. Rename uxtheme.dll to uxtheme.old.

10. Rename themeui.dll to themeui.old.

11. Rename shsvcs.dll to shsvcs.old.

12. Copy patched files into %systemroot%\System32

13. Reboot (yes, this is really required)

third Step

Download your desired themes

I have found some nice free themes at

Now Here when you extract them most of the themes will be an extension .THEME, this is a true vista theme style, and in this post I am only showing you how to apply these themes. (there are other themes extensions but these are generally previous version formats and I HIGHLY recommend not using them, use only .theme)

Once you have downloaded the .theme you must copy the .theme and associated folder(s) into %systemroot%\Resources\Themes

Now right click on the desktop and go to personalisation and choose themes, Low and behold you now have custom themes.


Mar 30 2008

Configuring Nukedit CMS under IIS7

I have recently been having a lot of issues configuring this particular CMS under IIS7, Once I had configured the application, I constantly kept getting 500 errors, I turned on all logging in IIS (there is a lot more error logging that IIS7, which is fantastic) However none of additional error logging was logging anything that was any real help, it was a matter of going through all the modules to figure out what and why.

Whilst under IIS6 this task is seconds work, a couple of clicks and bang it works. So I thought for those struggling to configure Nukedit (A light weight free ASP based CMS) I will post something, as I struggled to find any resources on this subject.

If you are setting the CMS as a Virtual Directory (VD) then leave the /includes/setup.asp as it (provided your VD is called nukedit, if not you will also need to change this), otherwise you will need to change it, you will find that line 30 in setup.asp is commented out, un-comment this and then comment line 29, and save.

ensure you have set your permissions correctly (best refer to Nukedit for this one)

Ok now for the IIS7 part

When installing IIS7 there are many features that you are now able to turn on, you must have ASP turned on, server side includes also one hurt. (infact while you are there I say turn them all on)


Once installed then open the IIS7 Console, Choose your web site of VD, you will now see ASP as one of your options


double click on ASP and then you will be provided with many options and Sub options, we are after the behaviours’ option in there you will find enable parent paths, this will be set to false, set it to TRUE.

Then you must convert the VD to an application. This is easy, simply right click on the VD and then choose ‘convert top application’

That’s it you should be able to use the CMS provided the permissions and the other above items were correctly applied.


Mar 28 2008

Windows Live Writer – Local Draft’s where are they stored?

Today one of our Project Managers migrated notebooks, after the migration was finished his profile was no longer needed as this notebook is being donated to a fellow staff member. So with that, I deleted his profile as it was no longer required, as you do. Now it seems that he had a blog post  that was still stored in his local drafts.

So that prompted me is the draft stored on the profile or on within the install DIR. I learnt that it is stored on the profile within documents, it will create a new folder called ‘My Weblog Posts’ in here you will find sub folders. There you will have your saved local drafts. It also keeps a local copy of your recent posts too.

Mar 27 2008

SQL 2008 Fetures Explained – White Paper

Well I came across this white paper written by Geoff N. Hiten, a Microsoft MVP. I thought it might be worth while sharing it, the paper explains what most of the major new features are within SQL 2008 server, defiantly worth a read for all those interested DBA’s.

Find it HERE

Mar 22 2008

Vista Task Manager, Not killing task

It Seems Windows Vista does not always kill tasks within task manager, you could try and kill the task in ‘Task Manager’ for hours (and I am not talking about system tasks) and not get anywhere.

The simple way of actually killing the task rather then buying or install other 3rd party software to do it, is by using the command line, Vista (like XP has a kill command) has a command built in which will do the job perfectly every time

Simply open CMD, and then

taskkill /your parameters here

Here is a copy and paste of all the options that TaskKill Provides.

C:\Users\bradm>taskkill /?

TASKKILL [/S system [/U username [/P [password]]]]
         { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]

    This tool is used to terminate tasks by process id (PID) or image name.

Parameter List:
    /S    system           Specifies the remote system to connect to.

    /U    [domain\]user    Specifies the user context under which the
                           command should execute.

    /P    [password]       Specifies the password for the given user
                           context. Prompts for input if omitted.

    /FI   filter           Applies a filter to select a set of tasks.
                           Allows “*” to be used. ex. imagename eq acme*

    /PID  processid        Specifies the PID of the process to be terminated.
                           Use TaskList to get the PID.

    /IM   imagename        Specifies the image name of the process
                           to be terminated. Wildcard ‘*’ can be used
                           to specify all tasks or image names.

    /T                     Terminates the specified process and any
                           child processes which were started by it.

    /F                     Specifies to forcefully terminate the process(es).

    /?                     Displays this help message.

    Filter Name   Valid Operators           Valid Value(s)
    ———–   —————           ————————-
    STATUS        eq, ne                    RUNNING |
                                            NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    Image name
    PID           eq, ne, gt, lt, ge, le    PID value
    SESSION       eq, ne, gt, lt, ge, le    Session number.
    CPUTIME       eq, ne, gt, lt, ge, le    CPU time in the format
                                            of hh:mm:ss.
                                            hh – hours,
                                            mm – minutes, ss – seconds
    MEMUSAGE      eq, ne, gt, lt, ge, le    Memory usage in KB
    USERNAME      eq, ne                    User name in [domain\]user
    MODULES       eq, ne                    DLL name
    SERVICES      eq, ne                    Service name
    WINDOWTITLE   eq, ne                    Window title

    1) Wildcard ‘*’ for /IM switch is accepted only when a filter is applied.
    2) Termination of remote processes will always be done forcefully (/F).
    3) “WINDOWTITLE” and “STATUS” filters are not considered when a remote
       machine is specified.

    TASKKILL /IM notepad.exe
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM cmd.exe /T
    TASKKILL /F /FI “PID ge 1000″ /FI “WINDOWTITLE ne untitle*”
    TASKKILL /S system /U domain\username /FI “USERNAME ne NT*” /IM *
    TASKKILL /S system /U username /P password /FI “IMAGENAME eq note*”

I simple use:

taskkill /f /FI taskname.exe

Hope this helps someone.

Mar 14 2008

Upgrading CRM 3.0 to 4.0

Well this is an easier task then I had first thought, I even screen shot the whole process to show you how easy and painless it was.

The hardest thing in the process is if like me you decided you needed to change where the web server was located, then you need to install CRM 3.0 on that server and then upgrade. However there are many blogs about moving  and installing CRM 3.0 installations so we wont focus on that, just know that you MUST have CRM 3 .0 Installed before you can upgrade (its a given really but just in case).

So Put Your CD in, The Splash screen will come up, Choose Install CR 4.0 (there is no upgrade option it will detect the previous installation).

You will be prompted to enter your Licence Key in. once you have successfully entered the key add it and then choose Next, you will be prompted with an upgrade screen as per below


Choose Next

Here as you can see it detects the Organisation name and general details from your previous install.


However you will need to choose your ISO currency as apart of the new functionality, once selected then OK it


Click Next.

You should get the typical MS help us screen, hit Next again


It will ask you for your SQL reporting services HTTP location.  Ensure that you can get to the Report Server before you go to the NEXT screen


Here you can apply what user account you would like to use for the CRM services. Here I just use the network service. This works perfectly. Choose Next once again


Now enter the name of the IP address of your mail server, then Next


Now we are almost done, it will do a check against the components and ensure they are ready to rock and roll, unfortunately on my first attempt i was not ready… :( Turns out you will need to have Service Pack 2 Installed on SQL 2005 Reporting Services.


Once you have done this, or if its already done even better, you will be seeing this screen


So Next and then it will review your choices


Then Finally press Upgrade


Once completed you will need to restart the Server


See easy as pie.

Mar 10 2008

Microsoft Surface

All I can say is WOW, this is amazing it was only a matter of time, I am lost for words after watching the surface intro, which can be found here:

 For those that don’t want to watch the flash… well your nuts, but its simply a interactive table which is controlled by touch, and weight and heat, i say touch because you can draw, navigate, nothing new there really, weight because it can detect devices, how it detects the correct device, well I don’t know yet, how it does this and then integrates and sends image etc (I am sure it will be only WM7 that has the integration functions), either way very impressive.  And on the flash it shows placing a cold glass on the table, and it detects this by from again what I can only assume to be heat sensors.

Simply amazing and brilliant

However it has said to come with a heft price tag - $5,000 – $10,000, come 5 years everyone will have one of these.

Mar 4 2008

Elcom’s Got A New Firewall

We have had this firewall for a little while now, it was only Sunday morning (12am onward) that we were able to install the appliance, as Elcom also acquired its own IPv4 Range, as opposed to using one of ATP’s (Australian Technology Park) range.

The job was huge (and something I am very proud of) as we had the massive tasks of changing all clients DNS both internal and roughly 150-200 External DNS’s, Configuring the firewall and then implementing.

here is a rough plan of how we went about it.

  1. We first started to collate a list of all domains that we hosted from our IIS servers
  2. We Then created a script to go through and complete Ping and NSlookup requests against every single domain
  3. Taking the log file that the script created we then were able to determine what Domains we hosted and had control of the DNS, and also had a list of what we didn’t have control of.
  4. Before we could go changing DNS’s we needed to ensure that there was no down time for any of the sites, as this we see as not acceptable. So we devised a plan where we would take of our DMZ internal range and give the subnet a, which effectively gives us another 0 – 255 set of IP addresses.
  5. We then set this on the firewall (again no down time was required here) with NAT and changing a few subnet’s
  6. Now that we had a range that was being routed through the firewall we needed just needed to add them to the interfaces, however we wanted this to have alot more structure and organization for future growth, as the range before was fast becoming outgrown and as a consequence had lost any meaning to what what was and where it was located, so we needed to figure out a mapping plan.
  7. Now that we had put down what server gets what IP(s) we were ready to start adding the additional internal range to our network interfaces.
  8. Once this was done we needed once again to put pen to paper… Here we had to analysis the traffic usage for the last 12 – 6 months from clients, this told us who we can put on shared IP and of course who needs to go on a dedicated IP address.
  9. After this was nutted out we then could go into IIS and then apply the new IP to each web site and host header.
  10. Only after this was completed on all web servers could we start changing the DNS’s that we had control of
  11. Once this was completed we ran a ping test on all the domains we had access to change to ensure nothing was missed.
  12. Once we could ensure that all the DNS’s we had control of were completed, I had the task of coordinating who would contact which client, once I had created this list it was distributed to each member of helpdesk (and myself) and we went calling crazy. This persisted for about 2 solid months of constant calling to get the client to change the DNS. But in the end we got every client over to the new IP range
  13. Configure the firewall, I undertook this task, because our previous firewall I had inherited when I got to Elcom, and the policy’s I did not agree with, I felt that they were far to open, so being the security conscious person I am, or like to be (most of the time) I really put alot of thought and effort into this firewall. I dislike lots of polices, as it slows down the firewall, its harder for the user to read and understand. So I wanted to condense it but yet has a very secure network, so I created groupings for everything I could think of, Production Web servers, Dev Web servers, ALL web servers, Mail servers, Services, the list goes on and on. But this really made it ALOT easier to put together the polices. With this Being that we could not test the firewall to its full potential before going live, I rechecked and rechecked, I also had Alan recheck the firewall settings. I also did put fail safe policies in place that were more open (these were not active at the time just there as a just in case)
  14. Now that the firewall was done we needed to do some checking, so Alan setup a 3rrd party app that did monitoring on every single web site through our ADSL connection (external from Elcom) to ensure everything looked healthy from the outside. In addition to this Alan also setup another PC that had all of our external IP address added to the 1 interface of a server, where this would show a message explaining that maintainance was being completed
  15. We then were ready to rock and roll, so after giving sufficient notice to our clients we changed the firewall over.

As you can see there is a considerable amount of preparation into the whole saga, but all in all it was a very smooth transition with minimal downtime for clients, and now we have a very clean secure firewall, which is now out showing huge network increases. This is mainly due to the fact that now the DMZ (web servers) and the Trust (Database Servers)  are on full gigabit links, as the firewall was out bottleneck previously.

We can see that we are now getting about 350MB/S speeds through transferring over the 2 networks, the response times of web sites have decreased by an average of 35milli seconds, Latency has decreased.

as a result of quicker and more secure environment I am now getting more sleep at home now :)