Thursday, May 04, 2006

The Blue Frog - Giving Spammers a Taste of Their Own Meds!

Blue Security has an intersting approach to spam. For each spam you get, they send one complaint to the (real) sender. That means when a spammer sends you hundreds of junk mails, they get hundreds back. Naturally, some of the spammers are angry - this is getting in the way of their money making and the spammers are fighting back. Their latest tatics include sending aggressive emails to Blue Security "members" and a sophisticated DDOS attack on Blue Security's site. This DDOS also took down the TypePad and LiveJournal sites, as reported by Netcraft.

I've been trying to get onto Blue Security's page to download the Frog. After several attempts last night, I managed to get the software down, but can't get to their site to register.

Looking at the tatics being used by the spammers, it's clear they are scared. Sending aggressive and threatening emails must be borderline extortion (get off the list or else), and the DDOS attacks must be illegal. Frankly, if they want to send more spam, it's just more spam the Frog can return to them with an opt out request.

I'm tired of spam, and I suspect most of you are too. The spammers tactics here convince me more than ever that they need to be stopped. Arguably, there is a place for direct e-mail - but what we're seeing sure is not responsible, ethical or helpful to their cause. I suggest you wait till the latest attack blows over then register. And the report each and every spam you get till the spammers just get tired and move on.

Wednesday, May 03, 2006

Gartner warns of additional Vista delays - vnunet.com

According to Vunet, Gartner is warnning of additional delays to Vista. Naturally, MS are disagreeing with this. We'll see. My personal take is that the earliest we can expect RTM is (no sooner than) 6 months after the release of B2 (which has not happened yet). Unless MS either agree to lower the quality bar or are willing to cut still more features. We'll see.

It's official - Vista's UAC Sucks By Design

As readers of this blog may know, I'm not enamoured with Vista's UAC feature. I'm sure I'm not along judging from other web posts. In disgust, I filed a bug (titled "UAC Utterly Sucks") and it has just been closed. It was closed "BY DESIGN".

That's right, MS actually designed UAC to be this bad. The bug was closed with apologies for invoncenience caused, and offered a workaround to login as admin. Actually, this is not a great workaround - a much better way to deal with UAC is to just turn off the service using MSConfig.

So when you spend the rest of your life hitting the "yes" just remember that MS designed your experience to be this poor.

Tuesday, May 02, 2006

Ed Bott Looks at UAC

Over at his ZDNet Blog, Ed Bott has a post titled A fresh look at Vista's User Account Control where he walks you through the details of UAC. I've already posted my views on this feature previously. Nothing that Ed discusses makes me think any more highly of the implementation. Mileage, as always, varies, but Vista is just plain easier to use with UAC turned off.

Moving to PowerShell - Some Upgrade Blues

I've just installed the RC of the re-named PowerShell (Monad, MSH, etc). To upgrade, you need to de-install the older version of MSH and install the new version of PowerShell. But there are some changes that took a while to work out. If you know MSH and are about to upgrade, there are some changes you need to know about as they may impact you!

First, the name of the exe has changed as has its location in %programfiles%. The target of your shortcut has changed to "%programfile%\Windows PowerShell\v1.0\powershell.exe" (NB: there's a space between the Windows and Powershell.

The first time you run PowerShell, you get the sadly now standard "security" warnings due to the "secure" default setting of Powershell's Execution Policy. The location in the registry where PowerShell stores its policy settings (and where most admins are going to want to change the Execution Policy to Unrestricted) has also changed. The registry key is now: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell. It would also appear that UnRestricted is not quite Unrestricted - every time I run a script off of my Intranet, I get asked if it's OK. YUCK!

Another minor annoyance is that the extension for Powerscript scripts has changed to ps1. What the heck is this name - clearly the markeing droids were on overtime when these names were invented! If you try to run an old MSH script,eg fix.msh, the OS just pops up in the text editor (not quite what was wanted). But a quick rename of my scripts got them working again.

Monad wraps .NET objects with additional properties. These names began with MSH, but now begin with PS. Also, somecmdlet names are different - New-Drive becomes New-PSDrive. If you have used these properties in your scripts you need to change the names - this took some careful editing in my case, but was not a hard problem!

As with earlier versions of Monad, PowerShell has a default profile script that is run at startup. The name of this script is held in the variable $profile. This means you should be able to type Notepad $profile to edit this default script. Well you would if the folders that are pointed to, or the file itself,were actually created by the installation program (as once was the case). The setup routine is distinctly admin hostile. Sadly.

All this means most of my more complex scripts no longer work without modification and setupp/installation takes much more time to setup than should be necessary. Fortunately, the changes are minor, but I'm annoyed at the extra unnecessary work needed. Some of the changes were always going to be necessary - that's a price I'm willing to pay as an early adopter. But some of the work (setting up $profile, making un-restricted mean what I say it means, etc) just seem to be throwing road blocks in the way without good reason.

Allegedly, this stuff is due to "security". However, this level of "security" is just plain overkill in my view. It also ruins the first experience for a new admin since it's just harder than it needs to be in order to get things up and running (and even then why doesn't "unrestricted" actually mean UN-RESTRICTED??). This approach just tends to reinforce bad habits and something to be exploited by social engineering. For example, I run a bunch of scripts off of a remote machine in my intranet - on a mapped X: and M: Drive. These scripts examine files in these mapped drives and print important statistics. Every time I run these remote scripts with PowerShell it asks me for permission to run them (this despite an UnRestricted Execution Policy). Thie means I have to type "r" to run the script, something I find my self doing this without thinking. Due to overuse, the value of this warning is lost and is open to social engineering. This is the same issue plaguging UAC in the latest builds of Vista.

At the end of the day and despite the utterly naff name, I love the product. I love the underpinnings and what you can do with it. But this approach to security is just plain dumb.

Monday, May 01, 2006

I Hate Enforced Registration

I'm trying to download the latest beta of PowerShell (fka Monad). In order to download, you must 'register'. The registration page suggests "registration information enables us to better provide you with the latest resources relevant to your needs...". Except Passport is barfing ("We're unable to complete your request - The Passport Network is experiencing technical difficulties. Please try again later."). So where's the 'just download' button?

Microsoft Script Center

The latest TLA from Microsoft is IOI - Infrastructure Optimisation Initiative. The basic idea of IOI is that every organisation can improve their infrastructure, and by doing so both reduce TCO and improve ROI. One key pillar in IOI is the automation. With automation, tasks take less time - the more you automate the better. The original MS Script center (half a dozen scripts and grand ambitions) has morphed into today's Script Center Technology Areas. Wow - scripts for everything, including PowerShell. This is a site that should be in every IT Pro's favourites list.

Internet Explorer 7 Beta 2

You can download the latest beta of IE7 from the Internet Explorer 7: download page. I've been playing with this beta, and it appears stable. I'd switch to it in a second if it had half of FireFox's add on features (including various extensions including blog this, tiny url maker, and most importantly Adblock.

Squeet - A Free Email RSS Reader

Squeet is an interesting service - it converts RSS feeds to email so you get emails with each post. You can get to it from Squeet home page.

