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)


September 2005 (37)

IIS Metabase References

The following Microsoft Sites contain details on the IIS Metabase properties

Metabase Property Reference (IIS 5.0)

Metabase Property Reference (IIS 6.0)

Microsoft Scripting Resources

I came across a number of cool scripting utilities today that may help others; these are:

  • Do-It-Yourself Script Center Kit
  • Scriptomatic 2.0
  • TechNet Script Center Sample Scripts
  • WMI Code Creator v1.0
  • HTA Helpomatic
  • TechNet Script Center Sample Scripts
  • Technet Script Center
  • ADSI Scriptomatic
  • Tweakomatic

Do-It-Yourself Script Center Kit

The Do-It-Yourself Script Center Kit includes all the materials you need to create your own version of the TechNet Script Center, either as stand-alone Web pages, stand-alone .vbs files, or as a .chm Help file. Included in the Kit are a database ( Microsoft Access ) of all the scripts found in the TechNet Script Center Script Repository as of January 2005, as well helper scripts for creating Web pages, .vbs files, and .chm files.

The Kit also includes instructions for using these helper scripts.

For more details see:

Scriptomatic 2.0

A completely new version of the famous Scriptomatic, the utility that writes WMI scripts for you. (And, in the process, teaches you the fundamental concepts behind writing WMI scripts for yourself.) U

nlike its predecessor, Scriptomatic 2.0 isn’t limited to writing just VBScript scripts; instead, Scriptomatic 2.0 can write scripts in Perl, Python, or JScript as well.

In addition, Scriptomatic 2.0 gives you a host of new output formats to use when running scripts, including saving data as plain-text, as a stand-alone Web page, or even as XML.

Scriptomatic 2.0 handles arrays, it converts dates to a more readable format, and it works with all the WMI classes on your computer; on top of all that, it also writes scripts that can be run against multiple machines.

For more details see:

Incase you want the old 2002 version :

TechNet Script Center Sample Scripts

Sample scripts found in the TechNet Script Center. The sample scripts are not supported under any Microsoft standard support program or service. You can, however, report issues and bugs by sending e-mail to

HTA Helpomatic

The HTA Helpomatic is a utility that helps script writers create HTML Applications (HTAs). HTAs enable you to provide a graphical user interface for your scripts, an interface that can include anything from list boxes to radio buttons to checkboxes. The HTA Helpomatic includes sample VBScript code and sample HTML code showing you how to do things like add a button to an HTA. Equally important, the Helpomatic also shows you how you can run a script any time that button is clicked. As an added bonus, the Helpomatic enables you to modify the scripts and HTML code and test those modifications in the utility itself.

For more details see:

WMI Code Creator v1.0
The WMI Code Creator tool generates code that uses WMI to obtain management information or perform management tasks. You can use the tool to learn how to manage computers using WMI scripting and WMI .NET. The tool generates code that runs on the local computer, a remote computer, or a group of remote computers based on your selection from the Target Computer menu on the tool. You can also execute the generated code directly from the tool.

The tool is meant to help IT Professionals quickly create management scripts and to help developers learn WMI scripting and WMI .NET. The tool helps take the complexity out of writing code that uses WMI and helps developers and IT Professionals understand how powerful and useful WMI can be for managing computers.

Using the tool, you can query for management information such as the name and version of an operating system, how much free disk space is on a hard drive, or the state of a service. You can also use the tool to execute a method from a WMI class to perform a management task. For example, you can create code that executes the Create method of the Win32_Process class to create a new process such as Notepad or another executable. The tool also allows you to generate code to receive event notifications using WMI. For example, you can select to receive an event every time a process is started or stopped, or when a computer shuts down.

The tool also allows you to browse through the available WMI namespaces and classes on the local computer to find their descriptions, properties, methods, and qualifiers.

The code that creates the tool is also included in the download. The tool was created using WMI .NET, and the code for the tool can help developers understand how WMI .NET is used to create applications and manage information. Be sure to read the end-user license agreement that is included in the download.
For more details see:
Technet Script Center
The TechNet script center is a repositaty specially tailed for scripting, there are columns and verything you need to learn how to write scripts for Windows is right there!
Find articles, documentation, webcasts, and even hands-on labs for all levels, right at your fingertips.
ADSI Scripomatic
The ADSI Scriptomatic is designed to help you write ADSI scripts; that is, scripts that can be used to manage Active Directory or IIS.
The ADSI Scriptomatic also teaches you an important point about ADSI scripting: like WMI, there are consistent patterns to ADSI scripts.
For example, the ADSI Scriptomatic will help you write a script to delete a user account. It will also help you write scripts for deleting groups and organizational units.
And if you take a close look at the scripts for deleting different objects, you’ll see something very interesting: theyre practical identical!

Tweakomatic is a nifty new utility that writes scripts that enable you to retrieve and/or configure Windows and Internet Explorer settings. So what, you might say. Well, think about it. Because these are Windows Management Instrumentation (WMI) scripts, they can be used to configure settings on remote computers. Need to change something on a remote computer? Then haul out Tweakomatic. And think about this: because Tweakomatic writes scripts, you could do something like run these scripts as logon or logoff scripts. In other words, you could quickly, easily, and automatically configure settings on any or all the computers in your organization. Tweakomatic is undoubtedly the single best thing Microsoft has released since Windows itself

For more details see:

Looking for online IIS 6 Documentation?

The Microsoft Technet site has a number of document categories related to IIS 6.

  • IIS 6.0 Documentation
  • IIS 6.0 Content Revision Summary
  • IIS 6.0 Typographical Conventions
  • IIS 6.0 Glossary
  • IIS 6.0 Deployment Guide
  • IIS 6.0 Operations Guide
  • IIS 6.0 Technical Reference

For more details see:

NeatUpload [Open Source] for ASP.NET - Allow your users to stream uploads directly to disk and view a progress bar and more
NeatUpload allows ASP.NET developers to stream uploaded files to disk and allows users to monitor upload progress. It is open source and works under Mono's XSP/mod_mono as well as Microsoft's ASP.NET implementation. It features 2 custom controls:  InputFile allows the user to select a file to upload, and ProgressBar displays the upload progress either inline or in a popup. ProgressBar even allows users without JavaScript to see upload progress.


  • Streams uploads directly to disk.  This conserves server memory, allows larger uploads, and helps prevent Denial of Service attacks.
  • Integrates easily with existing applications.  Replace <HtmlInputFile> with <NeatUpload:InputFile> and add a <NeatUpload:ProgressBar> to your ASP.NET pages.  Then use the TmpFile  and FileName members of InputFile to access the uploaded file and its original name.
  • Supports both inline and popup progress bars.
  • Falls back to using ASP.NET's HttpPostedFile if the NeatUpload HttpModule is not present.  This makes it easy to remove the HttpModule if for some reason it causes problems.
  • Supports customization through styles and custom progress display pages.
  • Does not require JavaScript.
  • Works under Mono's XSP/mod_mono and Microsoft's ASP.NET.
  • Removes uploaded files when an error occurs.  This helps prevent disk space leakage.
  • Licensed under the Lesser General Public License (LGPL), a business-friendly open source license. 

