November 2010 (1)
August 2010 (1)
July 2010 (1)
June 2010 (3)
July 2009 (3)
June 2009 (1)
May 2009 (1)
February 2009 (1)
January 2009 (1)
November 2008 (3)
October 2008 (4)
September 2008 (9)
August 2008 (6)
July 2008 (3)
June 2008 (3)
January 2008 (1)
November 2007 (2)
October 2007 (6)
September 2007 (5)
August 2007 (22)
July 2007 (6)
June 2007 (1)
May 2007 (3)
April 2007 (27)
March 2007 (8)
February 2007 (6)
September 2006 (2)
August 2006 (4)
July 2006 (9)
June 2006 (17)
May 2006 (20)
April 2006 (12)
March 2006 (9)
February 2006 (4)
January 2006 (3)
December 2005 (2)
November 2005 (4)
October 2005 (5)
September 2005 (37)
August 2005 (83)
July 2005 (6)

Active Directory / LDAP (0)
ASP.Net (19)
Blackberry Development (4)
c# (34)
c++ (3)
Code Camp (1)
Excel (1)
Exchange (3)
Front Page 2003 (6)
FTP User Editor (4)
IIS (146)
IIS - Log Parser (7)
IIS / FTP (12)
IIS / Tools / Administration (42)
IIS / Tools / Authentication (6)
IIS / Tools / Compression (8)
IIS / Tools / Crash & Hang (12)
IIS / Tools / ISAPI Filters (17)
IIS / Tools / Log Files (17)
IIS / Tools / Scripts (28)
IIS / Tools / Security (9)
IIS / Tools / SSL (6)
IIS 7 (3)
Internet Information Server (1)
Me (Chris Crowe) (6)
MIME Types (1)
Misc (72)
Oulook Express (2)
Silverlight (1)
SQL Server (27)
SQL Server CTE (1)
Vista (15)
Vista Gadgets (8)
Visual Studio (11)
Voice over BroadBand (1)
Windows (33)
Windows Powershell (3)
Windows Sharepoint Services (0)
Windows Sharepoint Services (15)
Windows Vista (14)
Wine Cellar (1)
WMI (8)


August 2007 (22)

Free Microsoft learning courses

If you browse to you will find a number of free courses that Microsoft is offering via its inline learning centre.

Most are two hour courses and cover topics such as:

  • Microsoft Security Guidance Training
  • Getting Started with Microsoft Windows Server 2003 R2
  • Inside Look at Building and Developing Solutions with Microsoft Office SharePoint Server 2007
  • Introducing Enterprise Telephony Using Microsoft Office Communications Server 2007
  • Introduction to Developing with Windows Presentation Foundation and Visual Studio 2005
  • Understanding the Differences Between Microsoft SQL Server 2005 Standard and Enterprise Editions
  • What’s New in Windows Vista

While we are on the topic of learning - checkout the Virtual TechEd at

You can view WebCasts, Virtrual Labs, and Podcasts

Do you want to browse Active Directory or another LDAP Directory?

I have been using this product for about 10 months now and find that it is great for me to find and view object level details in our Active Directory.

I like to write my own applications to update active directory but this tool is great for just browsing and navigating around AD and other LDAP directories.

Softerra LDAP Browser is a lightweight version of Softerra LDAP Administrator with limited functionality and is absolutely FREE for all kinds of use including commercial! Unlike Softerra LDAP Administrator, the Browser does not allow its users to modify LDAP directories.

This is version 2.6 which is quite old ( 2003 ) compared to the current release of its big brother at 3.4 (2006)

The big brother supports a lot more features but if you are just wanting to browse then this is really the best tool I have found.

For more details and to download see


Code Camp in Christchurch, New Zealand in November 2007

I see that there is now offical talk of a Code Camp in Christchurch, New Zealand in November 2007 which is good to see. I hope for some confirmed dates soon.

This is great news as the Mainland as we call it (the South Island of New Zealand) has never had a Code Camp before.

For pre-registrations and more details see 

The theme of the code camp is Next generation, back to basics. 

New releases of C#, VB, .Net, ASP and SQL are iminent.  This code camp will focus on getting up to speed with all of this, plus cover migration stratigies and many non-technology specific topics such as Architecture and Development Life Cycle.  Hopefully something for everyone - noobs, gurus, youg and old.