The concept is good, but the service is pretty flakey. I can't get this blog's feed to be validated (Blogger strips out HTML comments when creating the RSS feed, thus the feed can't be validated), and I am repeatedly getting errors trying things ("An unknown error has occurred in the application. Please contact the site admin or try again."). So while I like the idea, the service offered does not appear to be quite ready for prime time.

LIfe is hard for one Microsoft Beta Tester

Life is hard as a beta tester. Take it from Rob La Gesse, who bares his soul in a blog entry entitled TechWrecked: It's hard to be a Microsot Beta Tester (and how it could be easier!).

Rob has some almost legitimate complaints. But I see them more as the whine than genuine complaints to be urgenly actioned. He seems to want beta testing across the company to be run like a complete product group in its own right. And he wants the product team to take him seriously and to provide a way to get his feeedback. Maybe I'm being a little unfair, and the masters of "customer love is always right" will disagree with me, but I don't buy some at least of his argument.

Rob's main issue is that he's testing a bunch of products (13 or more) and there's no apparent joined-up ness between them. Yup - while he's right about this, I'm not sure it's really a problem. I see a beta test being all about one product's team vision - their vision for the product and how it's to be used and suported. Hence, betas have been product team specific with different rule, procedures and "benefits" for each one. And that's fine by me. Rob also wants a single beta portal. This is what connect.microsoft.com has in essence become or is becomming - a single connection portal to MS. Not all beta are there yet, but of late, I'm seeing a lot more products on Connect than ever before. The download service from Connect seems fine to me (saturates my 2mbs pipe regularly!).It also provides a mechanism for feedback, direct into product studio, IIRC.

As an aside, Rob complains about feedback and his difficulties in providing it in some cases. I can see the product team's dilema here. In order to test something as big as Live, you need a very large number of people playing. And with that large number, unless the team has huge resources, they could not possibly take deep comment from every person on the beta test.

So my message to Rob is this. First try to test fewer products - IMHO anyone with a full time job (and/or a life) can't realistically test 13 individual products beyond a trivial level. When you download something, you might like to consider using new and old technologoy to help you - pen/paper or use notepad to write stuff down. And finally concentrate on the product rather than on the mechanics of the beta programme. Be thankful that you have the chance to affect the product's development. And one last thing - try Connect.

Sunday, April 30, 2006

Asta La Vista UAC!

OK - I give up. I like UAC (User Account Control) in Vista - well I like the concept. But its implementation utterly sucks and is painful to use. Yes, I know the idea, but the implentatation is overly simplistic - relying as it does on 'authorising' each attempt to elevate priveleges. It just gets folks into the habit of clicking "yes - please go do whatever I just asked you to do" button. Which of course becomes a target of social engineering.

UAC is just not good for my blood pressure. So, thanks to the Windows Vista Build 5365 Tweak Guide, UAC is gone - and Vista is better. Bliss - or nearly. This guide to 5365 is not bad, although in step 3 to disable UAC, you have to click the Launch button (not the run button). This page has some other useful tweaks I'll explore in due course.

Saturday, April 29, 2006

MS Earnings Report Hits Share Prices

It's been an interesting day on Wall Street. As Reuters reports here, Microsoft's stock lost 11% on the day. OUCH!

So let me get this right. Income is up 13%, profit is up 17%, and the firm is on the crest of a huge wave of new products (PowerShell, E12, O12 and Longhorn), and the stock goes DOWN??? What is Wall Street thinking?

Joe Wilcox at Microsoft Monitor explains the results. He notes that Microsoft faces some interesting challenges. Wilcox says: "I expect some companies will see the new user interface and file formats as generating unnecessary additional overhead, because of retraining and other cost considerations."

I've believed all along that a Classic Mode is needed for O12. I'm sure Classic Mode could still be done. And it would a super way to reduce the initial training overhead, or at least the fear of the new UI. I've been using O12 a lot of late. I hate bits of it, but I quite like others. But Wilcox is right that users, particulary power users will need retraining.

Wednesday, April 26, 2006

Google Maps For ALL of Europe!

This is cool: Google now has Google Map Street Maps for ALL of Europe! Perfectamundo as we say at home. I've been checking on London and Amsterdam, two cities I have spent time in. These maps are excellent - and the satelite imagery is stunning. Nice one!

Watching History Change in Google

With Microsoft's arketing decision to call Monad "PowerShell", Google's index is now out of date. If you search on Google for "Powershell Windows" the current hits are all about a free-ware prodduct, and nothing on Monad (aka Powershell). Over the coming hours, we should see the index change. It'll be fun to watch the real hits rise!

,p> As I post this, Googling for "Powershell Microsoft" returns just 923 hits, while "Powershell Microsoft Monad" returns 23. MSN's index is marginally more up to date, but only by a bit. I wonder what these numbers are going to be in the morning?

Monad Becomes PowerShell

Monad has finally been given it's final real name: PowerShell. Not a bad name, I supppose, but what was wrong with MSH (Or The Microsoft Shell)? But whatever it's called, it's still one heck of a product"!

One small thing, James Smith, developer with a site at http://www.jastek.net/pro.php, might be just a tad annoyed since already has a product called PowerShell. I wonder whose lawyers will win?

Tuesday, April 25, 2006

TechEd Bloggers

Being quoted on TechEd Bloggers home page is not quite like getting Slash-dotted, but still fun. The bit cited on the TechEd Bloggers site is not quite the full story. The build is pretty stable, and works reasonably well - this bodes well. As a consumer OS, it'll sell well (if only because any OEM version of Windows sells well). It looks pretty too.

The bit of my earlier post cited by the TechEd Bloggers site related to the "move things around because we can" problem. Here are just two examples. First, in XP, you could right click the desktop background, select properties to open up the desktop properties. There was a single tabbed dialog box with all the options. But in Vista this is all changed. Your right click on the desktop brings up a Personalise (SIC) option. This is a menu listing the individual tabs in XP's dialog box and a bit more. Clicking some of those just brings up a (single tabbed!!!) dialog box which looks much like one tab in XPs's dialog. Clicking others brings up new windows. All very confusing and to me just adds more complexity to the process. At a very minimum lose the tab in the XP-cloned dialogs. A singe dialog needs both a window title and a tab why? Oh - and by the way, the window title and tab title are not really consistent in terms of what they display anyway!

The second example is the Desktop icons. In Win2k, the default desktop had a bunch of icons (the computer, IE, etc) in a particular order. In XP this changed to nothing being displayed, but you could change to a default order by clicking down into desktop properties. In Vista, this is done a different way, and the default order displayed are different. I like the ability to display the control panel - but why did the order have to change?

Compatibility is not quite there, but that's to be expected. I'm certain this is going to get better as Vista drives towards release. Also, the UI has butchered my beloved Turnpike. Turnpike looks so awful under Vista, I'm actually considering finding a new mail and news client. After using the product for something like 10 years, I'm reluctant. I'd really like a "compatibility mode for shell extensions that looked cool in XP" feature.

Another thing that jumps out is how much bigger Vista is than XP. Vista now comes on a DVD, roughly 6 times the size XP, if I have my maths right. The Windows folder alone is just a tad under 7GB! And after a day's running, the background memory usage is 1.3GB. I'm struggling to understand this apparant bloat. While there is some really great eye-candy and the stabilty is good, Vista is going to represent a wholesale replacement of my home network. While it all works fine under XP and Win2k3, several of my machines are just too long in the tooth for Vista. I suspect this may be true of many corporate clients.

But the thing that bugs me the most is UAP. This can not have passed the Jim Alchin's Mom test, and gets me angry every time it kicks in. Trying to delete windows.old (the folder the 5365 installer created from the previous build of vista on this box) has taken hours to complete. The combination of permissions, and the need to ask for admin priveleges drives me nuts. The think that makes least sense is that Vista doesn't make me enter admin credentials, just to click twice - with a couple of 2-3 second pauses in between. Now what is the point in that?? I really hope Vista RTM will have an easy way to turn this stuff off!!

Mind Map of Linux distributions - Version 2

I just found this really cool mind map of Linux distributions. A nice view of the various Linux flavoours and some of the relationships between the various distributions.

Sunday, April 23, 2006

Vista 5365 - Looking Good (well better anyway)

I've just downloaded and installed the latest beta version of Vista, build 5365. The installation was relatively uneventful and in use, VIsta seems relatively smooth. The new pictures and screen savers are very cool to look at. With my big screen (24" wide screen TFT) and a reasonable graphics card (GeForce FX 5200) Vista looks very nice with all the eye candy. But it's still a beta.

But from a usability point of view, 5365 still seems to suffer from a "let's move stuff around because we can" syndrome. Sadly things that were easy to find in XP have been moved around for no obvious reason. Although I do like some of the improvements, the consistent sense of inconsistency in XP continues - we just have different bits that are inconsistent.

There are some other things about 5365 I hate - particularly UAP. The concept of forcing users to run with relatively low privaleges is a great one. But the implementation is Vista is just plain lame. As I'm setting up the system, the entire screen goes black for 2-3 seconds (a visual sensation similar to what we saw when XP blue-screened) then a silly dialog box pops up - I click Accept - the screen goes black for another 2-3 seconds, and I can carry on. It's very, very annoying - sufficiently so that I'm going to just log on with admin privaleges. It's easier and far less intrusive. Sadly, while I like the concept, MS has made a poor job of the implementation. Of course, mileage may vary on this - but I doubt many IT Pros will even come close to liking this implementation. We'll see.

Carmine - A Virtual Server Management Tool

Paula Rooney at CRN reports that MS are planning a Virtual Server management product, code-named Carmine. Her article, Microsoft Virtual Server Manager Augurs Partner Opportunities does not mention likely release dates. Also, although Paula's article does not specifically say so, other folks talking about Carmine say that it is to be based around Monad (e.g. here).

Whether or not it's based around Monad, a more compelling management product would certainly be very welcome. VS's UI is fairly lame - and that may be being kind. If Carmine is based around Monad, that would be really cool.

Informit.com article on Monad

Informit.com has an interesting article on Monad titled: As Exchange 12 Looms, Microsoft Tackles Monad Bugs > Concepts for Grokking. The article has a few minor errors (unless I've been awarded a doctorate and someone's fogotten to tell me), but it's an interesting background read.

Wednesday, April 19, 2006

Microsoft extends tool giveaway

CNET report that Micrsoft is to make Visual Stuidio Express free permanently. EXCELLENT!!

Microsoft extends tool giveaway

DeveloperDeveloperDeveloper! Day in June, I'll be speaking about Monad. This event, which is free, looks to have a pretty good line up of speakers and topics. Book early!!

Thursday, March 30, 2006

MS Solicit Internet Explorer Feedback

In a recent posting to the IE Team Blog Al Billings announced the Internet Explorer Feedback site over at MS Connect. COOL! Finally a more public way of feeding back on IE bugs. You first have to go to the MS Connect site (http://connect.microsoft.com) So bring on those bugs!

Windows Server Feedback

Microsoft has a cool page Windows Server Feedback where you can leave your feedback on Windows Server. This is a great idea, although I am not sure if it actually active - the logo at the top right (for SUS) refers to a product that MS stopped supporting last year. And if you click the "Best Feedback" link, the resulting page is dated April 2004. So while this may be a great concept, it looks like one that has been dropped from active use.

Wednesday, March 22, 2006

Thanks Microsoft!

Thank you Microsoft for this now freely available bug fix to the bug, described in KB319740.

This is one of those bugs, and one that has bugged me for a long, long time. I use a mail and news product called Turnpike. It has many advantages over OE but I'll leave the Turnpike evangelism to another day! This bug first cropped up during the beta of XP, but I never managed to work out what it was until after XP's RTM. At that time, I was running my laptop on Windows Server (as I was writing for the Windows Server Resource Kit team around that time) so the bug really did not affect me till after RTM. There was a patch raised, and the fix went into SP1 - and all was well. But for reasons never very clear, this bug re-surfaced in SP2. I want to say it was a regression, but it could well have been a bug that developed when fixing the orignal bug. Whatever the cause, it was in SP2 RTM.

The basic bug is that when using XP's theme service certain MFC applications leaked handles when child windows are created. This was a bug that could have easily been demonstrated by just testing the MFC samples as part of testing the OS SPs. The problem with this bug for me was its impact on Turnpike's Connect.exe. Connect.exe is the 'service' that sends and recivies and files mail and news. Connect works by creating a child window for each connection to a mail or news server (to allow you to see the details of the connection on screen if you want). Of course, most of the time, the windows stay unopened - but their creation and termination caused a handle leak that eventually required a reboot. If you stopped connect before all the handles were leaked, or just turned the theme service off, all was well. But the regular reboots were a real pain.

Eventually a post SP2 patch was created, but getting it was neigh on impossible Long time readers of Demon's Turnpike support newsgroup will know just how painful getting this was. I've posted in this blog my trials and tribulations over this bug. But a few weeks ago, I was at a round table at MS who were looking for examples of how to do a better job support wise. At that meeting, and in several long and detailed emails, I spelled out how bad this bug made MS look. Why did a bug regress? Why aren't MFC samples tested for OS Compatibility? WHy was there a regression into SP2? Why was a bug in RTM, fixed in SP1, not explicity tested for regression? Etc.

After the many mails, MS has finally posted this fix for free download. Yeah, you have to do the Real Advantage thing, but on this occasion, it would seem churlish to complain. Thanks to Phil Cross and Kristin Thomas at MS for getting this patch out there.

Microsoft Delays Vista. Again.

This is the first story I've seen thus far around MS delaying Vista (again). I hate the delay, but I think it's the right answer.

{later}

There are now lots of more articles on line about this! This post notes the impact the delay is having on MS shares.

{even later}

Here is a MS Press release on the issue. And here is a link to Jim Alchin describing the move.

Tuesday, March 21, 2006

Internet Explorer 7: Beta 2 Preview - released on March 20th - checklists

Yesterday, Microsoft issued an updated beta of Internet Explorer 7, entitled Beta 2 Preview. You can download it here.

Saturday, March 11, 2006

Get Firefox?

I showed the Get Firefox page to my wife, as I thought it was kind of funny. She did not get the joke. I wonder if others of a more litigous bent will see the humour?

Thursday, March 09, 2006

Windows "Monad" Shell Beta 3.1 is Released

Microsoft has issued an updated MSH Beta. Dubbed Beta 3.1, you can get the x86 version here. If you are X64, get the updated beta here.

Wednesday, March 08, 2006

Ever lost the Admin password to a Windows Box?

I was working last week for a client and we came across a box whose admin password was not what we expected (or any of the many variations of what we expected), or any of the non expected variations. To no avail. However, one of our techs came up with this. This is a VPC floppy image (you can use VPC to create a real floppy disk). It contains a small linux build plus a password changing tool - which worked on XP SP2 just fine.

This floppy disk was developed by a Norwegian, and you can find more information on his web site

Creating Passionate Users

I stumbled on the site Creating Passionate Users which has some great ideas about how to be better at what you do!

Sunday, March 05, 2006

PC Pro Column - Configuring ASP.NET

My latest PC Pro column is now on the web at the PC Pro web site. Entitled Configuring ASP.NET, you can get it at the Real World Computing: Configuring ASP.NET page. Also - see http://www.reskit.net/pcpro for the links to the other (and future) articles.

Saturday, March 04, 2006

VIsta Licensing Policy

David Berlind at ZDNet, has an interesting analysis on Microsoft's licensing policy for Virtual PC on Vista.

Customers with an EA/SA can obtain Vista Enterprise, which has the right to install a second instance of an OS. In the retail channel, you will only be able to obtain Vista Ultimate, which does not carry these rights. With Vista Ultimate, you have to license every VM separately, and for most corporates this probably means buying an additional retail licenses. Interstingly the right to run a 2nd instance extends to both physical installations (a multi boot between two OSs installed in separate partitions) and running in a VM. While I'm sure MS want you to use VPC as the virtulisation platform, you can use VMware. Now given that VMware Server is shortly to be free, that gives Vista Enterprise customers some intreiguing options.

The Five Dumbest Things on Wall Street This Week

Writing on TheStreet.com, Colin Barr's article The Five Dumbest Things on Wall Street This Week has an interesting take on Neil Holloway's statment on MSN Search.

In this article, Holloway is quoted from the Reuters Global Technology, Media and Telecom Summit in Paris as saying "What we're saying is that in six months' time we'll be more relevant in the U.S. marketplace than Google, The quality of our search and the relevance of our search from a solution perspective to the consumer will be more relevant."

As an MVP, I wish MS would concentrate first on making www.microsoft.com search better before taking on Google. If MS concentrerated on making it's own site more sensibly searchable, that would be a great first step. I occasionally use MSN search and Google - with Google constantly giving me better results both searching inside Microsoft's sites and on the wider internet. As a user, the gap between these two search engines may have narrowed a bit - but it's still very very wide. I wish Holloway good luck!

Sunday, February 19, 2006

Fun, Games and a Brrreeeport

Over on the Scobleizer blog, Robert suggests a game, where in bloggers post with the word brrreeeport in the post, to see the result. As of this post, Technorati reports 1051 hits, MSN Search shows 45,379 hits, Google shows 65,100, while Yahoo shows a whopping 83,600!

That these numbers vary so much is interesting - why does Yahoo report almost double the number of hits on a made up word than MSN Search? And why does Technorationly show so few? Which one is right?

Blogger Weirdness

I am not quite sure what is happening here, but Blogger seemingly is eating some posts. I've lost a couple since last night. If you look at my blog from the home page (http://tfl09.blogspot.com) you see reference to an article I wrote yesterday on code signing at http://tfl09.blogspot.com/2006/02/code-signing-in-monad-part-1.html. Yet you can navigate directly to it. Weird.

Thursday, February 16, 2006

More on Vista

It was a pleasure to read Mark Wilson's summary of my Vista talk last week at the IT Forum redlivered event at Microsoft. As usual, he's done a first class job at summarising the talk.

This talk was challenging on a couple of levels. First, I was not able to run the latest (Dec) CTP on my laptop - which was a bit of a bummer to say the least. But I managed to get it running on a desktop I had a home. The box only had 512MB of memory, so to get the demo to run at anything like reasonable speed, I had to buy some more ram (out of my own pocket).

The second challenge was the slide deck itself was pretty marketing oriented - an approach that I know from many years presenting at TVP really does not go down well with the UK audience. So I used the deck as the basis for both explaining some of the background, and as the focus for the demos. I'm glad Mark recognised this approach for what it was!

The third challenge was the product itself. I am running the December CTP relase - and it's slow, buggy and incomplete. But big deal - it's beta - and the bugs really aren't the message. And of course, if it were fast, bug free and complete, it'd not be beta, if you see what I mean. The demos showed a bunch of the cool new features, such as the great new event log intereface. But in looking at it, you also see how many hundred critical and major error events were logged which diverts a bit from the core feature message. As Mark pointed out, my demos were around what you are going to be able to do with Vista (and less about the current state of the engineering effort). I'm told that the next CTP, due out very, very soon, should both load on my laptop and be much quicker on the desktop. I'm looking forward to having more evidence around both of these shortly!

Getting IE7 To Recognise an RSS Feed

After loading the latest IE7 beta, I was stumped by it's inability to find the RSS feed on my blog page. I could see the nice big XML button - so what's up with that? It turns out, thanks to a great post on the Microsoft Team RSS Blog : Windows RSS Publisher's Guide (work-in-progress) I just needed to update the template for this blog and add a LINK tag to the header and all is well. For IE7 to "see" an RSS feed, the page has to have a LINK tag in the page header containing the details IE uses to present the RSS feed information. And thanks to QA's web guru Steve Mansell for pointing the solution to me as well! For more information on the LINK tag see this blog post.

Wednesday, February 15, 2006

IT Forum Redelivered - MSH Talk

Last Thursday, I was at Microsoft UK, and delivered two talks as part of their IT Forum Redelivered event. The idea was to take the best talks from last year's IT Forum and redeliver them to a UK audience who might not have made it to Barcelona. My first talk was about Monad, with the second was about Vista (with a tiny bit on O12). Mark Wilson was kind enough to pretty nearly transcribe my entire talk in a (long) blog artice on his blog site. Thanks for saving me a bunch of work! A few small points on Mark's excellent post

Mark notes the registry setting to change the default security model. What he omits is the poor first time user experience if you don't set this registry value entry. The default for this value entry (Restricted) means that the first time you run MSH, you are confronted by a bunch of somewhat obscure and unhelpful error messages the first time you run MSH. I understand fully the need for this registry value entry - but to my mind Monad's setup should take provide some way to fix this in a less user hostile way. I'm hoping the product team will resolve this issue before RTM, or perhaps there's a simple way to create a MSI Transform to 'fix' this.

Mark's blog post metions the get-wmiobject cmdlet. He agrees with me that the full name is a pain to type out in the shell. Ahh grasshopper - you just use the ailas gwo - and if you want to ailas it further, you of course can do that easily.

Mark talks about pipes and the pipeline. Just one small issue, in case I wasn't clear on the day. In Unix/Linux, what tends to pass along the pipeline is text as Mark notes. But that's not a design decision or a restriction - I'd hate any Unix/Linux fan to throw rocks at either of us. So while binary data can of course flow across the pipeline, what tends to happen with administrative scripting it that it's just text passed.

Finally Mark talks about security measures around Monad. A futher securty measure is that Monad is not installed by default, nor is it on the product CD. MS is deliberately putting up as many security barriers to stop you running scripts. And while this is a right royal pain in the posterior for experiened IT Pros - I think it's probably the right answer these days.

I really enjoyed giving the talk, and the Vista talk that he's not written about (yet)! To be there cost me a day of my time plus the couple of hundred pounds needed to be get there and deliver talks with credible working demos - but it was still a lot of fun.

Wednesday, February 01, 2006

DDPS - BDD 2.5 Training - book now!

Microsoft UK has now opened the booking for Desktop Deployment Planning Services Technical Training (based on BDD 2.5). Go to the MS UK Partnher Website and book today. There are 8 courses, each lasting 4 days. The majority of the time is spent carrying out Hands On Labs using BDD.

The idea of the course is to prepare MS Partners for deliveing the DDPS to SA customers. It's also a great demonstration of the MS stack!!

Friday, January 27, 2006

Microsoft Ups the Security Ante In 64-bit computing

MS has justannounced that it will "harden" Vista Against Kernel-mode malware by requiring all kernel mode drivers to be signed by MS. From a sound bite perspectivre, this sounds a really good thing., But fortunately for many of us, this is limited to 64-bit Windows not the 32-bit versions I'm running since the reality is goning to be bad news. As anyone who uses the latest hardware, or who uses niche hstfetgproducts, signed drivers are not always available. In some cases any there are NO drivers avaialbe for the latest systems - a problem I encounteered during the Windows 2000 and XP betas.

For me, this decision is a good one for my pocket book as it removes any current interest I have in 64-bit boxes in the short term. It also means MS has probably lost a launch customer for 64-bit Vista as I'm not prepared to go 64-bit without better driver support). Security is an important features, but in this case, just being able to install and run Vista seems a more important feature. As an example: I've just purchased a new (32-bit) Dell Laptop that simply does not run Vista - I've take Vista off, and gone back to XP. Given the low level of driver support thus far with Vista, I'm not prepared to buy into a platform which will come with even fewer drivers. I simply can not affort more xpensive but useless door-stops. I'd have been happier had MS also announced that better driver support full stop - something rather noticibly absent.

Tuesday, January 24, 2006

TechEd Europe in Amsterdam Cancelled

It was a bit of a shock to find that Microsoft TechED Europe 2006 in Amsterdam has been cancelled. I was really looking forward to it. I have attended every Euro Teched since the start - a cold wet Bournouth 11 years ago. It's sad to see it cancelled - all the more so since I love Amsterdam in July!!

Sunday, January 22, 2006

More Excitement over Monad

Informit.com has a nice article on Monad, entitled Monad, the Three-Dimensional Command Prompt. It's cool to see the more mainstream IT press sites slowly getting to grips with Monad.

MSN and Privacy

Ken Moss, General Manger of MSN Web search has published a blog article: Privacy and MSN Search where he attempts to justify Microsoft's position over the request by the US Government for data in relattion to child porn. I will not go into detail here on this (you can Google for the details! or see here for my earlier take on this issue).

As you can see from the comments on the MSN blog, most contributors do not take kindly to MSN's actions. There are a few pro-MS comments (some curiously anonymous, and possibly astroturfed), but most are pretty negative. No matter how Ken spins it, Microsoft has lost some trustworthy points over this.

Saturday, January 21, 2006

Microsoft ads aim to erase 'huge' image

According to the Seattle PI, Microsoft is embarking on an ad capaint to erase it's "huge" image. The PI peice says Micosoft will be spending £120 MILLION dollars a year on ads, with the purpose of trying to show they are not a big American company. Maybe I'm missing something but surely only a large American company would need, or indeed want, to spend $120m to demonstrate they are not a huge American company.

The Day After: Points In The Search Trust Sweepstakes

I've just read an interesting article: The Day After: Points In The Search Trust Sweepstakes regarding the requrests made by the US Government to various search engines. MS's "Trustworthy Computing" programme would appear to have taken a further battering. Any company that wants customers to trust it does not issue a non-statement which did not confirm or deny anything. Frankly the way MS caved in to this rather absurd demand, and Google didn't, makes it less likely that I am going to use MS as a search engine and a several trust points for Google. MS's Trustworthy Computing supremos could learn from Google's stance here. After all, it's not like MS is short of lawyers, now is it?

Monday, January 16, 2006

Friday, January 13, 2006

Scripting with the Windows "Monad" Shell

Microsoft have a put up a new page up on its Technet site: Scripting with the Windows "Monad" Shell. It's the Monad equivalent of the TechNet (VB) Script Center. The cool thing, IMHO, is that they link to my www.reskit.net/monad page as "Monad Information Center". I had wondered why the traffic on my site had suddenly jumped up a bit!

Creating a MSH Snap-in with MSH B3 - Part 2

In Creating a MSN Snap-in with MSH B3 Part 1, I showed you how easy it was to create a Snap-in. Well, at least I demonstrated the code for a snapin, one containing a simple cmdlet. In this blog article, I'll look at the details of how to compile and install your snap-in.

I have created a simple compilation script to compile snapins, csnap.msn, which take 3 paramaters (SnapinName, Snap-in Source file, and Snap-in DLL name. While you can provide paramaters, I use the convention that for a snapin , the source file is .cs, and the output is .dll. The script attempts a bit of intellegence here. The script next compiles your cmdlet, using the C# compiler, and copies the output dll to $MSHHOME, so consoles can later load the snap-in. Finally, we use the .NET Installer to install your cmd let and we're done. Well - we're done installing the snapin. Here is my cnap.msh script. A better formatted version is on http://www.reskit.net/monad/samplescripts.htm, or will be soon!


#csnap.msh
# comples and installs an MSH snapin - V1.2.3
param ($snapin,$snapinsrc,$snapinout)
#some simple validation
if (!$snapin) {
Write-Host "Snap-in name not specified - try again."
Return}
# Examine 1st parm - if a single token,
# Or (1st param is two tokens and 2nd is .cs) then...
# make make intelligent choices in absence of src/output
$s=$snapin.split(".")
if (($s.length -eq 2 -and $s[1].tostring() -match "cs") -or
($s.length -eq 1))
{if (!$snapinsrc){$snapinsrc = $snapin + ".cs"}
if (!$snapinout){$snapinout = $snapin + ".dll"}}
$x=$snapinout #save for later
#Output what we're doing
Write-host "Compiling: $snapinsrc"
Write-host "Output to: $snapinout"
# The C# compiler,and references we'll need
set-alias csc C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe
$ref = "$env:programfiles\microsoft command shell\v1.0\System.Management.Automation.Dll"
# Compile it
&csc /target:library /out:$snapinout $snapinsrc /reference:$ref
#Copy it to its home
Write-Host "Copying : $x to $out"
$out= $mshhome + "\" + $snapinout
copy $x $out
# Finally Install it
$ins = "$env:windir\Microsoft.NET\Framework\v2.0.50727\installutil.exe"
&$ins $out
#all done
Write-Host "All Done"

So that's pretty much it! If you were to take the random number snap-in sample I posted last time, saved as random.cs, you'd call script by running:

./csnap random

In the next article in this series, I'll demo how to install and use your new snap-in.

Thursday, January 12, 2006

Creating a MSH Snap-in with MSH B3 - Part 1

MSH Beta 3 comes with a snap-in feature, which simplifies creating additional cmdlets for your own use. I'll not go in to why developers need to create cmdlets here, hopefully that's a given (if not, I'll talk about this in another article). In this muli-part article, I plan to discuss what MSH snap-ins are, then show how easy it is to create a MSH snap-in with B3. I've also created a compile script to do the compilation and implementation of a snap-in too - which you may find useful.

First some background. In MSH, a cmdlet is a simple unit of work. MSH comes with a bunch, but you can add more (typically for some task specific reason). Exchange 12 will for example come with some like New-Mailbox, etc. You have two ways of delivering cmdlets to a user: via an extended shell (using makeshell and creating your own shell) or, new in B3, you use the snap-in feature. I plan to cover make-shell in a separate article.

To a developer, a cmdlet is a bit of code you write to do some task. Because your code will be snapping into Monad, it has to follow some simple rules. Each cmdlet implements a class that derives from a base MSH Cmdlet class. This class over rides one or more of three cmdlet methods: StartProcessing(), ProcessRecord() and EndProcessing(). Finally, you need to decorate your source code with the appropriate attributes to define your cmdlet to Monad and then compile your code. Once compiled, it's ready for deployment (details to follow in a later article).

With Beta 3, a snap-in is just a bit more code - a simple class definition giving some basic information about the snap-in - it's mainly template code (fill in the blanks). This information is then used in the compilation and installation process (in part 2)

Here is the code for a simple MSH Snap-in containing one cmdlet. It's based on the sample in the release notes:
//random.cs
using System;
using System.ComponentModel;
using System.Management.Automation;
using System.Reflection;
[assembly: AssemblyVersion ("1.2.0.1") ]
[assembly: AssemblyTitle ("Randon Numbers") ]
[assembly: AssemblyProduct ("MSH Beta 3 Testing") ]
[assembly: AssemblyCompany ("QA plc") ]
namespace QACmdletSnapins
{
// This class defines the properties of a snap-in
[RunInstaller(true)]
public class QARandomNumberSnapin : MshSnapIn
{
///

Creates instance of DemonSnapin class.
public QARandomNumberSnapin() : base(){ }
///Snapin name is used for registration
public override string Name
{ get { return "QARandomNumberSnapin";} }
/// Gets vendor of the snap-in.
public override string Vendor
{ get { return "QA, Thomas Lee";}}
/// Gets description of the snap-in.
public override string Description
{ get{ return "Contains a cmdlet to generate random number";}}
}
/// An implementation of a random number generator.
[Cmdlet("Get", "Random")]
public class QAGetRandomCommand : Cmdlet{
protected override void EndProcessing(){
Random r = new Random();
WriteObject(r.Next());
}
}
}

I plan to post a better laid out version to www.reskit.net/monad/samplescripts. Looking at this C# program, it starts with standard using clauses, then some important assembley attributes. The snap-in Namespace is QACmdletSnapins, and it defines a single class - QARandomNumberSnapin, over-riding the base MshSnapIn class. There are then 4 public strings (and the attribute) and that's done your snap-in definition.

The Snap-in program finishes up with, in this case, a single cmdlet although you can put multiple cmdlets into a single snap-in. It's called Get-Random, and is implemented by a class called QAGetRandomCommand which derives from the base MSH Cmdlet class. Plus the necesary Attribute to define the cmdlet to MSH.

In terms of writing the cmdlet/snap-ins that's it. It's really very staightfoward! I'll cover compiling and deploying your new snap-in in a future article. Hopefully that's whetted your appetite for more!!

MSH Memo - A Japanese Monad Blog

Although written mainly in Japanese, MSH Memo is another good Monad blog - with some neat ideas. You'll need to work a bit to translate in to English, but probably worth it. Not sure of this guy's name, but he seems to know what he's talking about!

Monad - An O'Reilly Book by Andy Oakley

Along with the release of Monad B3, I've been reading through Monad a new book by Andy Oakley, published by O'Reilly. You can read the Press release about this book here. Although Andy must have forgotten when he wrote the intro, I was one of the reviewers of this book - and I'm pleased to see the book published.

The book is a really good introduction into the basics of Monad. It's short (around 150 pages), provides a great introduction to the langage and to the MSH shell and is accurate wrt Beta 3 (it was written around B2, but so far I've not found anything in the book that does not work in B3). I found reading at the keyboard and trying out the code samples was a great way to learn more about Monad

The book does not do any deep dives, such as details on extending the shell, or how to host Monad in your own application. Andy had written a chapter on extending Monad, but it was not published (and would have been overtaken by events anyway). But as a great introduction to Monad and starting place for admins who want to learn about Monad, this is a good book to have!

Python inside MSH

IronPython is the codename for a beta release of the Python programming language for the .NET platform. And a Japanese blogger has got MS's new beta of Python insider MSH on top of Windows. Turns out it is really pretty easy as his blog entry shows and as summarised below:

Basically, you download the new Iron Python beta from here. The download is a tiny (around 759kb!) zip file. Exract the contents of the zip file into a folder (eg C:\Program Files\IronPython). Once "installed", you load then invoke it like any other scriptable object. For example:

[void] [Reflection.Assembly]::LoadFrom("C:\Program Files\IronPython\IronPython.dll")
$IPEngine = new-object ironpython.hosting.pythonengine
$code="print 'Hello World from IronPython'"
$IPEngine.Execute($code)

What results in the MSH window when you run this code, unsurprisingly, is the text "Hello World From IronPython" is displayed in your console. By itself this is not overly interesting, but it shows that if you do it in Python, you can add this into MSH. Here is an example of this to create a very simple GUI:

#Load Python
[void] [Reflection.Assembly]::LoadFrom("C:\Program Files\IronPython\IronPython.dll")
$IPpEngine = new-object ironpython.hosting.pythonengine
#Create Code Array
$code=@"
import sys
sys.LoadAssemblyByName("System.Windows.Forms")
from System.Windows.Forms import *
f = Form(Text="IronPython Sample")
f.ShowDialog()
"@
#Execute it
$IPEngine.Execute($code)

Wednesday, January 11, 2006

MSH Beta 3 - Registry Changes

I've been looking at what MSHB3 does to the registry on installation. The installation program creates a new key HKLM\Software\Microsoft\MSH\1\ with two subkeys: MshEngine, and ShellIds, illustrated below (click on the pic for one full size):

The \MshEngine subkey has 5 Reg_Sz value entries:

* ApplicationBase - where you load Monad
* ConsoleHostAssemblyName - S.M.A.ConsoleHost Assembly
* ConsoleHostMOduleName - S.M.A.CnsoleHost DLL file
* MshVersion - "1.0!
* RuntimeVersion - the version of .NET needed, V2.0.50727

The \ShellIds key has a subkey per Shell. By default, there's just one shell and the subkey is Microsoft.Management.Automation.MSH, which has two Reg_Sz value entries:
* ExectionPolicy => how to run scripts
* Path - the path to Msh.

If you create new shells using the Make-Shell make kit, you end with additional subkeys under ShellIds. Additional registry entries are used to support MSH snap-ins, which I plan to cover in later blog posts.

MSH Beta 3 - Coming Really Soon

As a Monad MVP, MS has kindly sent me a pre-release of the shortly to be released Monad/MSH Beta 3. This beta, which should be posted to the web any day now, incorporates a new MSH Snap-in technology that allows you to create then add snap-ins to existing monad shells (i.e. MSH.EXE).

I've built the sample snap in - and it's really pretty easy. The snap-in approach adds a little complexity to the writing of custom add-ons but I think it's the right approach. I would expect to see a variety of 3rd party snap-ins to emerge and a vibrant open source community around this as well.

To support my playing around, I've written some comilation/build scripts - I plan to post them as well as more blog entries around Monad. As quickly as I can get the time to play and write.

So if you are using Monad now, you should ensure you have the RTM of the CLR installed (while waiting, you can also use the updated version of MSH that is tarteed at the .NET 2.0 CLR). Also, take backups of any customised profile.msn files you have.

Note also: B3 installs at slightly different locatios in both the registry and filestore than for b2, so if you have any location sensitive scripts which reference these, they need updating. The MSH B3 installer now installs Msh by default to: %ProgramFiles%\Microsoft Command Shell\v1.0, Note the "\v1,0 at the end!"

Enjoy Monad Beta 3.

Monday, January 09, 2006

Db.etree.org,Grateful Dead and Monad

As many of you may (or may not) know, I have a large and growing collection of live shows by the Grateful Dead and some of the related bands (Jerry Garcia Band, Phil and Friends, Bobby Weir, etc). Over Christmas, I had a huge re-organisation of my Dead/Jerry Collection - making a back up being top of my priority list! Also, with the removal of the lossles sound board recordings from the Live Music Archice, I wanted to ensure I could gather what I could before it goes away. As I listen to these shows, I'm finding some are of really very high quality. Some of the sbds are CD quality for sure - so rediscovering some of these shows has been a pleasure.

I also started cataloging my colection up to Etree. I've got all my 1960's Dead, some early 70's Dead and some Jerry - around 200 hours catalogued thus far with a lot more to upload. And if there's a show you want, B&P works for me!

So (and I know you were waiting for it!) here's the Grateful-Dead to Monad link...

To manage this collection, I've started writing some Monad scripts to process the collection. The first script is count.msh. this goes through the collection and reports on what's there, based on folder naming conventions and the presensnce or absence of flag files (empty files with a specific name).

I use an Etree folder naming convention that contains details of the show in the folder name. For example a folder name matching "*.sbd*.*" or *.aud.*.* contains soundboard or audience recordings, folders ending with ".shn?" or ".flac?" contain shn and flac files respecitively. There are a few more conventions I use - you can see these in the code. En each folder I have a few Flag files used that indicate the state of this show, including whether I have a CD backup of this show and whether I've checked the MD5s to ensure my copies are sound. I've also started adding a flag file to indicate if this show has been posted to db.etree.org.

This is count.msh:

#count.msh
#Count the Dead and Jerry Shows in my archive

# Some constants:
# $DeadShowBase - folder at top of gd shows
# $JerryShowBase - folder at top of jerry shows
# $BobbyShowBase - folder at the top of bobby shows
# $PhilShowBase - filder at the top of the phil shows

$DiskRoot = "G:"

$DeadShowBase = $DiskRoot + "\gd"
$JerryShowBase = $DiskRoot + "\Jerry"
$BobbyShowBase = $DiskRoot + "\bobweirshn"
$PhilShowBase = $DiskRoot + "\philshn"

# Announce Ourselves
"Count.msh - v 1.0.5"
"Count My Shows"
< "---------------------------------"
"Dead Show Base : $DeadShowBase"
"Jerry Show Base : $JerryShowBase"
"Bobby Show Base : $BobbyShowBase"
"Phil Show Base : $PhilShowBase"
"---------------------------------"
"" # Count the Dead shows
$Dir= ls $DeadShowBase | where {$_.mshiscontainer -eq- $true}
$DeadShows=$Dir.count
#Create subsets based on names of the folders
$deadsbds=$dir | where {$_.name -match ".sbd" }
$deadbrkn=$dir | where {$_.name -match "broken" }
$deadpart=$dir | where {$_.name -match "partial" }
$deadauds=$dir | where {$_.name -match ".aud" }
$deadunkw=$dir | where {$_.name -Match ".unk"}

#and see how many have the md5ok's file?

$DeadMD5Checked=0
foreach ($d in $dir)
{
$sn=$d.fullname + "\md5check_ok"
$md5ok= ls $sn -ea silentlycontinue
if ($md5ok )
{$DeadMD5Checked++}
}

#Display results
"Grateful Dead Show Summary"
"--------------------------"
"Total shows: $deadshows"
"Soundboards: $($deadsbds.count)"
"Auds : $($deadauds.count)"
"Unknown : $($deadunkw.count)"
"Partial : $($deadpart.count)"
"Broken : $($deadbrkn.count)"
$DeadPctChecked=($DeadMD5checked/$DeadShows).tostring("P")
"MD5's check: $DeadMD5checked ($DeadPctChecked)"
""

#
#next count the Jerry shows
#
...omitted to shorten the listing # Display Summary
"SUMMARY"
"-------"

$totalshows= $DeadShows+ $JerryShows+$PhilShows+$BobbyShows
$pctchecked=($Jerrymd5checked+$DeadMD5Checked+$PhilMD5Checked+$BobbyMD5Checked)/$totalshows
$pcs=$pctchecked.tostring("P")

"Total Shows: $totalshows"
"MD5s OK : $pcs"
$totalsbds=$Jerrysbds.count + $deadsbds.count+$philsbds.count+$bobbysbds.count
"Total Sbds : $totalsbds"
$totalauds=$Jerryauds.count + $deadauds.count+$Philauds.count+$bobbyauds.count
"Total Auds : $totalauds"

# The End

In the next blog post, I plan to show how I upload this to my ftp server using Monad

Friday, January 06, 2006

PC Pro's New Column - Starting .Net

I'm kind of excited about a new column now appearing in PC Pro (the UK's largest computer magazine). The main reason I'm excited is because I'm the author! The column, called Starting .NET, is now on PC Pro's web site. Well the first column is now online. Technically, the column appears in the February edition - but as PC Pro's February issue was published mid December, my column is now on the web.

Thursday, January 05, 2006

A Monad / MSH IRC Bot

This post has been around for a while, but it's about an MSH Based IRC Bot. Even if the idea of IRC bots fill you with (security) horror, this is a pretty neat post. It's also a good one for those of you wanting to play with Monad and networking.

Wednesday, January 04, 2006

PCWorld.com Discovers Monad

PC World appears to have discovered the existance of Monad! Wonders will never cease.

Read about about it in Eric Larkins's article: The Return of the C:\ Prompt?

Friday, December 30, 2005

Windows Desktop Deployment Resource Kit

As readers of this blog will know, I've done a lot of desktop deployment training over the past few years. I've presented the TechNet Deployment Assistance Program (DAP) Workshops and conducted training for MS Partners in the Business Desktop Deployment Solution Accelerator (BDD SA). And from January, I'll be doing BDD 2.5 training here in the UK. One constant request I've heard was for more guidance on the whole deployment story.

There's a lot to deploying Windows and applications in any sort of consistent and repeatable way to virtually any size organisation! Those of you who have mastered this subject will have done so by a combination of a lot of Google searching, plenty of playing about, and making loads of mistakes! The information on how to do this is "out there", but I know I've found it less than easy to put it all together.

I've just received a copy of Jerry Honeycutt's Microsoft Windows Desktop Deployment Kit thanks to those very nice people at MS Press (and for organising the copy, thanks especially to Martin Del Re - one of the best men I've ever worked for). This is an excellent book!! If you are deploying, or planning to deploy, a Windows platform to your organisation you should buy a copy - and maybe even one for each person on the project!

The Book covers planning, configuring, distributing and managing the deployment - and comes with some tools on an attached CD. Each chapter comes with good technical detail plus great practical tips and tricks. And by organising the book around the deployment cycle, it is a useful reference manual throughout the deployment life cycle.

Tuesday, December 27, 2005

Speeding up MSH Load time (redux)

Last summer I posted some directions on now to speed up the load time for MSH. As I reported, B2 setup does not generate native code for the MSH assemblies, resulting is a performace hit when MSH starts up. Directions for doing fixing this given in my earlier post need changed slightly if you are using the .NET Framework CLR V2.0. The (now) correct command to run is:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\NGEN install "c:\Program Files\Microsoft Command Shell\msh.exe"

Run this comannd after you have MSH all installed and running - and start up is a LOT snappier. The lack of the setup not doing an ngen is known and is meant to be fixed for RTM.

Friday, December 23, 2005

I've been a bit busy

It's been a very hectic December. I finished off the UK DAP tour, and spent a week in Copenhagen doing the TTT for the Desktop Deployment Planning Service training we'll be offering in the new year. I've got a bunch of things I've meant to blog about, so over the coming days, these will get posted!

Scripting with the Microsoft Shell

Microsoft has launched a Script Center page for MSH. Scripting with the Microsoft Shell page brings all the magic of The Scripting Guys to the Monad fold! Bookmark this page!

EULAlyzer

The EULAlyzer is a tool that examines EULA (End Userm License Agreements) and provides a detailed listing of possibly interesting words and phrases. The idea is that it can help you to determine if the software you're about to install displays pop-up ads, transmits personally identifiable information, uses unique identifiers to track you, etc.

There are two versions of EULAlyzer - a free version and a pro (non-free). The free version os a 1.7mb download. The Pro version adds some features such as EULA-Watch (detects most license agreements at install) and costs US$19.95. The Pro version also claims to provide happiness (but the small print does state: Note: Happiness is possible because of the extremely lovable nature of Otto the Owl, your EULA-Watch protector who sits in the system tray. However, happiness is not guaranteed. (Although we'd like to think that he'll bring a smile to any person's face!). And here I thought you just needed a penguin to provide happiness!

Friday, December 02, 2005

No Vista Beta 2 in 2005 - ZDNet UK News

According to ZD news, Microsoft has slipped Vista Beta 2 well into 2006. Additionally, having issued just one CTP (and having cancelled a 2nd allegedly due to poor quality) MS is apparently chopping the CTPs totally. I find this a shame as CTPs were a good idea to show progress.

At the same time, MS is still sticking to their plans for Vista's RTM by next summer. Details on how they will achieve this remain unclear. Earlier rumours were that a RC would be skipped but I've see nothing to indicate that this is actually the case.

In MSF, we have what some refer to as the iron triangle - this balances features, timescales and cost. Given the current schedule slips, the iron triangle suggests that if you want to keep to timescales, you have to either drop features or increase costs. MS seem to be trying to keep timescales, reduce cost (or not increas it) yet still keep all the features. Something has to give.

By slipping B2 to the new year, MS is putting real pressure on the team to hold end-dates. And without either removing more features, I can't see how they can do it. I don't see how putting more resources in now would do any good. The only alternative is to ship a buggy product, which would be a great plan.

We live in interesting times.

Saturday, November 26, 2005

Technet Deployment Assistance Workshops

I am currently engaged in a small UK TechNet Roadshow tour - doing 4 of these in Manchester, London, Edinburgh and Birmingham. The first two events (Manchester and London) have already run - Edinburgh is next week and Birmmingham is in December. I think there's still room on both events so come along if you can.

The event is divided into two days. The first day is primarily around deployment of the XP platform, while day 2 is around deploying applications. Since attendees can go on one or both days, I'm doing some platform discussion on day 2 and some application discussion on day 1 to cater for those who come for only one day. There's a huge range of things to cover around unattended build and deployment, application compatibility, group policy, deployment of Office itself, application packaging. There's a week's worth of material, jammed into two days - and despite the title of the event, I do all the work, while the delegates listen and learn.

To support this event, I have uploaded some DAP related content to my website. There are slides from past events, but the soft copy of the curreent slides are not there yet. Mainly because they are too big (over 100MB zipped). I'm working on a solution - I'll post more details here when I've found a work around.

Friday, November 25, 2005

Passed 74-139!!!

I've just taken, and passed, the 74-139 exam. Woo-Hoo!! The exam itself was straightforward enough - basically it required you to know the Business Desktop Deployment Accelerator Standard Edition. The exam probed for understanding of the adapted MSF methodology, knowledge of how BDD SA installs (i.e. what goes where), some experience with the tools involved (including WinPE) and some practice with BDD .

This was the first Partner Competency exams I've taken. The idea, of these exams, says Microsoft, is to "validate that individuals in a partner environment are efficient and capable of deploying multifaceted IT solutions to their customer with skills across multiple Microsoft products and technologies. Interestingly enough it would appear that although charged the same, these exams do "not qualify an individual as a Microsoft Certified Professional. Shame really - somehow the concepts of MCP and Partner competency seem to overlap greatly.

So partner competency exams are here. And this is a good thing, it's a way of demonstrating competency. I'm looking forward to seeing more of these exams. I'd just like some more joined up thinking from Microsoft around the exams.

Windows "Monad" Shell Beta 2 Documentation Pack

If you want to learn more about Monad, why not take a look at the Windows "Monad" Shell Beta 2 Documentation Pack. It's got up a good getting started guide (80 pages!), plus the HOLs from PDC. Very useful!

Windows "Monad" Shell Beta 2 Documentation Pack

If you want to learn more about Monad, why not take a look at the Windows "Monad" Shell Beta 2 Documentation Pack. It's got up a good getting started guide (80 pages!), plus the HOLs from PDC. Very useful!

MFC applications leak GDI objects on computers that are running Windows XP

After re-installing XP on my Laptop (due to a disk crash), I got bit by this bug in XP SP2 again. I still can't quite work out why, when this bug was fixed in XP SP1, it was both re-introduced with SP2 and is a 'request only' fix. Just like the fix for the bug in Virtual PC that I described earlier, you have to in effect, pay just to talk to some one to resolve the issue. I got hit again by this latter bug - standing on stage, presenting a workship for Microsoft and being unable to do anything but reboot and hope for the best.

Of course, if the fix is for a bug, MS is supposed refund the money. But I resent the need to pay for a support call around a documented Microsoft bug. I also don't feel good about being forced to take the risk that MS really IS going to refund the money as well.

Anyway, I need these fixes, so I bit the bullet, and called MS Support. It took just over 1.5 minutes to navigate through the ear candy and the phone menu to reach someone. Unfortunately, the first words out of her mouth were "our systems are updating and we can not create a call - please call back later".

I don't care about their system issues, I just want the hot fixes. MS care abour "CPE" - Customer/Partner Experience - well today, they've scored a big fat zero and I look forward to having a survey to fill out awarding them that score. I've got Windows XP SP2 loaded, and I am getting hit by two known and documented bugs which MS is making it hard to resolve - this is not a good way to increase CPE.

Wednesday, November 16, 2005

More on Monad with RTM .NET Framework

In a recent blog post, I pointed out that you can now run an updated version of Monad on the RTM version of the .NET Framework. The de-install and re-install is flawless - and aside from the size of the Framework download, it's pretty quick. However, the first time execution of Monad generates a tonne of errors, due to the new code-signing policy. IMHO, this is a setup bug - and while I can live with it - it sure is ugly!

Virtual PC 2004 and any virtual machines may stop responding after the computer resumes from hibernation

As a heavy VPC user on my laptop, I've seen the problem with VPC not responding after the laptop resumes from hibernation. And there's a KB fix: Virtual PC 2004 and any virtual machines may stop responding after the computer resumes from hibernation is the KB article.

Unfortunatly this appears, at first sight, to not be a free update. In order to get the fix, it appears that you have to agree to pay £35 (plus VAT) before you can even DESCRIBE the problem to Microsoft. While I appreciate MS's need for extra income, this is poor: a known bug, a known fix, and I still have to pay just to get it? Sure, the fee should be refundable - but why should I have to pay up front (and trust Microsoft later to refund my fee)??

Virtual PC 2004 and any virtual machines may stop responding after the computer resumes from hibernation

As a heavy VPC user on my laptop, I've seen the problem with VPC not responding after the laptop resumes from hibernation. And there's a KB fix: Virtual PC 2004 and any virtual machines may stop responding after the computer resumes from hibernation is the KB article.

Unfortunatly this appears, at first sight, to not be a free update. In order to get the fix, it appears that you have to agree to pay £35 (plus VAT) before you can even DESCRIBE the problem to Microsoft. While I appreciate MS's need for extra income, this is poor: a known bug, a known fix, and I still have to pay just to get it? Sure, the fee should be refundable - but why should I have to pay up front (and trust Microsoft later to refund my fee)??

Monday, November 14, 2005

Netcraft: Microsoft Update Will Remove Sony DRM Rootkit

The firestorm over Sony's use of root kit technology continues with news from Microsoft (courtesy of Netcraft in this case) stating that they are going to issue updates to their Malicious Code Removal tool to detect and Remove the Sony DRM Rootkit. Good news.

I'm all for the protection of intellectual property. I make a small bit of money writing (books and for technical magazines) and am behind Sony on the broader issue of protection. Where I disagree is over how this to be achieved. And for the avoidance of doubt, , installing a root kit is simply wron. So wrong as to wonder how Sony ever could have considered it OK! Their ham-fisted attempts to 'help' users out once the news leaked reeks of corporate arrogance taken way too far. I can not understand why Sony want me to agree to being on Sony's marketing lists in order to remove a root kit they installed without my knowedge or permission.

In my view, Sony should publically apologise for this action and should take ALL possible steps to remove all the damage. If necessary, they should be required legally to be more upfront with consumers. An given the strong arm tatcics the motion picture and recording industry uses against file sharers, Sony should face similar stong penalites: the maximum fines possible and execs facing a real possibility of going to gaol.

This issue also raises the issue of the power of blogs. Mark's original article is just 2 weeks old. Last Friday evening, a Google search for "Sony Rootkit" returned 3 million or so hits. By Satuday, this had grown to over 5 million, while today it's at 9 million. A huge PR disaster to say the least. In two weeks, Sony has turned into a pretty hated company - I've thus far not seen anyone defend Sony's actions. But it's clear that, in today's world, simple technical articles like Mark's can cause a major PR firestorm. I'm willing to bet that someone at Sony (or some other associated legal firm) is burning midnight oil trying to working out if and how they can sue Mark for Sony's losses.

The sooner Sony apologise in public, the better. In my personal opinion of course!

Saturday, November 05, 2005

Monad Beta 2 on .NET Framework 2.0 RTM

Microsoft has now begun shipping .NET Framework 2.0 (and Visual Studio 2005), even though the formal launch is not till Monday Nov 7th. If you want to run the RTM version of the .NET Framework (e.g. to run Visual Studio 2005 RTM) and you want the latest version of Monad, you'll need an updated version of the latter which you can download from here (for X86). If you are using X64, you can get the X64 Monad drop here.

This drop of Monad is the nearly the same as released earlier (but targetted towards an earlier version of the CLR). The only change is that the "Restricted" ExecutionPolicy is the default, which is discussed in the release notes.

Wednesday, November 02, 2005

TechNet Magazine - HTML Help Download

The latest version of TechNet Magazine (November/December 2005) is now available on the web. HELPfully, MS has also made and HTML Help version avaiallble for download. I wrote an article on Monad which is published in this edition.

Sunday, October 30, 2005

Joint Status Report on Microsoft's Compliance with the Final Judgments : U.S. v. Microsoft Corporation

For any company, to be accused and then found guilty of illegal anti-trust practices has to be hard. The Microsoft anti-trust case must be particularly hard. I've seen first hand some of the issues raised by the consent decree issued 4 years ago. And I continue to feel that MS has been a bit hard done by.

The anti-trust case has been going on for a long time. And that makes the recently published Joint Status Report on Microsoft's Compliance with the Final Judgments : U.S. v. Microsoft Corporation interesting reading. It's very clear that Microsoft is doing a significant amount of work to comply with the judgement. Reading the progress report, I can't help feeling MS is doing a great job and taking it hard on the chin. Documenting the network protocols is a really hard job. I've done thousands of hours of Netmon tracing and analysis to contribute to my TCP/IP book efforts and I've written enough technical documentation on network protocols to know just how hard this is! The status report gives some praise where's it's rightly deserved.

The most interesting part, for me, is the discussion of Project Troika. The consent decree "... calls on Microsoft to create a series of Network Monitor (or "NetMON") protocol parsers and to use these parsers in conjunction with other proprietary components to compare the information in the documentation against actual client-server network traffic." This sounds at first sight like Netmon+++ and I'd love it! Please, please, please?!?!?!

Unfortunately, Troika has proved to be somewhat difficult to deliver. As the progress report says at the time Microsoft agreed to the Troika project, nothing like it had ever been undertaken. Quite frankly, Microsoft did not fully appreciate the scale, complexity, cost, and duration of the project. Further, Microsoft overestimated the capability of existing technologies to meet the requirements of the effort. This is unfortuante. but I can certainly understand the difficulties involved.

I'm sure Troika is going to be of great benefit to all us die-hard Netmon fans. FWIW: I want Troika!! Whenever it comes! And if anyone at MS is reading this, can I get onto the beta?? Like now??

Wednesday, October 26, 2005

MS Releases Details of New Certs

Thanks for my good friend Lorenzo Barbieri, I see that Microsoft has at long last released details of the new certifications. See http://www.microsoft.com/learning/mcp/newgen/

In the FAQ, you can see that MS have taken trouble to avoid actually saying that the current certs are dead, have no life and are now just being swept away. While you'll still be an MCSD, etc - those certs are no longer much use, since MS will be evangelising the new certs vs the older ones.

[sent from the train!]

Wednesday, October 19, 2005

Monad and the command console

One of the things many old command line junkies got used to (in the MS environment anyway) was the CON: pseudo-file. Doing a "Copy CON: " is a common action in cmd.exe (and command.com) which most admins will have used at one time or another. Monad however, does not implement these CON: pseudo file. To get around that, based on a newsgroup post from "/\\/\\o\\/\\/", I've written a sample script (CopyfromConsole.msh) which I've added up on my Monad Sample Scripts page.

The script also defines an alias (copycon), and you can add both to your profile.msh. This script does wimp out a bit, and uses out-file to prompt for the output file name should you forget it. I should do a better job of prompting - maybe in Version 2!

Firefox hits 100m

I use Firefox as my default browser. I have an addin that places a counter at the bottom of my browser window that counts the number of copies of FireFox downloaded to date. Well a few minutes ago, the count hit the ONE HUNDRED MILLIONmark!!

Microsoft's Business Desktop Deployment Solution accelerator

The full name is a mouthful, I prefer MS BDD SA, or just BDD 2.5. Whatever you call it, it's cool technology! The idea behind BDD is to simplify the deployment of the business desktop through the use of automation and tools. BDD comes in two flavours: a "lite touch" approach based around disk imaging tools such as Ghost and a "zero touch" with deployment via SMS's OS Deployment Feature pack, and including monitoring via MOM. Zero Touch Installation (ZTI) can also lead to Zero Touch Provisioning (ZTP), which adds a self service Share Point Portal site where users can request provisioning services (e.g. be added to a group, request an application, etc. ZTP delivers the request by using Biztalk and Exchange. NB: There are some AD requirements too! ZTP uses pretty much the entire Microsoft product set in a compelling way. But in order to deliver ZTP, you have to deliver ZTI first.

BDD 2.5 is a minor upgrade in terms of both the product and the training. If you know BDD 2.0, you'd be very familiar with BDD 2.5. There is updated documentation, of course, and by the bucket load - IIRC, the full print out set runs to around 1000 pages! The BDD process model is updated with a new Feature Team, and more guidance around the centre - the updated process wheel is updated, but familiar. The training is slicker, with most of the FGO (firm grasp of the obvious) fluff removed. The course offered in Europe is a combined 4 day technical/management/sales course, with 3 days of labs and a day of other stuff. The labs are based on the scenario, but improved and extended to cover both MOM monitoring and a working example of ZTP. The course discusses both lite and zero touch - thus there are no longer separate courses and you get to do labs on both approaches. As an aside, the labs are tough and long, and as at BDD 2.0, there is a premium to both accurate typing and doing all the steps in the correct order. As I discovered!

Another new thing with BDD 2.5 is the partner competency exam, 73-139. Known more fully as Deploying Business Desktops with Microsoft Windows Server 2003 and Microsoft Office 2003, the exam coves the lite touch stuff only. See the MSL site for an exam syllabus.

If you are a MS partner who has attended this training before, there is still some value from attending the new course - if only to get some hands on with MOM and Zero Touch. If you are a MS partner who has not seen this stuff - get yourself booked onto this as soon as slots open.

My understanding is that MS will start to run courses in earnest by the end of this year, with full scale rollout starting in January. The training to be offered here in the UK will be an instructor led, 3 day technical session for technical staff, supplemented by additional training for sales and business management. I am hoping we can also offer this to the wider customer base, as it's a LOT of fun and uses an awful lot of the technology - some I'm not as familiar with as I'd like!!

A note for MCTs and MVPs: traditionally, the BDD 2.0 courses were not always completely full. There have usually been open slots which we could usefully fill. If you have any interest in attending this training, then let me know by email.

Sunday, October 16, 2005

Microsoft ships MCE Update

Microsoft has shipped a major software update for XP Media Center Edition 2005. Known formally as Update Rollup 2 for Windows XP Media Center Edition 2005, this update provides several new features:

  • Xbox 360 Extender functionality - access stuff through any Xbox 360 game console in the house.
  • Away Mode - instant on/off functionality for MCE.
  • DVD changer support - integrated support for external DVD changers allowing you to watch movies and manage DVD selections from the Media Center interface.
  • DVD-burning improvements - updates to the Sonic DVD burning engine improves the performance and capabilities of DVD burning.
  • Additional HDTV tuner support - provides support for up to four TV tuners. You can now utilise two NTSC (analog) capture boards and two ATSC (digital) capture boards.

For more information on Update Rollup 2 see the MS web site page

Saturday, October 15, 2005

Monad Information and Where to Find More

In comment to a recent blog post, Mark asked where to go for more information about Monad, particularly newsgroups. A great question! When Microsoft released Monad Beta 2, they moved the discussions from a private beta newsgroup to the public newsgroups carried on msnews.microsoft.com and elsewhere. Specifically, MS moved all Monad discussion to the microsoft.public.windows.server.scripting newsgroup. You can get this group on either using NNTP from msnews.microsoft.com, or via Google groups.

Thursday, October 13, 2005

MS Release VHD Format

Microsoft has now released the specification of the Virtual Server and Virtual PC VHD disk formats. This includes details of how to read and modify the contained data. NB: Full access to the detailed specification is available by signing the Virtual Hard Disk Image Format Specification License Agreement.

Wednesday, October 12, 2005

A Word to the Spammers

This is a note to the the spammers that are clogging up my mail box (to the tune of thousands of junk mails per day). I do not want sex/porn (and find most of those mails quite offensive), I do not need cheap drugs (I get my drugs free on the NHS), and I do not want a fake Rolex (I have the real thing thanks very much). And as to the stock tippers: if I were Allixon International, I would be concerned about the tips that I am getting by the bucketload - these must be against SEC regulations. The advice is simple: I will never buy products advertised this way, and will go out of my way to boycott the firms "advertising" in this way. Perhaps sending all the spam back to them will help them to get the message - and that message is simple: SPAM sucks.

Saturday, October 08, 2005

Another Day Another Wiki to Edit!

I've just stumbled over The New MSWiki Site. The site is a wiki where you can add details about MS products, or point to other wikis and related information. At present there's not a great deal of content there. So why not come on over and add some!

MVP Award!!!

I'm breaking out a good bottle of wine - I've been re-awarded an MVP award - this year for "Admin Frameworks" (aka Monad). I'm as excited about this award as I've been for many years. In fact, I'm super excited!!

Thursday, October 06, 2005

Google formally declares war on Microsoft

This is going to be interesting. The Inquirer reports thatGoogle formally declares war on Microsoft and is to launch free online office functionality.

If I were MS, I'd be scared about this. I can't for the life of me work out the business model Google is thinking of, or see how they'll get around the security and privacy concern. But this is a bold move - and is going to be shaking some pretty tall trees fairly hard in Redmond. And if Google can launch this before MS launch B1 of O12, it will further spike Redmond's guns.

Wednesday, October 05, 2005

Google and Sun tie the knot

This article on Google and Sun from silicon.com is interesting. As MS continue to promise new stuff and demo early carefully crafted demos of stuff (O12, etc, etc etc), Google are delivering. If I were Microsoft, I'd be worried about this.

MSF v3.0 Resources and 70-301 exam (ex-MSF Practitioner exam)

My good friend and fellow MSF fan Lorenzo Barbieri has put together a MSF Resources page. If you are an MCT or interested in MSF - take a look!

And in an earlier post, I suggested Lorenzo was an MVP which was unfortunately inaccurate. But if and when MS get around to appointing MSF MVPs, he sure should be!

BMI - Service (not) redux

On board BD 679 ABZ-LHR. After my earlier post, the service thus far just adds to the misery. The flight is nearly empty - maybe 20 passengers total. But the catering failed to turn up, thus I can't even BUY a (stale, appalling, over priced) sandwich.

When I made my displeasure known to the flight crew, they were highly apologetic. Turns out they get 6% commission, so the lack of food also hit them. Then the SCA, Ricardo Freitas reached down and handed me a tuna salad. He was genuinely sorry about the issue, and demanded I take the salad and refused payment. His colleagues: Chrissie Juniper, Sheelie Pirie, and Beccie Fuller all gathered around and were equally nice - and I had to argue to pay for a drink. As ever on BMI, service in the air and service on the ground are worlds apart.

So while I'll probably never fly BMI again, it's refreshing to know that at least some folks understand customer service.

[in the air - again]

Tuesday, October 04, 2005

British Midland - And Why I'm NEVER flying them again

It's been a long few weeks. Two trips to the US, a suspected heart attack en route (complete with flashing red lights, paramedics, etc) and some pretty awful flights and flight connections not to mention some hard work in each continent in between. I finally got back home at midnight on Sunday. On awaking and logging on (at 11:00 on Monday), I found I had been booked on a BMI flight at 15:00 on Monday up to Aberdeen. It was a challenge to get to LHR on time, but I made it - just. Once in the air, the steward came around and offered me food/drink - and I realised that I'd not really eaten proper mean since Saturday night prior to leaving Seattle. So I ordered a sandwich and a Diet Coke (well Pepsi since BMI do not stock real Coca Cola). I was asked for £4.00 and I handed over my credit card. But this was refused since the amout was under £5.00 (although I could buy some perfume to make up the charge to over £5). Ok - so,m following a bank machine run at LHR, I handed over one of the £20 notes - but they refused it since they did not have change. So I returned the sandwich and drink and went hungry and thirsty.

So today, after a very hard bit business presentation, I arrived back to Aberdeen Airport to find that BMI would not get us on the earlier flight (even though it was 25 mintues from departure and we had only carry on). Money was not the issue - but due to "regulations" they would not rebook us since we were within 30 minutes of depature. But after asking, I was tolkd I would be admitted into the BMI lounge as as an American Airlines Platinum card holder (I even showed the clerk my card to double check). Except no one told the lounge that - and the lounge person was fairly adamant that we were not allowed in since we did not have BMI cards. We eventually paid to get in (my colleague has a card that allows him to buy our way in) but the lounged lady was about as unhelpful and hostile as you could imagine. I wonder if she's ever heard of customer service?

In the end, BMI's entire attitude just plain sucks. I'm willing to buy my food (although not all that happy!), but I need the ability to pay. I am content to buy my way in to the lounge, but I need to have expectations managed properly. I am so angry that I refuse to fly BMI again and am in the process of changing my will to ensure that should I die, my remains will not fly in a BMI aeroplane. I suspect that BMI will ignore my anger, and will just laugh and note they had my money. But never, ever, again will I fly BMI. Even dead, there are airlines better than BMI.

Updated Monad Shell Beta 2 Documentation Pack

Microsoft has posted more documentation. Go here for the Windows "Monad" Shell Beta 2 Documentation Pack

Monday, October 03, 2005

Customising Monad via Profile files

Monad, or specifically, msh.exe, implements a set of cmdlets, providers etc. These are pretty basic, but you can extend and customise Monad easily through the use of profile scripts. There are up to four profile files which are loaded when you run MSH.exe:

1. "All Users\Documents"\MSH\profile.msh
2. "All Users\Documents"\MSH\<shellid>_profile.msh
3. "My Documents"\msh\profile.msh
4. "My Documents"\msh\<shellid>_profile.msh

The "All Users documents" is dependent on where you installed the OS, specifically %SYSTEMDRIVE%\Documents and Settings\All Users\Documents\MSH. Likewise, "My documents" is at %USERPROFILE%\My Documents\MSH.

The <shellid> field in the 2nd and 4th profile, is a name generated by Monad to uniquely identify a specific shell. The default name, which is contained in the $Shellid variable, is "Microsoft.Management.Automation.msh". At first sight this is a little odd, but there is a logic to it. In the current builds of MSH, you have to use the make-shell command to extend monad with new cmdlets and providers. By doing so, you create a new executable (mymsh.exe for example), which would have a different name (e.g. Microsoft.Management.Automation.mymsh). This means you can have shell specific profile files - for example to provide some functions on top of custom developed cmdlets.

In the early builds of Monad, I tended to just customise the "my documents\profile.msh". But more recently, I've created my own profile (profile.tfl.msh) and I run this from within the profile.msh. That way, when I install newer versions of Monad, I don't have to worry about losing my customised settings - I just add one extra line to the default profile.msh and all my customisations are included.

One small thing about executing private scripts from within a profile.msh. Whenever you run a script, by default any variables, functions, etc created by that script are recycled when the script is completed. You can do that's called "dot-sourcing" to enable the customisations in our private profile script to be added to your current context. Whenever you run a script and start the line with a dot (followed by a space), the results of the script are added to your current scope. Thus typing "profile.tfl.msh" results in no functions, variables etc being available once the script runs. But by typing ". profile.tfl.msh", my Monad customisations are available in the msh.exe shell. The four profile files noted above are all dot-sourced.

These features are some what more complex than you have in CMD.EXE (and most Unix shells). But they do provide for considerable flexibility in terms of configuring and extending MSH. They are worth playing around with.

[On The Plane - via Email]

Monad on Windows 2000

I was chatting to a fellow MVP last week about Monad (actually I chatted with a lot of MVPs about Monad, but that's another story), and he wanted to be able to run Monad on Windows 2000. His problem was that the installation did not seem to work.

The first suggestion include foot-printing the install on a supported OS, than manually installing on Win2k. This can be somewhat time-consuming unless you have the right tools. An alternative is to use the WIX tool kit, specifically dark.exe, to work out what is being installed where. Dark.exe creates an XML file that shows all the files, reg keys, etc generated by installing Monad.

But at the end of the day, this is probably a fairly pointless exercise as Windows 2000 does not have the necessary API support to enable Monad to run properly. One specific example is Monad's use of the Attachment Execution Services (added in XP SP2 and later), which Monad uses to work out where a script came, so that the signing policy can be properly enforced.

The Monad product team suggest that while parts of Monad would run, some parts are likely to either crash or not work at all. So if you want Monad (and what admin doesn't??), you'll have to move on to XP SP2 or later.

[Written on the aeroplane, sent via email]