For a live demo see:

For more details see :

Windows Deployment and Resource Kits Online

Below are a list of the Microsoft Resource Kits that are available online.

Internet Information Services (IIS) 6.0 Resource Guide
This searchable technical reference provides information about running IIS as a Web application platform, ensuring that IIS stays secure, monitoring and tuning IIS, administering the server programmatically, and capitalizing on built-in IIS scalability features to manage large-scale deployments.

Internet Information Services (IIS) 6.0 Resource Kit Tools
The IIS 6.0 Resource Kit Tools can help you administer, secure, and manage IIS. Use them to query log files, deploy SSL certificates, employ custom site authentication, verify permissions, troubleshoot problems, migrate your server, run stress tests, and more.

Internet Information Services (IIS) 6.0 Deployment Guide
Get a prescriptive, task- and scenario-based guidance to help you design and deploy an IIS 6.0 solution–be it a new installation, upgrade, or migration–within your organization. Deploying Internet Information Services (IIS) 6.0 is available as part of the Microsoft Windows Server 2003 Deployment Kit.

Microsoft Windows Server 2003 Resource Kit: Special Promotional Edition
Get the definitive resource for Windows Server 2003, filled with practical guidance on managing and tuning system performance to help optimize speed, reliability, and efficiency.

Windows Server 2003 Technical Reference
Looking for The Microsoft Windows Server 2003 Resource Kit? See the Windows Server 2003 Technical Reference documentation, which provides comprehensive information about the technologies included in the Microsoft Windows Server 2003 operating system. This set of Technical Reference documentation is designed to assist IT planners and administrators by providing the foundational information about the technology components of the operating system.

Windows Server 2003 Deployment Kit
The Microsoft Windows Server 2003 Deployment Kit provides guidelines and recommended processes for designing and deploying Windows Server 2003 technologies to meet your business needs and IT goals.

Migrating from Microsoft Windows NT Server 4.0 to Windows Server 2003
The Migrating from Microsoft Windows NT Server 4.0 to Microsoft Windows Server 2003 guide is designed for IT administrators in small- and medium-sized organizations. It provides guidelines for the migration of domain controller, DHCP/WINS server, file/print server, remote access server, and Web server roles from Windows NT 4.0 to Windows Server 2003.

Windows Server 2003 Resource Kit Tools
The Resource Kit Tools are a set of software tools for network administrators, developers, and power users to manage TCP/IP, networks, the registry, security, remote administration, configuration, batch files, and many other areas of the Windows Server 2003 operating system. To install the tools, download and run Rktools.exe.

Windows XP Professional Resource Kit Documentation
Windows XP Professional Resource Kit Documentation helps IT professionals deploy, manage, and support the Windows XP operating system. In addition to this free online version of the printed book, Windows XP Professional Resource Kit Documentation is available in print from Microsoft Press.

Windows 2000 Resource Kits
From the Windows 2000 Resource Kits home page, you can view Windows 2000 Resource Kit books and references online, review extensive information about deploying Windows 2000, download free tools, and buy the Windows 2000 Resource Kits.

Windows 2000 Resource Kit Tools
These tools help you streamline administrative tasks such as managing Active Directory, administering security features, working with Group Policy and Terminal Services, automating application deployment, and other important jobs. This page contains updated versions of the most popular and useful Resource Kit tools.

Web Resources Page
These resources are referenced in the Windows Resource Kits and lead to information that is useful to Windows users.

Other Microsoft Resource Kits
Get easy access to product Resource Kits here.

Do you want to stay up on the security vulnerabilities in a number of different products - More than 5500 products!

Secunia monitors vulnerabilities in more than 5500 products

The following are the IIS 6 vulnerabilities since 2003 as of September 22, 2005

Below is the list of vulnerabilities for Apache 2 since 2003 as of September 22, 2005 (just a bit more than IIS 6)

For more details see :

Google Blog Search [Beta]

Looking for results from just Blogs - seem I do these days - better than most web site content!

To go to the default blog search page to find blogs on your favourite topics see

Google also has an Advanced Blog Search at:

For blog entries refering to “Chris Crowe“ see:

Sharepoint - What is scheduled for the next release of Sharepoint - V3


  • Built-in breadcrumb trails, Quicklaunch on every page, Tree-view navigation of sites built-in
  • Pages will derive from “master pages“, meaning that you could re-skin an entire SharePoint site by modifying just one template file
  • More professional out of the box themes
  • FrontPage can directly edit each site's CSS file(s)
  • Workflow built-in all over SharePoint, with tight integration with Outlook 12 tasks, FrontPage-based workflow creation, some browser-based workflow creation
  • Individual documents can have document-specific workflows
  • Item-level security on lists and libraries
  • FrontPage has evolved further into a SharePoint designer tool (I read that as: the only SharePoint designer tool), and apparently, ghosted/unghosted pages won't be a problem any longer
  • Recycle bin with user and administrator restore features for document libraries and list items
  • InfoPath forms can be filled out with only a browser when published as (to?) a SharePoint site (even with FireFox)
  • Customizable and extensible search (and search API), including “did you mean“-type search term corrections (Update: It appears this is an SPS vNext feature)
  • Lists can be viewed on mobile devices
  • The UI is “security sensitive“, meaning that you won't see the button to add an item unless you have the rights to add an item
  • Lists support multi-value lookups
  • Gantt charts for “Project Tasks“ list type
  • Alerts are considerably more powerful, support more filters/RSS integration
  • AJAX (Atlas) used generously throughout UI for a better cross-browser experience
  • “Welcome menu“ for users (login/logout/change user/edit profile/etc links in one place)
  • Apparently, unghosted pages will be cached better, and will remain attached to their “Master Page“, negating much of the performance/caching problem there is today (that didn't seem all that earth shattering, actually)
  • Document policies (retention period, archiving rules, audit logs)
  • Folders supported in any list (not sure why that was even on their radar)
  • Version history can be configured to keep last n records
  • Sites' UI can be localized without deploying a new site (multilingual UI)


  • All lists and libraries have RSS feeds, and each list's feed can be customized to include whatever fields you'd like
  • Event list RSS feeds include iCal files as enclosures
  • Each site has a master “aggregating“ RSS feed
  • Outlook 12 can perform 2-way online/offline syncronization of the following list types:
    • Contacts
    • Events
    • Tasks
    • Discussion Lists
    • Document Libraries (!)
  • Discussion lists can create their own e-mail alias in Active Directory, allowing you to e-mail that alias to automatically archive that e-mail (and its attachments) to a SharePoint discussion list
  • ALL lists and libraries have version history capability, and only “diffs“ are stored (differences from one change to the next)
  • Access treats SharePoint sites as honest-to-goodness data sources

Developer and Administrator-oriented news

  • Existing web parts will “just work“ in the new SharePoint web part page framework
  • Site definitions/templates will ship in the box for blogs and wikis (blogs can be built directly on your “My Site“!)
  • All lists and libraries will have synchronous event handlers (not sure how these work with other interfaces to SharePoint data, like OM, WEBDAV, SOAP, etc., if the event handler has to raise an exception)
  • List/library version history is exposed programmatically by way of the OM
  • Multiple “content types” (sets of metadata, or “metadata templates“, if you will) for document libraries and lists, that include view information, workflows, bound events.
  • FrontPage can edit workflows
  • Business Data Catalog (datasource catalog on steroids, apparently) -- What's new is that you can use members of this catalog as fields in lists; in other words, a list can have a lookup that's bound to a SQL Server table, a web service, or any other source that exists in the Business Data Catalog 
  • XML Schema Documents (XSDs) will be made available for many of the CAML-based ghosted template/config files
  • The “STSFLTR“ ISAPI filter is gone, SharePoint sites are “native“ ASP.NET 2.0 sites.
  • You'll still need to use the SmartPart (or something of its ilk) to use ASP.NET 2.0 web parts on your SharePoint sites
  • Form templates are better defined in XML (they're there now, just without any real easy way to modify them)
  • Less XML-based configuration, more UI-based “features“ that can be turned on/off or modified to webs, sites, IIS virtual servers or entire server farms with one click
  • SPTimer is given a boost, allowing you to write your own plugins that get executed at their own defined schedules/criteria/etc
  • UI toolbars/menus/etc can easily be modified, with those modifications also “security sensitive“
  • SPDataSource class, SharePoint sites exposed using IDataSource (sweet)
  • SPGridView, a SharePoint-look-alike DataGrid (with sort/filter/group/etc baked right in)
  • SPDataQuery class, which uses CAML (set as a property, why not a param to a method?) does cross-site searches, easily binds to SPGridViews or other ASP.NET databound controls
  • SharePoint Web Parts' base class is a Web Control (still no designer, though; you'll need to use SmartPart for that)
  • v2.0 -> v3.0 is considered an “upgrade“, not a “migration“
  • Security providers supported, no more AD authentication requirements (forms-based security, anyone?)
  • “Feature Definitions“ (which sounds an awful lot like existing definition configuration types, but expanded a bit) allow you to enable/disable kits of functionality, i.e. a “Feature Definition“ that contains lists, web parts, event handlers, content types (those metadata “templates“ mentioned in another part of this post)
  • Custom column indexes in lists
  • Trusted event handlers can easily impersonate identities
  • Policies can be set for content expiration based on values/metadata/workflow status for documents, and content can be moved to recycle bin (or, one would assume, deleted or archived) based on the selected metric


Get ideas of keywords for your web sites

Get ideas for new keywords that can help you improve your relevance to queries that user submit to search engines


Example from Google

I used the following keywords: 

  • Metabase, ADSI, Blog, iis, sharepoint, internet,information,services,ii5,iis6,Windows,Sharepoint

and got the following results ( Note: more results where returned that displayed below )

  • internet providers
  • internet service providers
  • internet access
  • windows
  • cable internet
  • information
  • internet
  • services
  • dial up internet
  • internet banking
  • internet roaming
  • blog
  • escort services
  • windows media player
  • windows xp upgrade
  • cable internet service
  • sash windows
  • internet services
  • dating services
  • dial up internet access
  • phone services
  • cleaning services
  • cheap internet service
  • international internet
  • nanny services
  • hosting services
  • internet radio
  • information security
  • windows server
  • windows 98 upgrade
  • windows 2000
  • mailing services
  • moving services
  • management information system
  • iis


Example from Overture

I used the following key word: 

  • IIS

and got the following results ( Note: more results where returned that displayed below )

Searches done in August 2005
Count Search Term
 6481  iis
 1076  download iis
 593  o2 xda iis
 572  xda iis
 553  read iis server log
 460  microsoft iis
 403  iis intranet
 371  iis server
 369  ti 30x iis
 344  php iis
 336  iis window xp
 333 iis
 331  iis web server

IIS - Where to get the Media to Install Internet Information Services

Different versions of IIS are available although IIS 5, IIS 5.1 and IIS 6 are now the only real versions that you may want to install.

The table below describes where you can install IIS from - although you use to be able to download IIS you no longer can do that as it is a part of the Operating System.

Version Obtained from Operating System
1.0 Included with Windows NT 3.51 SP 3 (or as a self-contained download). Windows NT Server 3.51
2.0 Included with Windows NT Server 4.0 Windows NT Server 4.0
3.0 Included with Windows NT Server 4.0 Service Pack 3 (Internet Information Server 2.0 is automatically upgraded to Internet Information Server 3.0 during the install of SP3.) Windows NT Server 4.0
4.0 Self-contained download from or the Windows NT Option Pack compact disc Windows NT Server 4.0 SP3 and Microsoft Internet Explorer 4.01
5.0 Built-in component of Windows 2000. Windows 2000
5.1 Built-in component of Windows XP Professional (not included with Windows XP Home) Windows XP Professional
6.0 Built-in component of Windows 2003 Server Windows 2003 Server

ISAPI Filter - [Freeware] IIS password

IIS password protection of files and folders has always been difficult. IISPassword brings the ease and power of Apache’s htaccess to Microsoft IIS. No longer is there a need for system user accounts and complex access permissions for maintaining a secure, password protected web site.

IISPassword uses Basic HTTP Authentication for password protecting web sites on IIS, just like htaccess works on Apache. That makes your password protected Apache web site compatible with IIS, and vice versa.

A powerful and intuitive interface makes it possible to password protect a web site in just moments. More advanced settings provide options such as user group management and protection of certain file types.

Main Features

  • Easy installation - IISPassword is installed with an easy setup program.
  • Easy administration - IISPassword integrates with IIS, creating a new tab in the management console. Protecting a web site is very easy. Select the site or folder to protect, then a username and a password. That’s all there is to it. The advanced mode enables user groups and protection of certain file types.
  • High performance - IISPassword has been tested in a live environment with heavy traffic, generating practically no extra CPU load on the web servers.
  • Compatibility with htaccess - IISPassword makes password protected Apache web sites compatible with IIS, and vice versa.
  • Command line administration - IISPassword can be administrated through a command line interface, allowing automatic administration based on scripts or applications.


  • ISAPI filter - IISPassword is an ISAPI filter. This makes IISPassword a secure application with low performance costs.
  • IIS Snap-In - IISPassword is seamlessly integrated into the IIS management console, making password protection an easy task.
  • Command line tool - IISPassword also provides a command line interface for scripts or applications. This makes it possible to migrate IISPassword into existing control panel systems.

IISPassword is free for private, educational and commercial use.

For more details see:

IIS Guard - [Beta] Easily see all requests that are made to your IIS web server and find the sites and scripts that are causing problems

The IIS web server can easily stop working due to corrupted or poorly written web scripts. There’s no monitoring tool included in the IIS web server itself, which makes it hard, if not impossible, to find and solve problematic sites or scripts.

With IISGuard, this is a problem of the past. Now you can easily see all requests that are made to your IIS web server and find the sites and scripts that are causing problems.

These are some of the problems that IISGuard can help you find in the IIS:

  • High CPU load or memory consumption.
  • Denial of Service attacks.
  • Attacks by worms and viruses.

There’s no need to fumble in the dark any more, IISGuard lets you find what you’re looking for in no time.


  • Live Monitor. Watch requests to your IIS web server in real-time. It’s possible to both view currently active request and finished request. Requests that last a long time are marked.
  • Logging. IISGuard logs all requests and features an extensive built-in search function.
  • Configurability. IISGuard can be configured with various options. You can choose to monitor all file types or set up a filter that monitors only certain file types (e.g. asp, php, exe, dll).
  • Web interface. All features of IISGuard are accessible through a web interface.
  • Own web server. IISGuard contains a web server of its own, which makes it work independently of the IIS server. This means that when you need IISGuard the most, when the IIS server is experiencing problems, you’ll still be able to access it.
  • Performance. IISGuard has proven to perform extremely well in a real server hosting environment, with thousands of heavily loaded sites.
  • Ease of use. IISGuard is set-up within minutes. The web interface is both simple and intuitive.

Note: This product is currently in Beta

For more details see -

Windows/Exchange - Email Forwarding System

EFS is "mail relay" software. It was specifically designed to give people with "part time" (dialup) connections to the Internet (or those with fulltime connections but their Internet Service Provider (ISP) does not support ETRN - which is not a protocol I recommend anyway) a way of retrieving mail from their ISP and delivering messages to an internal mail server, such as Microsoft Exchange Server, Lotus Notes 4 or 5, the freeware EMWAC IMS or in fact any RFC compliant SMTP server. You do not need a fulltime connection to the Internet to run EFS - it works with both static (full time) and dynamic (part time) IP addresses.

The best part about EFS is that once it's setup, it is basically maintenance free. Similar mail retrieval programs usually require you to add a separate mailbox for every user that mail will be distributed for - the simple downside of this, continuous maintainance and double data-entry. EFS does away with this by allowing you to specify the domain that you will be accepting mail for (just as you are required to do for your mail server). It is this "Internal routing" feature that makes EFS unique amongst most other POP3 retrievers, the ability to accept and deliver mail for your domain.

For more details see

My New Blog Site -

I have just started a new blog about me setting up and maintaining a new Tropical Fish Tank. I have not had one for about 10 years and I am getting quite excited about getting it.

For details see

Windows - Shared Computer Toolkit for Windows XP

Today Microsoft released version 1.0 of the Shared Computer Toolkit for Windows XP, a new set of security and management tools for people who manage shared computers in school computer labs, libraries, Internet cafes, or community technology centers.

Windows XP customers can now download v1.0 for free at

The Shared Computer Toolkit was designed to help:

  • Make it easier for administrators to control the desktop experience and Restrict users from changing system settings, accessing system data, or running unauthorized software.
  • Defend shared computers from viruses, spyware and other unauthorized changes by clearing changes to the hard disk, or effectively resetting the disk, every time the computer restarts.
  • Enhance the user experience with a simplified desktop and a new privacy feature that clears personal information including passwords, Internet history and recently used documents each time a new user logs on to a shared computer.

Looking for details on IIS 7 - Well check out these Videos

To keep up to date checkout this page often:

IIS Security Planning Tool

The IIS Security Planning Tool helps administrators deploy IIS with security that's appropriate for the server's role. It uses a simple HTML interface to determine what services the server will provide, and recommends the deployment and installation options that will allow it to provide them securely.

For more details see:

IIS - Internet Information Services (IIS) 6.0 Manager for Windows XP
With IIS 6.0 Manager for Windows XP, administrators can remotely manage an IIS 6.0 server from a Windows XP Professional workstation. This tool only installs a snap-in for Microsoft Management Console and its associated DLLs and documentation; it does not install the complete IIS 6.0 server on your local computer.
  • This tool is available only in English. When installed on non-English editions of Windows XP, IIS 6.0 Manager, documentation, folders, and shortcuts appear as English-only.
  • After installation, IIS 6.0 Manager and IIS 5.1 Manager coexist in separate directories on the same computer.

  • Start the IIS 6.0 Manager after installation from the administrative tools folder in the Control Panel, not from the Computer Management console. If the IIS 5.1 Manager is also installed, it will appear in the Computer Management console, not the IIS 6.0 Manager.

For more details see:

IIS : Internet Information Services 6.0 Migration Tool
The Internet Information Services 6.0 Migration Tool is a command line tool that automates several of the steps needed to move a Web application from IIS 4.0, IIS 5.0 or IIS 6.0 to a clean installation of Internet Information Services (IIS) 6.0. The tool transfers configuration data, Web site content, and application settings to a new IIS 6.0 server. Migrating applications to IIS 6.0 enables organizations to take advantage of the new fault-tolerant architecture available in IIS 6.0 and other features that increase Web server reliability, performance, and security.

Update: A new version of the IIS 6.0 Migration Tool (iismt.exe) has been released to correct problems in version 1.0 of the tool. The follow problems with IISMT.exe have been addressed in this new version:

IIS cannot spawn new worker processes during a migration.
Cause: If the Migration is performed to a live production IIS6 server, existing sites may not serve properly until the migration completes. This behavior was because the migration tool locks the metabase during the migration. In the new version the the migration tool does not lock the metabase and hence existing sites on the destination server will continue to serve during the migration.

Permissions of the AdminACL for the W3SVC/<siteID> in the IIS 6.0 metabase are incorrect after migration.
Cause: The migration tool did not migrate the AdminACL correctly for the W3SVC/<siteID>. This resulted to web applications not functioning on the target IIS 6 server. Users may get "500 Internal Server Error" when browsing the migrated ASP web application or "Server Application is Unavailable" when browsing the migrated ASP.NET application.

Migration Tool does not migrate nested applications correctly.
Cause: The migration tool did not migrate nested application properly. The AppRoot metabase key is migrated as (/LM/W3SVC/<ID of site on source>/Root/....) instead of (/LM/W3SVC/<ID of site on Target>/Root/....) which resulted to web application not bering served. Users may get "500 Internal Server Error" when browsing the migrated ASP web application or "Server Application is Unavailable" when browsing the migrated ASP.NET application.
A new version of the IIS6 Migration Tool (version 1.1) has been released to address the above issues.

Note: All versions of the IIS Migration Tool have the following known limitations:
• If you are migrating from NT4 with FPSE 98, and you choose to migrate with /fpse switch, it is possible that the Server Extensions will not function properly on IIS6 as they were on IIS4. The only recommended workaround is to upgrade to FPSE 2000 or FPSE 2002 on the source server (NT4) before beginning the migration.
• The migration can be performed for only one individual site at a time, if you want to migrate the entire IIS server. You may want to put all the migration commands in a batch or script file.
• Files that are located in a directory structure that exceeds MAX_PATH are not migrated. The migration tool will error out with "Access Denied" and stops the migration.
• If you migrate the same site twice and the administrators group does not have full control permission on the source content, the migration tool will error out the second time with an "Access Denied" error. To workaround this, you can either give the administratorsgroup full control on the source content or delete the content on the destination server before you run the migration the second time.

For more details see:

IIS Diagnostics Kits

The IIS Diagnostics Toolkit is a combined release of popular tools used by today's IIS users. These tools include tools aimed at resolving problems related to Secure Socket Layer (SSL) issues, permission or security problems, gathering data for your SMTP server included with IIS, as well as the famous Log Parser utility used to sift through hundreds or thousands of log files very quickly.

The toolkit consolidates all the tools into a convienant download and is supplemented by updates every 90-days to ensure that users have the most current diagnostics tools at their fingertips.

For more details see:

Authentication and Access Control Diagnostics 1.0 (more commonly known as AuthDiag) is a tool released by Microsoft aimed at aiding IT professionals and developers at more effectively finding the source of authentication and authorization failures.

These users have often seen behavior from Internet Information Services (IIS) that doesn't seem appropriate or random when users authenticate to the IIS server. The complex world of authentication types and the various levels of security permissions necessary to allow a user to access the server causes many hours of labor for those tasked with troubleshooting these problems.

AuthDiag 1.0 offers a robust tool that offers a efficient method for troubleshooting authentication on IIS 5.x and 6.0. It will analyze metabase configuration and system-wide policies and warn users of possible points of failure and guide them to resolving the problem. AuthDiag 1.0 also includes a robust monitoring tool called AuthMon designed at capturing a snapshot of the problem while it occurs in real-time. AuthMon is robust and specially designed for IIS servers removing any information not pertinent to the authentication or authorization process.

For more details see:

A common problem for administrators of IIS servers is configuring and troubleshooting SSL enabled websites. To assist in administrators efforts, Microsoft has designed a tool - SSL Diagnostics - to aid in quickly identifying configuration problems in the IIS metabase, certificates, or certificate stores.

This tool allows users to review configuration information in a easy to read view mode or to run the tool silently with only the creation of a log file. During use, administrators can simulate the SSL handshake to find errors. They can also quickly "hot swap" certificates for testing purposes.

These packages come in two forms: Express and Full. The express will only give the pertinent tools for administrators to use SSL Diagnostics while full install installs the same files with the appropriate documentation. Included in the full install is a SSL Frequently Asked Questions that can assist in the learning of SSL for administrators

For more details see:

The IIS 6.0 Resource Kit Tools can help you administer, secure, and manage IIS. Use them to query log files, deploy SSL certificates, employ custom site authentication, verify permissions, troubleshoot problems, migrate your server, run stress tests, and more.

The following tools are available in this package:

  • IIS 6.0 Migration Tool Version 1.0 Version 1.1 Now Available!
  • Apache to IIS 6.0 Migration Tool Version 1.0
  • CustomAuth Version 1.0
  • IISCertDeploy.vbs Version 1.0
  • IIS Host Helper Service Version 1.0
  • IISState Version 3.0
  • Log Parser Version 2.1 Version 2.2 Now Available!
  • Metabase Explorer Version 1.6
  • Permissions Verifier Version 1.0
  • RemapUrl Version 1.0
  • SelfSSL Version 1.0
  • TinyGet Version 5.2
  • Web Capacity Analysis Tool Version 5.2
  • WFetch Version 1.3

For more details see:

IIS - Internet Information Server Management Pack for MOM 2005

The Microsoft Internet Information Services (IIS) Management Pack provides availability, health, and configuration monitoring of IIS and its related services.

By monitoring the applications and Web sites running on IIS, this Management Pack highlights issues that cause downtime or poor performance, such as broken links, unavailable sites, and security breaches.

The IIS Management Pack also collects performance analysis and capacity planning data by tracking application performance and user load.

The Microsoft Windows Internet Information Services Management Pack Guide describes the content of the management pack, and describes how to deploy it.

You can download the management pack guide from the Microsoft Web site:\

For more details see:

SQL Server 2005 Mobile Edition Server Tools Beta 1 for use with IIS and SQL Server 2005 Beta 2 (USA)

This release of SQL Mobile Server Tools installs the necessary components on servers running IIS to support connectivity solutions to SQL Server 2000 and SQL Server 2005 Beta 2 databases.

SQL Server 2005 Mobile Edition (SQL Mobile) is the compact database for rapidly developing applications in both native mode and the .NET Compact Framework that extend enterprise data management capabilities to devices.

Companies and users of SQL Mobile that plan to synchronize to SQL Server 2000 or SQL Server 2005 Beta 2 databases will need to install this Server Tools release on their servers running Internet Information Services (IIS).

For more details see:

Sharepoint - What is 80-20 Compliance Server for Microsoft SharePoint?

For organizations using Microsoft SharePoint that need to manage the retention lifecycle of electronic documents and email, 80-20 Compliance Server is a free enterprise software solution that automates the retention process by applying information retention policies as part of everyday business processes.

80-20 Compliance Server enables organizations to index, link, store, search, access and ultimately disposes of records stored in SharePoint over their complete lifecycle.

Yes, not only is this Beta download free (of course), the final released product will also be free.

Many companies think you should pay substantial license fees for a comparable records management capability in SharePoint, so why is 80-20 offering it for free?

80-20 is a provider of enterprise Governance, Risk Management and Compliance (GRC) solutions. We believe that in providing the Compliance Server software solution free of charge to the SharePoint community, it will promote interest in 80-20’s wider enterprise GRC solutions amongst large scale enterprise users.

For more details see:

C# - An extremely good resource for code generators for c# and other languages

Windows - How to determine which process has a file locked!

Ever had such an annoying message given by Windows?

It has many other flavors:

  • Cannot delete file: Access is denied
  • There has been a sharing violation.
  • The source or destination file may be in use.
  • The file is in use by another program or user.
  • Make sure the disk is not full or write-protected and that the file is not currently in use.

Try this freeware application to show you what process has the file open:

Exchange - Using WMI to list all mailboxes and their sizes from c#

First off this is my 100th post to my blog!

This is a sample of how to talk to MS Exchange to enumerate all of the mailboxes and display them with the total message count and total message size.

It also shows examples of:

  • Creating your own table
  • Using a DataView to sort the table
  • Writing to XML from a dataset
  • Padding Strings
  • Using the System.Management namespace
using System;

namespace Sample1
    /// Summary description for Class1.

    class Class1
        /// The main entry point for the application.

        static void Main(string[] args)

                System.Console.WriteLine("Enumerate mailbox sizes in MS Exchange Server - Chris Crowe");

                // Create a DataSet (only needed if you want to save to XML )
                System.Data.DataSet ds = new System.Data.DataSet();
                // Create a DataTable to hold our results
                System.Data.DataTable dt = new System.Data.DataTable("Mailboxes");            
                // Add the table to the dataset

                // Create columns for our data
                dt.Columns.Add(new System.Data.DataColumn("Mailbox"typeof(String)));
                dt.Columns.Add(new System.Data.DataColumn("Messages"typeof(Int32)));            
                dt.Columns.Add(new System.Data.DataColumn("Size"typeof(Int32)));            

                System.Management.ConnectionOptions objconn = new System.Management.ConnectionOptions();
                objconn.Impersonation = System.Management.ImpersonationLevel.Impersonate;
                // Gets or sets a value indicating whether user privileges need to be enabled for the 
                // connection operation. This property should only be used when the operation performed 
                // requires a certain user privilege to be enabled (for example, a machine reboot).
                objconn.EnablePrivileges = true;

                // Exchange Server Name
                string cServername = "*"// YOUR EXCHANGE SERVER NAME

                // Create a management scrope into the Exchange WMI namespace
                System.Management.ManagementScope exmangescope = 
                    new System.Management.ManagementScope(@"\\" + cServername + @"\root\MicrosoftExchangeV2",objconn);
                // Create a query to get the data from the Exchange WMI
                System.Management.ObjectQuery objquery = 
                    new System.Management.ObjectQuery("SELECT * FROM Exchange_Mailbox");

                // Retrieves a collection of management objects based on the query.
                System.Management.ManagementObjectSearcher objsearch = 
                    new System.Management.ManagementObjectSearcher(exmangescope,objquery);

                // Invokes the WMI query and returns the resulting collection.
                System.Management.ManagementObjectCollection queryCollection1 = objsearch.Get(); 

                // Loop through each item in the collection
                foreach( System.Management.ManagementObject instmailbox in queryCollection1 ) 
                    // Add a row of data to our table
                    dt.Rows.Add(new object[] { 
                                                 instmailbox["size"] } );

                // Used to calculate the size of all of the mailboxes and the message count
                int TotalMessages=0;
                Int64 TotalSize=0;

                // Create a DataView to sort the data by Mailbox Size
                System.Data.DataView dv = new System.Data.DataView(dt);
                dv.Sort = "Size desc, Mailbox";

                // Write a heading
                System.Console.WriteLine(string.Format("{0} {1} {2} "
                // Write a line of dashes

                // Get an enumerator to enumate the DataView to get the rows from the table (sorted)
                System.Collections.IEnumerator enumerator = dv.GetEnumerator();            
                // Loop through each item in the table
                    // Get a row 
                    System.Data.DataRowView row = enumerator.Current as System.Data.DataRowView;

                    // Display the row
                    System.Console.WriteLine(string.Format("{0} {1} {2} Kb"

                    // Add the size and message count to our totals
                    TotalMessages += Convert.ToInt32(row["Messages"]);
                    TotalSize += Convert.ToInt64(row["Size"]);

                // Write a row of dashes

                // Write the totals
                System.Console.WriteLine(string.Format("{0} {1} {2} Kb"

                // Write the XML to a file if we want to

            // Catch any problems and show a message!
            catch(Exception e)
                System.Console.WriteLine("Error : " + e.Message.ToString());

This is how it displays its output to the console.

If you write the data to a XML file as the above example does this is how it may appear.

xml version="1.0" standalone="yes"?>
    <Mailbox>SMTP (SBS2003-{7390D6EA-A466-417D-A461-ADEA24553CB8})</Mailbox>
    <Mailbox>Chris Crowe [MVP]</Mailbox>
    <Mailbox>Pam Elston</Mailbox>
    <Mailbox>chris crowe</Mailbox>
    <Mailbox>Chris Crowe</Mailbox>
    <Mailbox>System Attendant</Mailbox>

WSS - Administrator Documentation and Resources

You can find the Administrator Documentation and Resources for Windows Sharepoint Services at the following URL

WSS - Command Line Parameters for STSADM.EXE

If you are looking for the command line parameter reference for STSADM.EXE this resource may be very useful to you.

It took me quite a while to find it.

Front Page - Creating an RSS Feed for Your FrontPage Web Site

Microsoft has released a white paper on RSS and how to programmatically create an RSS file for your FrontPage 2003 Web site. The download that accompanies this article contains a VBA project and an XSLT file that you can use to generate and display RSS feeds

Many resources available on the Internet explain RSS and the various RSS schemas. Here are a few resources that you might find useful:

For more details see

Comparison of features that are included in Windows SharePoint Services and in SharePoint Portal Server 2003
Windows SharePoint Services is a collection of services for Microsoft Windows Server 2003 that you can use to share information, collaborate with other users on documents, and create lists and Web Part pages. You can also use Windows SharePoint Services as a development platform to create collaboration applications and information-sharing applications.

SharePoint Portal Server 2003 is a scalable, enterprise portal server that is built on Windows SharePoint Services. You can use SharePoint Portal Server 2003 to aggregate Windows SharePoint Services sites, information, and applications in your organization to a single portal. Because SharePoint Portal Server 2003 requires Windows SharePoint Services, all features of Windows SharePoint Services are available in SharePoint Portal Server 2003. In addition to the features of Windows SharePoint Services, SharePoint Portal Server 2003 includes the following features:
  • News and topics
  • My Site, with personal views and with public views
  • Information that can be targeted to specific audiences
  • Index functionality and search functionality across file shares, across Web servers, across Microsoft Exchange Public Folders, across Lotus Notes, and across Windows SharePoint Services sites
  • Alerts that notify you when changes are made to relevant information, documents, or programs
  • Single sign-on functionality for enterprise application integration
  • Integration with Microsoft BizTalk Server

Comparison of features that are included in Windows SharePoint Services and in SharePoint Portal Server 2003

The following table compares the features of Windows SharePoint Services and of SharePoint Portal Server 2003:
Feature Windows SharePoint Services SharePoint Portal Server 2003
Alerts Yes Yes
Browser-based customization Yes Yes
Discussion boards Yes Yes
Document libraries Yes Yes
Document Workspace Yes Yes
Meeting Workspace Yes Yes
Lists Yes Yes
BizTalk integration No Yes
Microsoft FrontPage 2003 integration Yes Yes
Microsoft InfoPath 2003 integration Yes Yes
Surveys Yes Yes
Templates Yes Yes
Web Part pages Yes Yes
Automatic categorization No Yes
Audiences No Yes
Topic areas No Yes
News No Yes
Personal sites No Yes
Shared services No Yes
Single sign-on No Yes
Site directory No Yes
User profiles No Yes

Sharepoint - SmartPart v1.1 Released
A SharePoint Webpart that can host any ASP.NET user control. Create your webparts by using the VS.NET designer instead of coding everything by hand!
  • support for custom ToolParts
  • easy access to the underlying web part
  • support for custom properties without exposing them in the property toolpart
  • various minor improvements

Support for Custom ToolParts

If you develop web parts the hard traditional way, you probably know that you can create custom tool parts for your web parts. These tool parts will show up on the right hand side when you click “Modify Shared Web Part” in the same area where you can modify default web part properties like Title, Width, etc. Now you can create User Controls which can provide Custom Toolparts, just like the “real” web parts. If you download the latest release from the GotDotNet site, you will find an example of this technique. It comes down to this: if you implement the SmartPart.IAdvancedUserControl interface, you will have a function that can return an array of toolparts which will be shown by SharePoint.

Access to the underlying web part instance

Now it’s possible to access the web part that hosts your user control. So it will be possible to get or set properties of that web part from your user control. In the latest release you will find an example that can change the web part title from code.

In the previous version of the SmartPart, the only way to persist a value was to implement a public property and decorate it with the Browsable attribute. The side effect was that this property would show up in the web part’s tool part so user could access it. In many cases this is the desired behavior, and this is also applicable to the new version of the SmartPart. But suppose that you’d like to persist a value that shouldn’t be available for the user. Now you can easily get or set values for a property that will not be exposed to the user by using the GetCustomProperty and SetCustomProperty functions of the smart part web part instance.

Various minor improvements

Some minor changes are made to the code to improve performance and behavior of the SmartPart.

Backward compatibility

All the interfaces used in the previous version of the SmartPart are left untouched, so theoretically you should be able to upgrade your user controls without having to change anything to your code. If you want to make use of the new version, you have to use the new SmartPart.IAdvancedWebPart interface.

For more details and to download the Sharepoint Smart Part

Authors Blog - Jan Tielens

SQL - Creating Dynamic Cross-Tabs/Pivot Tables

One of the features of MS Access is the TRANSFORM statement, used to create cross-tabs/pivot tables. It does all of the work of dynamically generating the cross-tabulation and the summary calculations.

T-SQL unfortunately doesn't have this statement, so you're stuck using complicated SQL commands, expensive 3rd party products, or exotic OLAP to make pivot tables...or you can use the following procedure to dynamically create them!

This example would be executed on the Northwind sample database.

SQL Code

EXECUTE crosstab 'SELECT LastName FROM Employees INNER JOIN Orders ON (Employees.EmployeeID=Orders.EmployeeID) GROUP BY LastName', 'count(lastname)', 'Year(OrderDate)', 'Orders'


LastName 1996 1997 1998
Buchanan 11 18 13
Leverling 18 71 38
Fuller 16 41 39
Peacock 31 81 44
Callahan 19 54 31
Suyama 15 33 19
King 11 36 25
Dodsworth 5 19 19
Davolio 26 55 42

For more details see the following article:

I adjusted the Stored Procedure so that it could handle data with single quotes for field names.

@select varchar(8000),
@sumfunc varchar(100),
@pivot varchar(100),
@table varchar(100)

DECLARE @sql varchar(8000), @delimStart varchar(1), @delimEnd varchar(1), @delim varchar(1)

select @delimStart = '['
select @delimEnd = ']'

EXEC ('SELECT ' + @pivot + ' AS pivot INTO ##pivot FROM ' + @table + ' WHERE 1=2')
EXEC ('INSERT INTO ##pivot SELECT DISTINCT ' + @pivot + ' FROM ' + @table + ' WHERE '
+ @pivot + ' Is Not Null')

SELECT @sql='', @sumfunc=stuff(@sumfunc, len(@sumfunc), 1, ' END)' )

SELECT @delim=CASE Sign( CharIndex('char', data_type)+CharIndex('date', data_type) )
FROM tempdb.information_schema.columns
WHERE table_name='##pivot' AND column_name='pivot'

SELECT @sql=@sql + @DelimStart + convert(varchar(100), pivot) + @DelimEnd + ' = ' +
stuff(@sumfunc,charindex( '(', @sumfunc )+1, 0, ' CASE ' + @pivot + ' WHEN '
+ @delim + convert(varchar(100), pivot) + @delim + ' THEN ' ) + ', ' FROM ##pivot

DROP TABLE ##pivot

SELECT @sql=left(@sql, len(@sql)-1)

SELECT @select=stuff(@select, charindex(' FROM ', @select)+1, 0, ', ' + @sql + ' ')
print @select
EXEC (@select)


IIS - Scripts for managing Internet Information Server

If you are looking to manage IIS using scripts instead of having to use the GUI the following resources may be helpful to you.

Scripts hosted on - written mostly by me in VBScript using ADSI for IIS 4+

Backup and Restore

How do I backup the Metabase using a script?
How to get a listing of all the Metabase backups that have been made?

Content Indexing

Enum if a web site folders are enabled/disabled for content indexing

Custom Headers

How to add an entry to the CustomHeaders?
How to view the CustomHeaders defined for a specific web site?


How can I get a simple listing of the FTP Sites on my Web Server
How do I add a new FTP site using ADSI?
How to find the default logon domain for an FTP site?
How to set the default logon domain for an FTP Site?
Is there a way to force the FTP filenames to appear in lowercase?

IP Address

Changing the IP Address of a large number of Web Sites which are configured using Host Headers
How can I change the IP Address on a particular web site?
How can I export my list of IP And Domain name restrictions from a website?
How can I set 2000 IP address and domain name restrictions?
How do I add multiple IP Addreses to my Web Site?
How do I list all the web sites and the IP addresses associated with each web site?
I get a message "A duplicate name exists on the network" how do I find what site is the duplicate?
I have 100 IP Addresses and would like a script to tell me which IP address to use next.
I have about 50 websites on a NT 4 server that I need to change the IPaddress for each due to IP address changes.

ISAPI Filters

How do I add an ISAPI filter to my Web Site using a Script?
How do I know what custom ISAPI filters are defined on my Web Sites?
More details on ISAPI Extensions and Filters

 Log Files

How can I delete all files from my IIS log file directory that are over 90 days old?
How can I find out all the log options that have been set?
How can I find out what files are in my IIS log directory for a particular web site?
How can I get a listing of all the log file directories and if they exist or not?
How can I set the Log File Directory?
How do I find all the available web site logging formats available?
I have a lot of log files on my system how can I archive them easily?
I see how to change, read, write browse in the directory tab, but I can't find anything about the 'Index this resource' box?
This script will export relevant IIS settings to a log file that you can import into MSAccess or MS Excel.


How can I add an entry to the MIMEMAP?
How can I delete an entry from the MIMEMAP?
How can I disable caching of specific file types?
How can I display the items in the MIMEMAP?

Misc Scripts

Do do I add or remove a Script Mapping?
How can I determine from within my script if IIS is version 4 or Version 5?
How can I determine if a web site or virtual directory points to a specific physical path?
How can I enable pass through authentification on IIS5?
How can I find all the properties available for an IIS ADSI object?
How can I set the application protection level - such as Low (InProcess), Medium (Pooled) or High (Out Of Process)?
How do I find all the invalid paths in my web server?
How do I read a web page from the server and then show it to the user?

Passwords and Authentication

How can I find out the password for the IUSR_Computername account?

Scripting DNS Zones and Resource Records

HowTo: Scripting DNS entries in Windows 2000


How can I find the files in the SMTP service BADMAIL folder?
How can I find the files in the SMTP service PICKUP folder?
How can I find the files in the SMTP service QUEUE folder?
How to change the SMTP banner on Windows 2000
I am using the IIS Smtp service, how can I get a listing of undelivered messages?

User Accounts

How to Change the Display Names of Active Directory Users with Active Directory Services Interface Script
This article describes how to change the display names of Active Directory users with Active Directory Services Interface (ADSI) script.

Virtual Directories

How can I create a virtual directory and create an ASP application root at the same time?
How can I delete a virtual directory?
How can I view all virtual directory paths for a web site.

Web Sites

How can I create a web site with multiple host headers?
How can I delete a web site using ADSI?
How can I determine the number of sites I have such as Web and FTP on my server?
How can I display the Custom Errors defined for my Site?
How can I find a web site by Host Header name?
How can I get a listing of which sites are started or stopped?
How can I get a simple listing of the web sites and their home directories?
How can I get a simple listing of the web sites on my Web Server?
How can I retrieve/display the IIS Application name from a script?
How can I set my site so it can not be deleted in the MMC?
How can I set the application protection for a web site?
How can I view all the web site root directory paths?
How do I add a new default document to a Web Site?
How do I change the REALM what is displayed when in a Logon Dialog?
How do I create a web site, and an FTP site, and a EMAIL, and configure Front Page Server Extensions?
How do I enable document footers using a script?
How do I enumerate the physical and virtual folders on a particular IIS web site?
How do I find the next available Instance ID for a web site in the IIS Metabase?
How do I make sure that all web sites are running?
How do I start and stop one web site?
How do I unload an IIS Application?
HowTo: Create a virtual directory from an ASP page.
I manage more than 2000 sites with IIS, how can I tell which sites are running out of process?
This DLL enables you to install a website and a filter in IIS4 from InstallShield. The DLL uses ADSI and includes the C++ source

Microsoft Script Repository: Internet Information Server 5.x

Applications and Application Pools
Sample scripts for creating, deleting, and modifying application and application pools for Internet Information Server 5.0 and 5.1.

Basic Administration
Sample scripts for basic administration (such as backing up and restoring the metabase) of Internet Information Server 5.0 and 5.1.

Sample scripts for managing file compression on Internet Information Server 5.0 and 5.1.

FTP Sites
Sample scripts for managing FTP sites on Internet Information Server 5.0 and 5.1.

Web Sites
Sample scripts for managing Web sites on Internet Information Server 5.0 and 5.1.

Microsoft Script Repository: Internet Information Server 6.0

Applications and Application Pools
Sample scripts for creating, deleting, and modifying application and application pools for Internet Information Server 6.0.

Sample scripts for managing authentication properties on Internet Information Server 6.0.

Basic Administration
Sample scripts for basic administration (such as backing up and restoring the metabase) of Internet Information Server 6.0.

BITS Server
Sample scripts for managing the BITS Server that ships with Internet Information Server 6.0.

Sample scripts for managing certificate properties on Internet Information Server 6.0.

Sample scripts for managing file compression on Internet Information Server 6.0.

Sample scripts for managing filter properties on Internet Information Server 6.0.

FTP Sites
Sample scripts for managing FTP sites on Internet Information Server 6.0.

IMAP Server
Sample scripts for managing the IMAP mail server included with Internet Information Server 6.0.

Sample scripts for logs and logging options on Internet Information Server 6.0.

NNTP Server
Sample scripts for managing the NNTP news server included with Internet Information Server 6.0.

POP3 Server
Sample scripts for managing the POP3 mail server included with Internet Information Server 6.0.

SMTP Server
Sample scripts for managing the SMTP mail server included with Internet Information Server 6.0.

Web Sites
Sample scripts for managing Web sites on Internet Information Server 6.0.

IIS - Running multiple web sites *at once* on non-server editions of IIS
Found on the BlueDragon Blog by Charlie Arehart
Charlie discusses different products that can be used to Run Multiple Web Sites on Windows XP. He describes some products that let you run multiple sites at the same time.
For more details see


You should really visit the Internet Information Services Webcasts home page for some very good details on Security, Performance, Reliability, Scalability, Management, Diagnostics and Deployment of IIS.

IIS FTP - Shared Folders with FTP Isolated Users
I came across this question on the "microsoft.public.inetserver.ftp" newsgroup today
I am setting up a FTP site in User Isolation Mode.
I have FTPRoot as C:\Inetpub\ftproot.
Under this I have the following phsical directory structure:
    |- User1
    |- Public

Both User1 and anonymous can log in fine and are limited to their
directories (so far so good)

I have a directory c:\ftp\shared that I want User1 and anon to see under
their home directories, but I can't seem to setup the virtual directory
structure correctly.

I have tried the following in IIS:
    |-LocalUser (VDIR to c:\Inetpub\ftproot\LocalUser)
        |-User1 (VDIR to c:\Inetpub\ftproot\LocalUser\User1)
            |-shared (VDIR to C:\ftp\shared)

    |- User1 (VDIR to c:\Inetpub\ftproot\LocalUser)
        |- shared (VDIR to c:\ftp\shared)

neither has worked.  I have also tried to setup the LocalUser as a virtual
directory pointing to some other location (moving the physical directories
too), but then no user was able to login.

What is the proper way to do this?

The following is one method to get this to work - I do not know of a better method but this does work

Lets start with a new FTP Site with nothing in it.

I start by creating a folder at the following location (you can use any path you want)


Now you create your FTP site and configure it to use FTP Isolated Users

So continue with the FTP Site Creation Wizard.

Now in the home directory folder you must create the following directory "LocalUser" so our path will be:


Note: In my sample I am doing this on Small Business Server 2003 which is a Domain Controller - this means that instead of using LocalUser I must use the name of my domain which is called IISFAQ

Now you must create your directories for each user who will access the FTP site.

In this example I have created a user called XYZ

so I now create a folder called XYZ inside of the LocalUser or DOMAINNAME folder.


Create a file in the XYZ folder called XYZ.TXT just so we know we are in the correct place.

If you test this now with an FTP client you should be able to log on as user XYZ and see the file XYZ.TXT

We now need to create a folder for the shared documents or files.

We go back to out FTP home directory and create a folder called Shared


If this is all we do our Shared folder is not accessible so it does not have any use to us.

Create a file in the Shared file called Shared.TXT

We now need to add a virtual directory to the FTP Site.

  • Right click the FTP Site in IIS Manager and select New-Virtual Directory
  • Enter Shared as the Alias and click Next
  • Enter C:\Inetpub\FTPSites\LocalIsolatedShared\Shared as the path and click next
  • Click Next and then click Finish.

Now although the user will not be able to see this Shared folder they can actually change directory to it. So it is sort of like a hidden directory as can be shown below.

So  we now have a problem because the Shared virtual directory is there but the user can not see it!

So how do we get the user to see this virtual directory?

The only way that I know of is to create a physical folder called "Shared" in the users area.

So we end up with this path:


Now when the user issues a DIR command they will see a folder called Shared and if they change into the Shared folder they will see the contents not of the physical folder but of the virtual directory folder as can be shown below.

Note: This means that we have to create a folder called Shared for every FTP user on your site which is not ideal and sort of defeats the purpose of virtual directories but I do not know of another way to perform this action.

IIS - Application Pool Architecture Interactive Simulation

I just found this resource today although it has been released since 2003. 

This interactive demonstration shows how Internet Information Services (IIS) 6.0 manages and monitors Web server functionality. By providing control to administrators and automating various functions, IIS 6.0 helps to keep applications and sites running without reactive administrative supervision.

Internet Information Services 6.0 - Application Pool Architecture Internet Information Services (IIS) 6.0 utilizes the Application Pool configuration tool to provides administrators with powerful application pool monitoring and management. Health monitoring enables IIS 6.0 to monitor application pools and restart them if a pool fails. Recycling keeps troublesome applications functioning without administrative supervision. Administration also becomes more cost-effective, because performance options, such as idle timeouts, conserve Web server resources, allowing more sites to be hosted on a single server. Rapid fail protection keeps repeatedly failing applications from impacting other sites running on the server.

To see more

Note: Requires installation of an ActiveX control