I have been asked to speak on IIS 7 and will be providing a session on this somewhere over the two day event.

I also spoke to Daniel Wissa ( at TechEd 2007) who runs the Christchurch .NET user group with Peter Jones [MVP] about running a shared session some time this year on Windows Vista Gadget Development. The code camp may be a good time for this session as well.

 I am trying to get some sponser support as well - but I will keep it quiet until I know the result.

Windows Vista Ultimate Extras - What a wasted concept

How many of you who have forked out the extra bucks for the Windows Vista Ultimate version of Windows have got very use to seeing the following image?

I thought that I have only seen this message for ages so I took a look and this is the last ultimate extra I got:

Checkout that date - March 21, 2007

Well today is August 25, 2007 so that is only 5 months with no updates.

What a complete and utter waste of time Microsoft for wasting everyones time with this package of nothing!

When are you going to realise that people get pissed this with this stupid policy that you run, as if you don't have simple tools you could just throw in each week or two to keep people happy who paid the extra $

Quote from Paul Thurrott back in Febraury 2007 -

Given the paucity of Extras, and the overwhelming feeling that some of these should have simply been included in more Vista versions, the Windows Ultimate Extras aren't exactly a slam dunk: I don't see anything absolutely essential here, though the BitLocker Drive Preparation Tool is certainly useful (and GroupShot is, of course, a winner, assuming it's ever released - not yet Paul). We'll see if anything more compelling turns up over time, as Microsoft has pledged to ship more Extras in the months ahead. Let's hope some of them help justify Vista Ultimate's high price: Until then, this package of Extras is decidedly mediocre. What a disappointing start.

Paul Thurrott
January 17, 2007 & February 14, 2007

Disapointing start, well add 6 months to that statement Paul and there is nothing new going on, infact nothing really since you posted your comments.

I saw a very interesting Key Note speech while at TechEd 2007 - and

The main thing that Lou Carbone shared with the audience was leaving indeliable marks that make a difference in the world we live in.  The main topic what Lou was wanting to get across was we should move from making and selling to sensing and responding.

So what does this mean - well it means understanding your customers and not just selling to them, we are all customers at the end of the day, and we all want to be treated with respect and dignity.

Come on Microsoft, play the game and sort this program out for your customers, remember those little people who actually pay your wages!


What platform does Microsoft want us to use to develop code on?

I am working on some Active Directory tools for work so we can automate account creation, home directories, exchange mailboxes and other things.

As part of this I needed to create Exchange Mail boxes.

Now Microsoft has this article that is titled "How to create a mailbox-enabled recipient by using Visual C#" perfect, exactly what I needed.

But the article is a bit old but in general it is OK, the requirement is that the following must be installed.

Microsoft Exchange 2000 System Management Tools on the computer on which this code runs

We can assume that this also can mean the Microsoft Exchange 2003 System Management Tools?

I am trying to develop my code on Windows Vista Ultimate 64 Bit.

So I need the Exchange Management tools, so I go and find the Exchange Server CD and pop it in the drive, but when I want to install the tools I get a message saying it is not compatible with Windows Vista and I can not install, I can't even ignore the message and continue.

So Vista has been as far as I am concerned out since November 2006 ( to the coporate community at least), it is now almost September 2007.

So I should go back to Windows XP - wasn't that released in 2002, or maybe 2003 Server or 2003 Server R2 to do my development work?

This is a stupid problem for Microsoft - how hard is it to make their own products Vista Compatible or should I just want until we install Exchange 2007 at work and tell them no go until then!

No wonder the driver support from 3rd party vendors is so terrible when Microsoft do not even make their management tools compatible with Windows Vista.

c# - An example of setting NTFS Directory / File ACLS

Below is a simple c# console application that shows how you can set the NTFS ACLs for a directory. 

You are probably aware of the DirectoryInfo object which you can use to get details on a folder, but there is also the ability to get and set the NTFS file ACLs (Access Control List Entries)

No special reference need to be made in order to use the code.

using System.IO; 
using System.Security.AccessControl; 

namespace DirectoryPermissions 
    internal class Program 
        private static void Main(string[] args) 
            string ADDomain = "Domain"; 
            string ADUser = "Chris"; 
            string Path = @"c:\temp\chris"; 

            if (Directory.Exists(Path) == false) 

            // Remove any inheritable permissions from the path 

            // Add the access control entries for the path 
            AddDirectorySecurity(Path, ADDomain + "\\" + ADUser, FileSystemRights.Modify, 
                                 InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, 
                                 PropagationFlags.None, AccessControlType.Allow); 
            AddDirectorySecurity(Path, ADDomain + "\\Domain Users", FileSystemRights.Delete, InheritanceFlags.None, 
                                 PropagationFlags.None, AccessControlType.Deny); 
            AddDirectorySecurity(Path, ADDomain + "\\Domain Admins", FileSystemRights.FullControl, 
                                 InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, 
                                 PropagationFlags.None, AccessControlType.Allow); 

        // Adds an ACL entry on the specified directory for the specified account. 
        public static void AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, 
                                                InheritanceFlags Inheritance, PropagationFlags Propogation, 
                                                AccessControlType ControlType) 
            // Create a new DirectoryInfo object. 
            DirectoryInfo dInfo = new DirectoryInfo(FileName); 
            // Get a DirectorySecurity object that represents the  
            // current security settings. 
            DirectorySecurity dSecurity = dInfo.GetAccessControl(); 
            // Add the FileSystemAccessRule to the security settings.  
            dSecurity.AddAccessRule(new FileSystemAccessRule(Account, 
            // Set the new access settings. 

        // Removes an ACL entry on the specified directory for the specified account. 
        public static void RemoveDirectorySecurity(string FileName, string Account, FileSystemRights Rights, 
                                                   AccessControlType ControlType) 
            // Create a new DirectoryInfo object. 
            DirectoryInfo dInfo = new DirectoryInfo(FileName); 
            // Get a DirectorySecurity object that represents the  
            // current security settings. 
            DirectorySecurity dSecurity = dInfo.GetAccessControl(); 
            // Add the FileSystemAccessRule to the security settings.  
            dSecurity.RemoveAccessRule(new FileSystemAccessRule(Account, 
            // Set the new access settings. 

        // Removes an ACL entry on the specified directory for the specified account. 
        public static void RemoveInheritablePermissons(string FileName) 
            // Create a new DirectoryInfo object. 
            DirectoryInfo dInfo = new DirectoryInfo(FileName); 
            // Get a DirectorySecurity object that represents the  
            // current security settings. 
            DirectorySecurity dSecurity = dInfo.GetAccessControl(); 
            // Add the FileSystemAccessRule to the security settings. 
            const bool IsProtected = true; 
            const bool PreserveInheritance = false; 
            dSecurity.SetAccessRuleProtection(IsProtected, PreserveInheritance); 
            // Set the new access settings. 

Come on Microosoft - Update my VS.NET Start Page

Well I went to TechEd in Auckland about 10 days ago and I am still getting this in my VS.NET Start Page

Maybe they just want to get some real early bird reservations.

c# - How to create a comma seperated string from a list of items

I found an interesting post from a work colleague "Simeon Pilgrim" at that shows that in the System.Configuration namespace there is a very simple class that will create a comma seperated string for you.

The class is called CommaDelimitedStringCollection and you must add a reference to System.Configuration in order to use it.

There is a simple example of how to use it.
using System; 
using System.Collections; 
using System.Configuration; 

namespace Commas 
    internal class Program 
        private static void Main(string[] args) 
            ArrayList Items = new ArrayList(); 

            CommaDelimitedStringCollection commaStr = 
                new CommaDelimitedStringCollection(); 

            foreach (string item in Items) 

The output from the above would be :,,

In the sample above we loop through each item in my ArrayList and add it to the list of strings to comma seperate.
We could have replaced for foreach loop with this to make it a bit easier.

commaStr.AddRange((string[]) Items.ToArray(typeof(string)));


I wonder how many other usefull classes are out there but no one uses them and reinvents the wheel.

IIS7 Access Denied when using the IIS 7 Manager

While working on IIS 7 this morning I got the following error while trying to save some configuration settings to my Default Web Site

There was an error while performing this operation.


Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

The error message displayed was not that friendly but I got a general idea - unable to save my changes!

There are a couple of clues :

  • Only occurs while saving - so sounds permissions related
  • The line in the status bar says "Configuration: 'Default Web Site' web.config".  What this means is that the UI is going to save the changes to the web.config file in the home directory of the 'default web site'

Apon checking the web.config file I noticed that the Read Only attribute was set, and this was causing the issue above, maybe the UI should check if the web.config file is marked as read only and warn the user - I will suggest this to the IIS product team.

Starting and Stopping a Web Site And Application Pool

I had a request last week for the following:

I'm trying to do the following:

  1. Stop a IIS website
  2. Stop an App Pool
  3. Start the App Pool
  4. Start the Website

From what I can see here, I can use the example for the "starting an application pool" for the steps 2 & 3.

I have found that you can use iisweb.vbs to do steps 1 & 4.

 But how link them in the order above?

 Hope you can give me some pointers


The following code sample in VBScript allows you to do that with the following points of interest.

  • The Default Web Site is assumed - WebSiteID = 1, you can change this to any other web site by changing the ID with the ID of the other web site. There is a script called FindWeb.VBS or you can look at the log folder name and get the web site id from that - see
  • There is only 1 site using the AppPool - well not technically true, if you run this and there is more than one web site using the app pool then it will be down while the app pool restarts.

Here is the code, save to StopAndStartSiteAndAppPool.VBS file and then run in a CMD.EXE prompt using the following syntax:

cscript StopAndStartSiteAndAppPool.VBS


Option Explicit

Dim WebSiteID, objWebSite, ObjAppPool

WebSiteID = "1"
Set objWebSite = GetObject("IIS://localhost/W3SVC/" & WebSiteID)
WScript.Echo "Stopping Web Site : " & objWebSite.ServerComment \

wscript.echo "Stopping Application Pool : " & objWebSite.AppPoolID
Set objAppPool = GetObject("IIS://localhost/W3SVC/AppPools/" & objWebSite.AppPoolID)

wscript.echo "Starting Application Pool : " & objWebSite.AppPoolID

WScript.Echo "Starting Web Site : " & objWebSite.ServerComment

You can also view/save the script from here. Operations Team Opens Up On Deploying IIS7 Early
I met up with Eric Woersching (who is a Technical Program Manager for IIS) while at TechEd in Auckland this last week and found that he had a great post on how the Ops team installed IIS 7 and Windows Server 2008 into their environment .

There is a 38 Minute video available on his blog site that is well worth a look if you are interested in this type of migration which I assume we all are as we will all have to do this at some point.

For more details see

To learn more about how the Ops Team for MSCom uses IIS to host and manage one of the busiest sites in the world, check out their team blog at

MZ-Tools 6.0 for VS.NET 2002/2003/2005/2008 (Orcas):

Carlos Quintero (MVP) has just released MZ-Tools 6.0 for VS.NET (

MZ-Tools is a productivity add-in for Visual Studio .NET that supports VB.NET, C#, Visual J# and C++ (partial support) and adds 40+ features to the IDE to locate code faster, to code faster, to design faster, to generate documentation and to enhance your IDE experience. This new version targets VS.NET 2002, 2003, 2005 and 2008 (aka "Orcas") in a single version."

MZ-Tools will allow you to enjoy the following benefits during the development of your applications:

  • To write code faster: There are features that will allow you to insert exception handlers, snippets of code, etc. with a single mouse click, keyboard shortcut or expansion keyword, and to use assistants to create new procedures, message boxes, connection strings, etc.
  • To find code faster: With the enhanced Find feature of this add-in, all the results are shown in a hierarchical tree inside a dockable window that allows you to remove occurrences that are not of interest. Other features allow you to find all code locations that call a given procedure, to keep a list of favorite procedures, etc.
  • To design forms faster: There are features that will allow you to apply default properties to a control when it is added to a form, to set the TabIndex property of all the controls of a form with one click, etc.
  • To document your code faster: There are features that will allow you to insert headers (to a procedure, class or file) with a single mouse click or keyboard shortcut. These headers are customizable and allow the use of predefined variables (such as the procedure name) or user-defined variables. Furthermore, other features will generate documentation about your source code in XML and HTML formats.
  • To ensure the quality of your code and applications: There are features that can sort code, add line numbers for error handlers, code reviews that can detect dead code, review the TabIndex or access keys of your controls, review forbidden or mandatory text, etc. Even better, from version 4.0 for Visual Studio .NET onwards you can use the MZ-Tools SDK to write your own review operations with very little effort.

And many more features (40+ in each toolset) to make coding more enjoyable by eliminating the tedious tasks!

There are several versions of MZ-Tools, some of them freeware, depending on your Microsoft programming environment.

For more details see

IIS Product Team

I was talking with Eric Deily today at TechEd New Zealand in Auckland and he was discussing the size of the IIS product team.

Te team basically consists of :

  • 8 or 9 Product Managers
  • 18 Testers
  • 16 Developers

I would have assumed that there would be more than this but I always knew it was a small team.

If you are interested in SQL Server there is a great set of podcasts available at

Greg Low MVP and Microsoft Regional Director  has setup this pod cast site especially for SQL Server related pod casts.

Currently there are 23 pod casts available for download as .WMA or .MP3 files.

Here is a list of the podcasts to date,

  • Show 23 with SQL Server author James Luetkehoelter
  • Show 22 with guest Kevin Kline
  • Show 21 with guest Joe Celko
  • Show 20 with guest Richard Waymire
  • Show 19 with guest Peter Myers
  • Show 18 with guest Don Vilen
  • Show 17 with Microsoft Architect and Development Manager Gert Drapers
  • Show 16 with guest SQL Server MVP Paul Nielsen
  • Show 15 with guest Kimberly Tripp
  • Show 14 with guest Microsoft MSDN Regional Director Adam Cogan
  • Show 13 with guest SQL Server MVP Bill Graziano
  • Show 12 featuring guest SQL Server MVP Louis Davidson
  • Show 11 featuring guest Dr Tom Moreau discussing his experiences using SQL Server Service Broker and DMV's
  • Show 10 featuring guest Graeme Simsion discussing data modelling  
  • Show 9 with Turing Award winner and Microsoft Distinguished engineer Dr Jim Gray ( discussing the future of SQL Server, LINQ and T-SQL
  • Show 8 with guest Adam Machanic discussing stored procedures as APIs and unit testing of stored procedures
  • Show 7 with guest Roger Wolter discussing SQL Server Express
  • Show 6 featuring Itzik Ben-Gan discussing the T-SQL language
  • Show 5 with Niels Berglund
  • Show 4 with Bob Beauchemin
  • Show 3 with Kent Tegels
  • Show 2 with Hilary Cotter
  • Show 1 with Kalen Delaney

Stripping the time portion of a SQL DateTime - Which is faster?

We have two functions below which are basically identical except the actual method of stripping off the time portion of the datetime variable.

CREATE FUNCTION [dbo].[DateTimeToDate](@DateTime datetime)

CREATE FUNCTION [dbo].[DateTimeToDate](@DateTime datetime)
cast(cast(@DateTime as integer) as DateTime)

declare @StartDateTime datetime
@EndDatetime datetime
@dt datetime
@Count int

set @StartDateTime = getdate()
set @Count = 0
while (@Count < 10000000)
@dt = dbo.DateTimeToDate('2007-10-1 1:45pm')
set @Count = @Count+1
@EndDateTime = getdate()

select @EndDateTime - @StartDateTime

We run the script above which calls the function 10 million times and the results are quite close

286.157 seconds   return CONVERT(VARCHAR(10),@DateTime,111)
250.170 seconds  return CAST(CAST(@DateTime as integer) as DateTime)


This table shows the operating systems that run the server software for each 32-bit version of SQL Server 2005.
I have been given a task of updating our SQL Server Infrastructure from SQL 2000 to SQL 2005 and I found this table that I thought may be of use to a lot of people.  If you are running SQL 2005 on a 32BIt CPU this table shows which is supported and which is not.
  Enterprise Edition1 Developer Edition Standard Edition Workgroup Edition Express Edition Evaluation Edition
Windows 2000 No No No No No No
Windows 2000 Professional Edition SP42, 4 No Yes Yes Yes Yes Yes
Windows 2000 Server SP42 Yes Yes Yes Yes Yes Yes
Windows 2000 Advanced Server SP42 Yes Yes Yes Yes Yes Yes
Windows 2000 Datacenter Edition SP42 Yes Yes Yes Yes Yes Yes
Windows XP Embedded No No No No No No
Windows XP Home Edition SP2 No Yes No No Yes No
Windows XP Professional Edition SP24 No Yes Yes Yes Yes Yes
Windows XP Media Edition SP2 No Yes Yes Yes Yes Yes
Windows XP Tablet Edition SP2 No Yes Yes Yes Yes Yes
Windows 2003 Server SP1 Yes Yes Yes Yes Yes Yes
Windows 2003 Enterprise Edition SP1 Yes Yes Yes Yes Yes Yes
Windows 2003 Datacenter Edition SP1 Yes Yes Yes Yes Yes Yes
Windows 2003 Web Edition SP1 No No No No Yes No
Windows Small Business Server 2003 Standard Edition SP1 Yes Yes Yes Yes Yes Yes
Windows Small Business Server 2003 Premium Edition SP1 Yes Yes Yes Yes Yes Yes
Windows 2003 64-Bit Itanium Datacenter Edition SP1 No No No No No No
Windows 2003 64-Bit Itanium Enterprise Edition SP1 No No No No No No
Windows 2003 64-Bit X64 Standard Edition SP1 WOW643 WOW643 WOW643 WOW643 WOW643 WOW643
Windows 2003 64-Bit X64 Datacenter Edition SP1 WOW643 WOW643 WOW643 WOW643 WOW643 WOW643
Windows 2003 64-Bit X64 Enterprise Edition SP1 WOW643 WOW643 WOW643 WOW643 WOW643 WOW643
  Enterprise Edition1 Developer Edition Standard Edition Workgroup Edition Express Edition Evaluation Edition
Windows 2000 No No No No No No
Windows 2000 Professional Edition SP42, 4 No Yes Yes Yes Yes Yes
Windows 2000 Server SP42 Yes Yes Yes Yes Yes Yes
Windows 2000 Advanced Server SP42 Yes Yes Yes Yes Yes Yes
Windows 2000 Datacenter Edition SP42 Yes Yes Yes Yes Yes Yes
Windows XP Embedded No No No No No No
Windows XP Home Edition SP2 No Yes No No Yes No
Windows XP Professional Edition SP24 No Yes Yes Yes Yes Yes
Windows XP Media Edition SP2 No Yes Yes Yes Yes Yes
Windows XP Tablet Edition SP2 No Yes Yes Yes Yes Yes

1SQL Server 2005 Evaluation Edition supports the same feature set as SQL Server 2005 Enterprise Edition, but Enterprise Edition is not supported on all of the operating systems that support Evaluation Edition.

2You can download Windows 2000 SP4 from this Microsoft Web site.

3These editions of SQL Server 2005 can be installed to the Windows on Windows (WOW64) 32-bit subsystem of a 64-bit server.

4You can install Microsoft SQL Server Books Online, client tools and some legacy tools for SQL Server 2005 Enterprise Edition on Windows 2000 Professional SP4, and Windows XP SP2. Client tools include SQL Server Management Studio, and Business Intelligence Development Studio, SQL Server 2005 software development kit. Legacy tools include Data Transformation Services Runtime and SQL-DMO.

The following limitations or issues affect installations on supported operating systems:

  • Native Web Service (SOAP/HTTP) support is only available for instances of SQL Server 2005 running on Windows 2003.

  • Individual topics in Microsoft SQL Server 2005 Integration Services (SSIS) programming, Analysis Management Objects (AMO), and ADOMD.NET documentation may indicate support for earlier versions of Windows, such as Windows 98, Windows ME, or Windows NT 4.0. However, for this release, these three programming interfaces are only supported on Windows XP, Windows 2000, and Windows 2003.

  • SQL Server 2005 failover clusters require Microsoft Cluster Server (MSCS) on at least one node of your server cluster. MSCS is only supported if it is installed on a hardware configuration that has been tested for compatibility with the MSCS software. For more information, see the topic for "Before Installing Failover Clustering" in SQL Server 2005 Books Online.

Borders - the book store

Here is something that I have known about for ages but have not thought about posting before but since we all buy books it is a useful tip.

Borders in New Zealand has a book club, you need to sign up in store and they will then send you emails basically every week with deals for the next few days. It looks like you can now sign up at as well.

Last week there was 40% off any book, the biggest I have seen is 50% off any book.

There are limitation such as products on special are not included etc.

Now here is another tip along the same lines.

Go to and sign up there as well using a different email address.

What I have found is that you get the deals from Australia which include using the coupon in NZ. The deals are different each week to the NZ borders deals so you can often find a good deal.....


IIS Web Site Identifiers

Normally you do not need to be concerned about web site identifiers, these are the actual ID's that reference the web site to IIS. Normally we just use the web site description such as Default Web Site or in my case or something similar.

But if you are interested in writing scripts you normally reference sites using the Web Site Instance ID.

In IIS 6 the IIS Manager shows you a column called Idenfitier and this is the actual ID that references the web site. This was not visible in Windows 2000 (IIS 5) or Windows XP (IIS 5.1) and we had to use different methods to see the identifier.

Using IIS 7 on Windows Vista you can see a column called ID which is the Web Site Instance ID

The Default Web Site always has an identifier of 1.

All other web sites on IIS 6 have web site idenfieir's that look like random numbers. The fact is that this is not the case and the identifier is generated based on the description of the web site. This is so that if you have a server farm as long as the descripiton is the same you will end up with the same web site identifier. See this article for more details on the way that these identifiers are generated.

 Another way to identify the web site instance id is to look at the Logging Properties of a particular web site.

As you can see above the highlighted area shows the web site instance id. This is still a valid method for people using IIS 5 and IIS 5.1.

IIS 7 on Windows Vista does not include a logging configuration option - did they just forget it?

How about if you want to use a script to identify a web site?

IIS comes with a script called findweb.vbs that you can use to find a particular web site. This script is stored in c:\inetpub\adminscripts by default.

To use it you need to open a CMD.EXE command prompt and then use the cscript.exe utility to run the script. You also need to specify parameters to get the script to do what you want.

In this case I was interested in finding a web site called

How about writing your own VB Script to list the site and the instance id?

Running the script above will display the web site Instance ID and the Description of the site.


What is Xnet VFX? or Voice over BroadBand?

I have started to look into the VOIP (Voice over IP) service, well not really VOIP, well it sort of is, but it is called VoBB

Voice over Broadband (VoBB) Xnet VFX (Virtual Fone Xchange) will revolutionise the way you use your phone by merging it with your Broadband connection and putting your phone line under your control for the first time.  Removing the need to have a standard telephone provider.

Using the My VFX account management portal, you now have the power to control features such as call forwarding, voice mail notification to your email at home or work, three way calling and much more....

Xnet VFX uses part of your Broadband connection as a telephone line.  When you pick up the phone, or someone calls you, the call is sent via WorldxChange to your router and directly to the phone you have plugged in.

A normal household or small business currently with Broadband would look something like this:

VoIP Diagram: Standard Non VoIP Setup

Whereas with Xnet VFX, it would look like this (instead of the telephone line - it is using my Internet Cable Connection)

VoIP Diagram: Xnet VFX VoIP Setup

I purchased a LinkSys SPA2102 device to use as my Phone Adapter and joined the Xnet VFX service at

Basically I pay $11.00 per month NZD and for that I get a local telephone number and free local calls. National calls and calls to Australia, UK and US are 5 cents per minute, other destinations are more epensive.

I have only done a few tests with it as I still have my normal telecom connection as well. The audio quality is probably acceptable, but I would have like to have the flexability to choose a better codec. The codec that is being used is 8Kb/s so it is very lean on actual bandwidth consumed. From a simple test a one hour telephone call would not consume much more than 1 MB of data. I would be happy to double this and have the quality much higher.

This is interesting technology and I would like to see it become more flexable in regards to codecs being used.



I took a look around the IIS MVP list today and noticed that there is 23 listed now.

We come from a lot of different backgrounds and countries as broken down below:

  • USA (6)
  • Australia(3)
  • China (2)
  • Poland (2)
  • France
  • Honduras
  • Korea
  • Malaysia
  • Netherlands
  • New Zealand
  • Sweden
  • Switzerland
  • Turkey
  • Unknown

What has happened to

I have noticed lately that I am unable to connect to any more.

It just times out when making a connection.

I noticed the site owner Jeffrey Tindillier posted this comment to his MVP profile.

I recently returned to the IIS PSS Team in Dallas but was given an opportunity to work with the SharePoint Dev Team.

I assume that means he looses his MVP status as I beleive you can not be a MVP and work for Microsoft.

I have not found any other comments about his IIS site, but maybe there is no place for independant IIS sites now that covers pretty much everything that is needed by the community?

We all know that is about as dead as it could be - Brett Hill also works for Microsoft now and has not updated it in years.

Free Windows PowerShell course book available for download

The book gives you a short introduction with many exercises about the interactive part of Windows PowerShell as well as some hints how to use other objects like WMI, .NET or COM objects like Excel or Internet Explorer.

The book is available for free and you can share it with all your colleagues or friends if you leave it as it is. The books can be used with or without the demo files available.