James O'Neill's Blog

June 30, 2007

I wonder if my Laptop’s faulty ? Troubleshooting Vista’s sleep and hibernate.

Filed under: Uncategorized — jamesone111 @ 4:45 pm

I’ve been pretty pleased with this Dell of mine. But a few days ago it began  refusing to go into Sleep mode.

Since I use sleep quite a lot this was, frankly, a darn nuisance. Saving and Reloading 4GB of RAM is actually slower than booting the OS, so I’m not the fan of hibernation I once was. If you look at Vista’s scheduled tasks, you’ll notice it does a bunch things on boot which means it can be a bit sluggish if you go that route. I tried unplugging every bit of hardware I could. No difference. I hadn’t installed any new software between sleep working and the machines new found insomnia. I was thinking I’d double check my data backups and then re-install (bad troubleshooting) when, yesterday, Sleep started to work again.

This morning I got my laptop out and when to start it up. Nothing. Totally flat battery. Ggrrrrrr.  With the power plugged in it  booted with Vista’s “I wasn’t shut down cleanly” screen.

This is on of those times to have a look in the event viewer.  What had happened between 18:15 last night and 09:00 this morning ? Application log. Nothing. Security log SMS logged on at 20:38. Eh ? I’ve got an alibi ! I was in a restaurant having dinner with some of our community leaders – the computer was in my car. Application log. 20:38. Network start up messages (and finding no cable connected). Group Policy couldn’t contact a server, DNS, DHCP, Time Service all failed to connect. Then this

Source:        Microsoft-Windows-Power-Troubleshooter
Date:          29/06/2007 20:38:21
Level:         Information

The system has resumed from sleep.

Sleep Time: 29/06/2007 18:13:25
Wake Time: 29/06/2007 20:38:02

Wake Source: Device -ACPI Lid

OK. The system woke at 20:38 but what’s this “Device – ACPI lid”. That says the lid was opened – I could accept this if the car was bouncing around but it had been parked for nearly 2 hours and it was going to be parked for another hour and a half. The last event is logged at 22:11

Log Name:      System
Source:        Microsoft-Windows-Kernel-Power
Date:          29/06/2007 22:11:21
Level:         Information

The system is entering sleep.

By 22:11 I driving home. Was there something as the computer sat in the boot (trunk) which stopped it hibernating. Could a faulty lid switch be to blame ?  I can foresee a lot of trouble trying to find out. At least Vista’s event viewer is a real improvement on what we’ve had up till now and makes that side of it fairly easy.

This post originally appeared on my technet blog.

June 29, 2007

Announcing the Virtual server Res-Kit and a great tool.

Filed under: How to,Virtualization,Windows 2003 Server — jamesone111 @ 6:07 pm

The tool is VMRCplus – an alternate UI as opposed to the Virtual Server web interface. VMRCplus uses the documented Virtual Server COM interface and is a great example of what can be accomplished with it. In due course VMRCplus will soon be available via

For the moment we have internal access to it, and my colleague Keith Combs has set up a download facility for it. Please not that like other ResKit tools there is no support for it.

This post originally appeared on my technet blog.

Open source lobby: "We’ll get the EU to stop your telly"

Filed under: Music and Media — jamesone111 @ 2:56 pm

For some reason media seems to be on my mind at the moment….

The BBC i-player is to go live at the end of July. This follows Channel 4”s “4OD” service (I’m a bit peeved the that it’s not available on Vista today, but C4 tell me it’s in the Pipeline) . Five has five download, Sky have “Sky Anytime” and  which is also XP only (not Vista) . They use the same off-the-shelf DRM package which is already present on most of the world’s PCs: Windows media player.

Performers, writers and others involved in a production are paid based on how many people have access to something. Releases on DVD carry a fee. Repeats carry a fee. I don’t know, but I suspect there is a difference between “catch again” repeats – i.e. the ones on BBC Three the next day – and “real” repeat-as-nearly-new-content – the ones which run 2 years later on UK Gold.

In the UK section 70 of the Copyrights designs and Patents Act says “The making for private and domestic use of a recording of a broadcast or cable programme solely for the purpose of enabling it to be viewed or listened to at a more convenient time does not infringe any copyright in the broadcast or cable programme or in any work included in it” – when I wrote about giving media center’s recordings “a permanence they weren’t supposed to have” that was in the back of my mind.

It’s  easy to see that a “catch-up” download service belongs in the same category as the “time-shift” Video recording, and “catch again repeats”, but giving people copies to keep belongs to the same category as selling the programme on DVD. So how does one ensure that a service is catch-up, and not keep-a-copy. That’s where DRM comes in. It’s a technology which gets a bad press, because it means restricting what people can do. Classically when you bought a record or a CD there was no mechanism to stop you making copies: DRM defines what you can do, and everything else is forbidden; which isn’t nice. Of course there is a trade off, because if the restrictions are tolerable and it means I get something that would otherwise languish a vault somewhere that’s fine with me. 

A DRM application decrypts the content and does what it is allowed to do and no more. This means you can’t have open source DRM: the first thing that would happen is that someone would produce a version that dumped out the unencrypted information. This isn’t to say a “secret source” DRM app can’t run on an Open Source OS. Microsoft could produce media player for Linux. But there are a number of reasons why this is unlikely. (a) Why would we help the adoption of a competing platform ? (b) Some Linux users are pragmatists – people who like to dig into the code of the OS. But others are ideologues who would not have Microsoft software on their machine even it were free. There is also a subset who would not accept DRM from any vendor because to their way of thinking does not allow for intellectual property rights.

It shouldn’t come as a surprise that the “Open Source Consortium”  have weighed in. In the BBC’s report of their threat to go to the EU, their president is quoted as saying  “In an ideal world all DRM would be removed”. In his world perhaps; to the broadcasters who wouldn’t distribute content that could be watched forever that’s not ideal at all. The OSC’s web site shows they have been trying to stop the BBC i-Player by talking to the UK regulator Ofcom. Ofcom appear to have given them the response they deserved. With Channels 4,5 and Sky are already using this technology and don’t support anything but Windows; the fact that BBC downloadable content isn’t available on Linux is not going to sway people who want Linux to buy Windows. They also try to muddy the waters using the EUs ruling which forced the creation of “N” versions of XP and Vista without Media player. To the broadcasters it is fantastic  for the same player to be on 90% of computers with broadband. The EU competition commission is charged with promoting competition (they don’t act on behalf of consumers) to them 20 competing players with less than 10% is far better than one with 90%.  That doesn’t give a platform which gets services delivered.

This post originally appeared on my technet blog.

June 28, 2007

Two stories of consumers who wouldn’t put up with it.

Filed under: General musings — jamesone111 @ 9:31 pm

For years – and I hadn’t realised quite how many years I’ve been trying to get a specific DVD. It’s a TV series called “Joking Apart”. It was written by Stephen Moffat, who is better known for “Coupling”, some Episodes of the rejuvenated Dr who (“Blink” in this series, and acclaimed “The empty Child” from the first series). He was responsible for Jekyll which has just started on BBC, featuring James Nesbit from Cold Feet.Joking Apart features another Cold Feet star – Robert Bathurst, and has some very quotable dialog “I had a bad experience at a funeral. I caught the bouquet” or “You can’t be this stupid I’ve seen you use light switches”. Moffat likes to play with time lines. The first line of whole series is a stand-up comic saying “My wife left me”. Then we see the couple meet, and each episode is an intricately plotted farce as we find out how she ended up leaving him. (Read what Moffat says about this approach to plots)

Now I talked a couple of days ago about Video tapes, and somewhere I still have one or two episodes. With so much stuff appearing on DVD I kept looking for Joking Apart. So did other people, and it never came. Then one fan, Craig Robins, found that the BBC will sell rights to programmes it isn’t using to anyone with a plan for how to use them properly. So he put together a plan, did the DVD and sells it direct from his web-site. He won’t make a fortune doing it, but I can’t help feeling he deserves to.

It was thinking of video tapes or rather the shelf space I’d like to get back by replacing some VHS cassettes with DVDs, and that led me to discover Robins’ work I ordered the disc on the spot. I had a courtesy mail a couple of hours later to say it was dispatched and the following morning it was on the doormat. Great customer service as well.


At the very opposite end of the customer service scale, airlines from the US have been pretty dire in my experience American have proved to OK, Continental, and NorthWest less so. I won’t fly with United airlines. I had an experience so bad with them in 2000, I swore never, ever, again. And I meant it. Of course back in 2000 we didn’t have camera phones. Even if we did I’m not sure I would have had the presence of mind to make a video of it. That’s what Robert McKee did. When his Delta flight had been sitting on the ground for two hours without any word of what was happening, he whipped out his camera and chronicled what turned into a 7 hour delay. There was no food to record, but plenty of crying babies. I doubt if I’ll be flying with Delta any time soon.

Thanks to Scoble for the link to consumerist who had the quote “The ubiquity, ease, and low cost of consumer recording, editing and sharing software is quickly making it less feasible for big companies to get away with stuff like this.” Indeed.


Technorati tags:

This post originally appeared on my technet blog.

June 26, 2007

I’m beginning to dream of analog days…

Filed under: Uncategorized — jamesone111 @ 5:11 pm

… could it be that life was oh so simple then ? 

I remember when Channel 4 arrived – a time before cable and satellite TV, when there were programmes we wanted to watch. And the newly affordable VCR meant we didn’t have to watch it when it was scheduled. And when home computers plugged into the TV and let us play games like “Jet Pac”.

Spool forward a couple of dozen years. I’ve just acquired my X-Box 360 – and I’m loving the games in X-Box Live arcade , it may be just as well I was sitting on the floor when I found that we have JetPac Refueled and “included in the package is the original Jetpac from 1983. See what’s changed, or just wallow in nostalgia if you’re part of the Spectrum generation.” 

In this world off multi-channel TV I came to realize that there was no more that I wanted to watch, it was just spread more thinly. I abandoned Cable TV in favour of “Freeview” Britain’s DVB-T system.  This doesn’t fit with my VCR which only handles the 5 analog channels and isn’t Widescreen. I’d get one of the freeview Playback Digital TV Recorders (like Sky’s Sky+ box) except I don’t want another box under my TV, and as I’ve already blogged, thanks to Vista Ultimate and a dongle from Hauppauge I’m getting broadcast quality playback of recorded TV on my laptop. Sooner or later I’ll update my home PC and that will take care of recording, and the X-box will stream play back through the TV. But already I’m seeing a problem …

When your TV programmes are FILES there’s a different psychological relationship to them compared with TAPE. VHS cassettes were something you recorded over and over. You taped a programme watched it, taped over it. Every now and then there would be something you would want to keep – these days it’s easy to buy the DVD of the show. An hour of something would tie up a 3 hour tape but you’d just buy more. But with files we’re conditioned to Save them, why call them files if you don’t, well, file them ? All my instincts also say Keep the Original, and I apply that to still photos so why not video ? Memory cards for photos have got so cheap, I’m seriously considering using memory cards only once (with back-up copies). I can fit all my photos on a 200GB drive, but I can see I’m going to need the same again for the video files which I’m reluctant to delete…

Coping media center’s dvr-ms format files to DVD is just not efficient. A disk which would hold 150 minutes of DVD movie might take 2 programmes of 45 minutes and not have room for a third. I could convert to WMV format which makes better use of the space but is time consuming – besides shouldn’t video on a DVD disk play on any player ? I’ve also found what seems to be a bug: if I tidy up the recordings in Movie Maker and burn the results with DVD Maker something strange happens to the aspect ratio, as if the picture has been squeezed from top and bottom. But it takes so long to do the tidying up why not just use the forward button ? So why bother burning DVDs routinely ? It takes time, resources and shelf space, and give the recordings a permanence they weren’t supposed to have.

Which brings me back to keeping the files on hard disk, and the method I’ve been using for the last few years.

  1. Buy a large hard disk.
  2. Spend the next few months filling it
  3. Note how disk sizes have increased since you bought the last one
  4. Repeat from step 1.

I can’t help feeling there has to be a better way.

This post originally appeared on my technet blog.

June 19, 2007

Campaign for real numbers update

Filed under: Exchange,Real Time Collaboration — jamesone111 @ 4:28 pm

I’ve had an outlook rule in place for a while to tell people about broken phone numbers, I thought I’d report back. The first thing I found was that colleagues who forward lots of mail threads soon tired of seeing the message, so I’ve filtered out anything which is a reply or forward.

The rule now goes

  • Apply this rule after the message arrives
  • with+44(0) or +44 (O) in the body
  • Unless RE: or FW: appears in the subject
  • have server reply using {specific message}

I’ve noticed several people changed their signatures. One person has told me they will set up a similar rule.  Another got in touch to say that if he didn’t write in the broken format i.e. +44 (0), his signature would be 10 lines long. I think I convinced him of the point:

Not everyone or everything understands +44 (0) 118 909 3080, but anyone who does, also understands +44 118 909 3080.

Interestingly someone who works in Microsoft HR says she has been told she must write her phone number in that format. Sigh.

Some of Microsoft’s own Global address list entries have broken numbers. Since we now have Outlook Voice Access, I can dial into the system from my car and say “Directory”, the system will ask who I want to call, and if I say “Joe Blogs” it will call up Joe’s information and I can say “Call the office”, “Call the Mobile” or whatever numbers it has. If these are in the proper E.164 format +44 1234 56789 – no zero before the area code – then all is well: but if Joe (or who ever entered his phone number) was a numpty and wrote +44 (0) 1234 56789 instead. I can’t call him. Perhaps I shouldn’t be rude about people write their numbers in this way – I know two senior people in Microsoft UK who do.


Obviously as an early adopter of Voice access this bothers me, but today it got more important because I have dumped my desk-phone. I’m now on the pilot for Unified Communications. So have the new version of communicator running on my desktop and an “engineering sample” of a “Catalina” phone. Yipee! Call me King Sad of the Sad people but I’m actually excited. Mark Deakin has comprehensive summary of the devices for UC on his blog the Catalina is the phone which will come to market as the LG-Nortel UCT-100DSK and Polycomm CX200. Sound quality is quite nice at my end. I’m not quite sure what it sounds like at the other end.

The first two numbers I dialed were entered in a BROKEN FORMAT: One had the dreaded leading zero, in the GAL and the other had ;ext=1234 added to the end in communicators local address book… actually RFC 3966 says this is OK – I’d better file a communicator bug 🙂   

By the way if you follow RFC3966 and make your phone number a link in the form with a URL of TEL:+44-1234-56789 (n.b. there’s no // in the URL) people who have a supported dialer (like communicator) can click to dial. Why don’t I feel optimistic that we’ll do that on our web pages any time soon.  ?

But if your future includes OCS Telephony, Outlook Voice Access, Windows Mobile Devices which can query the GAL, or Mobile devices where people read mail and make calls then

  1. Clean your GAL and work to keep it clean – which you won’t do without 
  2. Educate users to write numbers in machine readable format.
  3. If you can get people to make phone numbers clickable, that’s a bonus.

Bonus Link. Some good stuff about why this is NOT Rip and Replace at a newish site we have called VOIP as you are.


This post originally appeared on my technet blog.

June 17, 2007

PowerShell , VB , Media Center and SQL

Filed under: Music and Media,Powershell,Windows Vista — jamesone111 @ 12:19 pm

I hesitate to describe myself as a dilettante (1) programmer. Not because it isn’t true but because we have a running joke in the office about vocabulary deficiency. Eileen said to someone “What’s it like to be surrounded by People more Erudite (2)  than you “?  I quipped “Don’t say that, he thinks it’s a kind of glue”. A couple of people in the education team were having trouble pronouncing the word Pedagogue (3) (ped-a-gog) never mind knowing what it means. “OK I know obscure words” I said “I heard Stephen Fry on the Radio saying people don’t know the meaning of words like Anthropophagi (4) or Thaumaturgy (5)  and I did ! ” I know the former from Flanders and Swann and the latter from Terry Pratchett

Long words aside, I only really dabble with coding. I’ve become a convert to Media Center. When he did, the Vista after hours event, James Senior had a sidebar gadget which showed the Electronic Program Guide. (EPG). I tracked the gadget  down to Ascii Express, but I’ve found it a bit flaky and I wanted to investigate how you get the data out of media center.  

Eventually I found a post on the Media Center Sandbox Forums which gave a VB sample. Another post there gave me a registry key I’d need and a link to the very useful MCE Query. With this I was able to build up some SQL queries. There are tables with names like Lineups, Services, Programs, Credits, Genres (all plural) and others which join them together with names like “serviceLineups”. So if you want to the Services and Lineups you join those 2 tables with serviceLineups.  The tables all call their primary key “identifier”, and when it’s referred to in is called by name like Service or Lineup (all singular). Here’s an example: a query to get a list of stations, when the guide information starts and finishes, and their assigned channel numbers e.g. Radio stations are on Freeview – the British DVB-T service – have station numbers in the 800 range.

select serviceLineups.service  ,  lineups.displayedNumber  , Services.serviceName, services.callsign, services.startTime, Services.endtime  
from servicelineups , services, lineups
where (
       (serviceLineups.service = services.identifier) and (serviceLineups.Lineup=Lineups.identifier)
        and  (servicelineups.isAvailable = 1) and  (servicelineups.ProgramInfo = 1)
Order by lineups.displayedNumber

This one gives a list of programs – be warned with 14 days of guide and 60+ stations this is about 20,000 rows, so you may want to add a condition –  e.g. a specific value of Station.identifier taken from the ServiceLineups.Service value in the previous one

select programs.identifier , programs.title as programTitle, programs.description as programDescription, 
programs.episodeTitle, programs.year , programs.originalairdate ,
ScheduleEntries.StartTime, ScheduleEntries.Endtime, services.serviceName 
from scheduleentries , services , programs
where (
(services.identifier = scheduleentries.service) and  (programs.identifier = scheduleentries.program)

Once you’ve got the Programs.identifier you can query things like keywords

select keyword, keywordType, keywordIndex from keywords where program=2639 

Your might want to use a where Program = condition on these 4 which get attributes, credits, genres and ratings.

select programattributes.program, attributes.value as attributeValue 
from programattributes , attributes 
where (programattributes.attribute = attributes.identifier)


select programCredits.program, Credits.name as CreditName , Credits.type as CreditType
from   programCredits , Credits
where (programCredits.Credit = Credits.identifier)


select programgenres.program, genres.name as GenreName
from programgenres , genres
where (programgenres.genre = genres.identifier)


select programratings.program, ratings.name as RatingsName
from programratings , Ratings
where (programratings.rating = ratings.identifier)

This gave me what I needed to query the information in power shell. First get the registry Key which tells me where the EPG is

$key = get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Media Center\Service\epg'

Then load the DLL which lets me address it, and get a SQL Lite Database connection, set it up

$conn = New-Object microsoft.ehome.epg.database.sqlLiteConnection
$conn.init($key.currentEPG , $true)

Normally I’d just pass the SQLstring put to make it easier to read I’m building it up here, then I can create a command object with that query to run against the database

$sql = 'SELECT  lineups.displayedNumber  , Services.serviceName '
$sql = $SQL + ' FROM ServiceLineups , Services, Lineups '
$sql = $SQL + ' WHERE  ( '
$sql = $SQL + ' (serviceLineups.service = services.identifier) '
$sql = $SQL + ' and (serviceLineups.Lineup=Lineups.identifier) '
$sql = $SQL + ' and (servicelineups.isAvailable = 1) and  (servicelineups.ProgramInfo = 1) '
$sql = $SQL + ' )   Order by lineups.displayedNumber '
$sqlcomm.CommandText=  $SQL

Now I set up a dataset object and use the Data Adapter object to fill it.

$Ds= new-object system.data.dataset
$sqladap = New-Object microsoft.ehome.epg.database.sqllitedataadapter
$sqladap.SelectCommand = $sqlcomm

And powershell understands what it can do with a table …

$ds.Tables[0] | Format-Table 

Cool stuff. I did pipe the second query above (the big one) into convertTo-Hml as well. Internet explorer sweats a bit loading it, but it comes into Excel nicely. I’ve got to figure out how to put the data to use now I can get it.

Next up … SQL to query vista’s index


(1) Dilettante: “Somebody who is interested in an art or a specialized field of knowledge, but who has only a superficial understanding of it”

(2) Erudite:  “Having or showing great knowledge gained from study and reading”

(3) Pedagogue “an educator or schoolteacher – esp. One who teaches in a particularly pedantic or dogmatic manner”

(4) Anthropophagi A cannibal

(5) Thaumaturgy  “The performance of Miracles or Magic”

This post originally appeared on my technet blog.

June 15, 2007

Virtualization news.

Filed under: Virtualization — jamesone111 @ 12:00 pm

I’ve mentioned Jeff Woolsey from the virtualization team a few times. And I’ve praised his clarity e.g saying “You may provide this information to customers. However, the only request that I have is that you please do not copy and paste this onto a BLOG”

In the last couple of days he has sent 2 messages marked:


So I shall …

On Monday June 11th, we released Virtual Server R2 SP1 and people can download it HERE.  Here’s a reminder of the new features in R2 SP:

  1. Support for hardware-assisted virtualization technology (AMD-V and Intel VT)
  2. Support for greater than 64 virtual machines on x64-based hosts. Virtual Server R2 SP1 now supports up to 256 GB of physical memory and can run up to 512 virtual machines.
  3. VHD Mount command-line tool and APIs
  4. Interoperability with Volume Shadow Copy Service
  5. Support for additional guest and host operating systems
  6. Service publication using Active Directory Service Connection Points
  7. Host clustering (AKA Quick Migration) white paper
  8. Virtual SCSI fix for Linux guests
  9. Larger default size for dynamically expanding virtual hard disks. Virtual Server now defaults to creating 127 GB virtual hard disks by default.
  10. VMRC ActiveX control and Internet Explorer security zones
  11. New VMRC client option to enable video stretch in full screen mode
  12. IVMGuestOS::Get_OSName property returns more operating system information

We also have some new virtualization resources

Windows Server Virtualization Calculator (Version 2). The new calculator lets you interactively build virtual machines running multiple Microsoft server products to estimate the licenses and costs for Windows Server by edition (Standard, Enterprise and Datacenter) and many Microsoft server products. It starts with configuring your server based on virtualization technology, sockets and clustering requirements, and then builds the virtual machines.
On his blog, Alessandro Perilli concludes “Microsoft Virtualization Calculator becomes a mandatory tool in any virtualization project, and its highly recommended.” It received over 7700 views in May, and the first calculator is being adapted by Dell and HP.

The second is Licensing Microsoft Windows Server 2003 R2 to Run with Virtualization Technologies. Jeff says “I don’t know about you, but I’m sick and tired of a certain company (rhymes with ZMWare) complaining that we license Windows differently for Virtual Server and third party virtualization. That’s simply not true and this document spells out the licensing most clearly. This document covers VMware ESX Server, VMware VMotion, SWsoft Virtuozzo, and Microsoft System Center Virtualization Machine Manager. This document also Intentionally compares VMotion, System Center Virtual Machine Manager and Microsoft Host Clustering (AKA Quick Migration) to build awareness with VMware customers that we have similar management and “VM movement” capabilities”.
People think Alessandro knows his stuff and he says it is “Highly recommended reading before starting any virtualization project.”

Finally there is a document “Starting Today with Microsoft’s Virtualization Roadmap.” This document is currently only available internally, but Jeff believes we’re working to make this publicly available. it covers the large-scale virtualization story of Virtual Server on Datacenter => Managed by SCVMM => Upgrading to WS2008 w/ Viridian.


We had some confusion at a Technet event this week about Windows Server Virtualization (Viridian). So for clarity. Viridian will ship within 180 days of Server 2008. To make that date – with the required quality we have postponed Hot-Add, and live-migration (we still have “quick migration”).  The key word is postponed. Not “Cut”. Not “Dropped”. The plan of record is still that Windows Server Virtualization will have these features , but the version that ships within 180 days will not.  Somewhere this got mixed up with prognostications about Service packs which I might have contributed to In a perfect world we’d see these features in “Virtualization SP1”, which would go into beta when Virtualization itself releases, and ship 3 to 6 months later. But predicting if the dates will line up to allow that would be to layer guesstimate on guesstimate.  So for clarity, there is no plan to link Virtualization with Service packs for Server 2008.


Technorati tags: Microsoft, windows, longhorn, virtualization, beta, Windows Server Virtualization, Viridian

This post originally appeared on my technet blog.

June 14, 2007

Are you a Time lord ? (Or a shift shaper)

Filed under: Working at Microsoft — jamesone111 @ 4:17 pm

Well…. Eileen’s said some things that I never expected , but “I need you to stop evangelizing about working for me, because now we’ve got too many people who want to work for us.” made me laugh out loud. So I’ll have to ask forgiveness for a post which starts by talking (again) about why I like this job.

The hours I work are all over the place, I’ll work late at the office, I’ll finish early. I’ll do a bunch of e-mails before breakfast but take my daughter to school or my son to nursery and get to the office at 10. If I don’t need to meet anyone at the office I’ll work at home. My work/life balance is pretty good – work sometimes encroaches on home-life (and Vice Versa) but not unreasonably so. Technology helps. Smart telephone call routing, broadband, IM, Mail, and Groove mean it doesn’t matter where I am. Outlook Voice access let’s me triage mail from the car and I can do a lot of my mail from my phone. In my old job in MS consulting (where the management asked me not to talk about the job for different reasons) I used to meet IT people who would scoff at the idea of providing the facilities for people to work flexibly in the way that we do at Microsoft.  

The Equal Opportunities Commission have a report out called “Enter the timelords – Transforming work to meet the future”. (Press release, full report PDF). By the way I like the EOC’s slogan “Women, Men. Different. Equal.”  Promoting equal opportunities isn’t about making us all the same; it is about not shutting out any group: different people have different approaches and business benefits from from diversity…

Anyway back to the report. It says “for the majority of people, the reality of work is still fixed hours at a set place of work, which no longer fits the way they lead their lives” . It moves on to look at more flexible approaches and divides up jobs based on whether they are location dependent/independent and time dependent/independent.


  • Chief Executives

  • Writers

  • Artists

  • Social science researchers

  • Telephone sales people

  • Call-centre operators

  • IT user support technicians

  • Van drivers

  • Social workers

  • Plumbers

  • Lawyers

  • Sales assistants

  • Waiters, waitresses

  • Teachers

  • Fire service officers


Of course part of my job means I need to be in a specific place at a specific time – so I’m not 100% time lord. (I’m not a shift-shapers because the things which need me to be somewhere aren’t regular things that I can swap with someone else) . Time stretchers often have customers (with inflexible jobs) who want service outside the normal 9-5 day. Remote controllers are really remote customer-service reps: with a networked computer and a telephone they can be located anywhere but they need to be available when customers demand it.

Eileen’s been involved “Women in technology” stuff – I read her blog post on Saturday and it just added to the positive feeling I have about this job right now. But I have also said that concentrating on one dimension – skin colour, religious beliefs, education, gender, age, physical disability – does tend to annoy me … I want to see the most able wanting to work here, and us hiring them without obsessing about which of those buckets they belong in – but if analysis of the buckets shows we are putting off one set of people it’s right to ask why. We know that too few applications for jobs in IT come from women. Since the burden of caring tends to fall more on women than men it’s generally accepted they have the greater need for flexible working: one way to get more women might be to sell the benefits of working in modern companies – which are more family friendly.  

I want to see us squash the idea that you have to be a 30-Something, university-educated, able-bodied white, middle-class male to work in IT. My 7 year old daughter doesn’t think that but by the time it comes to choosing “A” level subjects and university courses a lot of girls do. We’re trying to change that with events like “DigiGirlz day” – we’re doing the first UK one next week with some schools who are close to our office. If it’s a success there will be more. Because of school “Inset” days I’ll be taking my kids to see their grandmother on that day. Work/life balance again.

This post originally appeared on my technet blog.

June 12, 2007

Vista’s network throughput improvements

Filed under: Windows 2003 Server,Windows Server 2008,Windows Vista — jamesone111 @ 1:48 pm

There is a rule for presenters: every time you put an equation on the board/screen you lose about half the audience. I think that can also apply to presenting on the ins and outs of a network stack.  We’ve got clever with the stack in Vista, and Server 2008, and some of the improvements have been ported to Server 2003.  When I explain the details I can feel the boredom from the audience.

We’ve just posted a study by Tolly Group , and here’s the main conclusion.

Just upgrading client PCs to Microsoft’s Windows Vista can yield throughput and time-to-completion improvements of up to 2.5X over Windows XP.
Complete migration of servers to Windows Server 2008 can yield throughput and time-to-completion improvements of up to 3.5X over Windows XP/Windows Server 2003.

The improvements are most pronounced on networks with a lot of bandwidth, but high latency – so I notice the improvement downloading large files from Redmond to the UK.

This post originally appeared on my technet blog.

Should we be working on our privacy ranking ?

Filed under: Privacy — jamesone111 @ 11:56 am

Steve characterizes some conversations as being “You suck.” “No – You Suck” types, and 

 Privacy international published a report last week which rated a couple of dozen organizations with a major presence on the web. The BBC fared pretty well. Google came out bottom – the only one labeled “Hostile to privacy”. Google’s Matt Cutts thought the best way to handle this was to play the man not the ball: complaining that  other people did bad things too, and so it must be a bad study. It seems some of his colleagues took the idea to heart and started ringing up the press and saying “Casper Bowden is on their PI’s Advisory board. Casper is now a Microsoft employee. Therefore PI is biased in favour of Microsoft ” Put Casper’s name into your chosen search engine and decide for yourself if he’s the kind of chap an organization like PI would want on its board. As PI say in an open letter to Google, they have given Microsoft a pretty good kicking on privacy over the years. If their report is biased – it’s pretty subtle of us to push Google down and keep Windows Live in the second to bottom category (with Apple and AOL) and Microsoft as a whole in the next one up.

Google has a problem on privacy right now. Everything from the EFF worrying about Governments spying on users via Google Desktop search to The Times talking about the privacy risks of  “All-seeing Google Street View”  to privacy bodies petitioning the Federal Trade Commission about Google acquisition of DoubleClick, to the  infamous Eric Schmidt comment that Google wanted to know enough about you “to enable Google users to be able to ask the question such as ‘What shall I do tomorrow?’ and ‘What job shall I take?’ ” provoking reactions from  a raised eyebrow in the FT  to howls of derision in the Grauniad to personal abuse at ZDnet. One of the best posts I’ve read in all this is from Shelly Powers it includes a summary of what Google knows about her and ends with a quote I like

isn’t it about time Google realized that not everyone shares the same faith in the company’s purity of purpose; nor the same belief in the inherent neutrality and fairness of algorithms? Two years. What was I searching for two years ago–I can’t remember now, but Google can. Two years. That’s longer than my first marriage. Come to think of it, Google probably knows as much about me, or more, than my first husband. Considering my first husband, though, this isn’t surprising and one of the many reasons I divorced him.

Unfortunately, I don’t have the option to divorce Google.

I  don’t want to get into a You suck.” “No – You Suck” conversation – the story isn’t being written “Apple, AOL, Facebook, Windows Live all suck, Google worse still”, and maybe it should. Any organization needs to win my trust in their “Purity of purpose” before gathering information about me. In an earlier post Shelly talks about people who “ love it when Google ‘personalizes’ everything. But what cost personalization? At what point can we no longer trust what we’ll be receiving on the internet? ” These questions are the ones that I find interesting. Ultimately would you like Microsoft to have better regard for your privacy, or do you trust the purity of purpose of big organizations (from Supermarkets, to Internet companies to the government) ?  Do you think people consciously trade information for something they value (making a call on how trustworthy the organization is) or do you think many of us are sleepwalking into something sinister ?


Technorati tags: ,

This post originally appeared on my technet blog.

June 8, 2007

Mobile phone round-up

Filed under: Apple,Mobility,Windows Vista — jamesone111 @ 2:07 pm

Steve has been had a play with the HTC “Touch” (lucky man). He asks “who on Earth would want an iPhone?!” That’s simple, any one who buys for what the badge says about them. The kind of person who thinks a £300 (after contract) fashion accessory phone is just what their image needs. I’ve quoted the description of Macs as “Smug, preening tossers” twice before (although after watching the SteveJ and BillG interview I think I should make it the last time.  Speed reading something Robert Scoble wrote I read “A good phone matters to me. But to [my wife] ? Not at all. So she’ll probably end up with the iPhone” which I thought put it brilliantly; but sadly that’s not what he said, re-reading it I find he actually said a good phone camera mattered.

After blogging that I want a new Bluetooth headset it would have a bit odd if I really had thrown my Jabra 250 out of the car on Wednesday night. I got close though. I told the phone “Call Jackie at Home”. “Call back 71077345 ? ” it asked. No! “Call Jackie” might sound like “Call back” but when I said “Call Voice mail” it asked to call back … I tore the headset off and through it to the back of the car….

It turned out that the phone had a moment of amnesia. It had lost all my contacts (and mail, calendar and server configuration). I think I know why …

I mentioned before that there were some new provisions for supporting rights managed mail on the phone. This needs a new version of the Vista Mobile Device Centre – I was running the beta and I think it has periodically hosed the phone. Well the final version is now available in 32 bit  and 64 bit versions. Hopefully it no-longer causes amnesia. You get easy certificate enrollment , rights management set-up, File sync, and you can keep your phone connected to WiFi when it is plugged into the PC – and other things described on the download pages.  


This post originally appeared on my technet blog.

Server core, IIS7, things I can’t tell you, and why Powershell means you’ll still have a job.

Filed under: Virtualization,Windows Server 2008 — jamesone111 @ 11:26 am

[note to self. Work on snappier titles]

Eileen called me from Tech-ed in Florida on Monday and said how Fantastic it all was, and that in the keynote Bob Muglia announced that that IIS 7 would run on Windows 2008 server “core”. Mary Jo Foley was one of the first to write it up. Interestingly she also has another post on our “Green Datacenter campaign”

We’ve been taking some flak about the IIS7 on Core situation. For background IIS 7 needs the .NET framework, and when you choose to install Windows Server in it’s “Core” form there’s no .NET framework. (In case you weren’t aware we will have standard, Enterprise and Datacenter versions of Server each of which can be installed as “Full” or “Core”. If you want to switch from one to the other you re-install.). No .NET framework also means no PowerShell on Core installations. The IIS situation Making it worse is some bright spark tried running Apache on core and having no special windows dependencies it works.  Now Apache working isn’t a  bad thing – customers using the LAMP stack (Linux, Apache, MySQL, PHP) don’t want to switch to an all Microsoft “WISA” one (Windows, IIS, SQL server, ASP) so they can have a “WAMP” stack.

There has been talk of a minimal .NET framework for IIS, but that’s not what’s been done here. Over on the IIS.net blog Bill Staples writesCurrently the .NET Framework is not on Server Core, which means ASP.NET is currently not available.  This is something the .NET team wants to add and we’re working on adding it as soon as possible.  Classic ASP works just fine, and with the new FastCGI support, PHP also runs great on Server Core.”.

So the question that will naturally get asked is when will we be able to get this ? The smart money is on it being in an the interim post-beta 3 build of Server 2008 before we get to RC-1. I’ve been told what the planned date for the first of these is, but plans change so I’m going to leave it to the product group to make the announcement. The intervals between builds won’t be any surprise if you remember what the intervals were for these builds with Vista.

It’s pretty clear that not everyone gets the idea of server core. I recently shared the stage at a partner event with an interesting chap from Intel, he was talking about the changes that multi-core chips bring and one of those was the drive to consolidate work loads – instead of workload=physical server, a workload might be a virtual machine, and he saw Server Core VMs as a great idea. He also made a throw away comment along the lines of “People don’t want to hear about “Green” datacentrers – but they’re very keen to hear about “energy efficient” ones. There seem to be two very distinct camps on server core

  • “Why would I want a Windows server without a GUI ?”
  • “If my servers are in a ‘lights out’ data-center, why do they need a GUI ?” / “Does each virtual workload need to implement its own GUI”.

The data-center with a common workload running on a farm of servers is the natural place for core. IIS 7 farms can share a single configuration – reducing management and improving consistency. No one wants to repeat the tasks on each server – and nor do they want to go the servers and fire up CMD or PowerShell – hence it’s not that serious that Powershell doesn’t run on Core : ideally ALL management of core is remote either a GUI program on an administrators workstation or a script to carry out repeated tasks. Without scripting every task is a one off task. . If you read my infrastructure optimization pop quiz  one of my measures for testing dynamic / standardized / basic was “Frequent tasks here rely on… an Automated process / a checklist / Me” and the message. If every task is a one off task you’re not optimized.  The corollary is obvious you can’t optimize your operations without scripting.

I was skimming I’ve found some interesting links on the PowerShell Guy’s blog , including one by Don Jones called “Do you get it” . I’ve got Don’s book from the Microsoft library – which seems to have been done without the help of a proof-reader. Don takes issue with something Michael at 4Sysops.com said: the key bit for me is:

I think that Windows doesn’t really need a powerful command shell because it has very powerful GUI tools.

Powerful GUI tools are fantastic for one off tasks. But if you want to get of the bottom rung of the optimization ladder you need to move beyond one off tasks. Michael asks why you use get-process | ForEach-Object { write-host $_.ProcessName $_.CPU}  instead of launching task manager.  I wouldn’t do it … unless I wanted to know how much CPU time a my database process used each day for a month.  


This post originally appeared on my technet blog.

June 7, 2007

Powershell vs VB script.

Filed under: Powershell — jamesone111 @ 5:07 pm

OK, OK I know there is nothing as annoying as a convert. But here’s a real world problem, and how my old solution stacks up against PowerShell.

First the problem: there is a standard for digital cameras which says they old use 4 digits to identify the pictures. So my Pentax cameras create files with names like IMGP1234 (for IMaGe – Pentax). I like having a serial number but since I’ve shot something over 20,000 pictures the filenames aren’t unique. So I’ve got a scheme for changing IMGP to:

  • IMGo for pictures from my Optio Compact
  • IMG0 or IMG1 for Pictures from my *ist-D SLR (now retired)
  • IMG2 for pictures from my K-10 SLR

I also replace the IMG part for sets of pictures taken together. For example the picture on the right is IND13775+.JPG. IND tells me it was take in India, 13775 fits it into sequence with my *ist-D photos and the + tells me it has been edited (somewhere there is a direct from camera version without the +). Windows will rename my files on import, but that removes the serial number. So I have a .VBS script as follows

   Set fso = CreateObject(“Scripting.FileSystemObject”)
   set folder = fso.getFolder(“C:\Dump\Unsorted Pictures\Abingdon Airshow”)
   for each file in folder.files
    on error resume next
    if lcase(left(file.name,4)) = “imgp” then
    file.name =  “AB2” & mid(file.name,5)
    end if
   set folder = nothing
   set fso = nothing

So… I was looking at how to do this in Powershell

dir | foreach {ren $_.fullname $_.name.replace(“IMGP”, “AB2”)}

That’s it. ONE LINE. Not even a very complicated line. [Update thanks to the PowerShell guy for commenting that I could have made this even shorter – hey I still think “for each ….” have to ditch the paradigms of VB]

OK, yes, it doesn’t cope with IMGP1234.JPG changing case to Imgp1234+.jpg. And yes I know that PowerShell purists will say that dir, foreach and ren are all aliases and that parameters should be named rather than passed by position – but the point wasn’t to produce a supportable script here. I wanted to show how small it is but also we’re not having to resort to anything difficult. We’ve got

  • dir | something    dir | find and dir | more have been staples for years.
  • foreach . A for loop ! We’ve been doing those for even longer. for %f in (*.*) do something_with %f  has been in DOS and Windows for years.
  • ren fullpath  newname. Again just like we’ve been doing since the 1980’s .
  • replace(“oldText”,  “newText”). Might not been in batch scripting, but magic it ain’t.

What’s new here ? Using $_ instead of %f for “the current one” in a for loop. The output of dir being objects with .name and .fullname properties, and those properties having a replace method. Hmm. It makes me think

Error: Rocket Science not found.

This post originally appeared on my technet blog.

June 6, 2007

Manuscript Teaspoons and why Jason’s getting a better voice experience than I am

Filed under: Exchange,Mobility — jamesone111 @ 5:36 pm

voice command2 I was going to write about my Experience of using Outlook Voice Access.  And Voice command on my phone. I have phone set up so that when it sees my Bluetooth headset, it announces my calls.

On a typical day I’ll clear mail that came in overnight before I leave home, drop one or other of my kids at school/nursery and head into work. That way I miss the worst of the traffic, get time with the kids and have a clear conscience.

On the journey Voice command will often hawk in my ear that I have a message – it only reads the subject line. At some point in the journey I’ll call into Exchange and get it to read my mail. On the way home I’ll call in again and kill off a bunch of mails that have been attended to. It works … although sometimes I think of Dr Johnson’s description “like a dog’s walking on his hind legs. It is not done well; but you are surprised to find it done at all.“. The problem is that I want to use voice access when my hands are busy (e.g. Driving at 60-70 MPH.) and that usually means there is background noise.

A call should go something like this.

ME: {Press headset button, wait for beep} Call Voice mail
VC: Call voice mail ?
ME: Yes {Phone Beeps}
E2K7: You are connected to Microsoft Exchange please …{phone sends extension number}
E2K7: James O’Neill. Please enter …. {phone sends pin}
E2K7: You Have: no: new voice mails and ….
ME: E-mail
E2k7: Opening your mail box. First a message from Joe Spammer, subject ….
ME: Delete
E2K7: Message Deleted. You can restore …
ME: Next !
E2K7: Next a message from forwarded by E-lean Brown, subject, Manuscript Events in Seattle. I think this one is for Teaspoons e-Lean Brown vertical bar Manager it pro Evangelist Team vertical bar Developer and platform team.
ME: Goodbye
E2k7: I heard you say goodbye…
ME: Yes
E2k7: Thank you for calling.

Woah … Who’s E-Lean … oh it can’t say Eileen. Manuscript Events… what the heck is it talking about ? if you check in the dictionary MS is the abbreviation for Manuscript. So what if we use it to mean Microsoft ? and Teaspoons ? TSP is what we call a technical sales professional to the dictionary it’s a teaspoon. And if you don’t put a closing full stop the reader just ploughs into the next line – and it reads some things out loud. The vertical bar isn’t too bad, but the way it reads URLs is painful.

But here’s what can happen, with a 3 year old headset calling from a poor signal area at 65 MPH.

ME: {Press headset button, very loud beep follows} Ouch (expletive deleted) …
VC: Call Jackie at home ?
ME: what ? No !! {turns volume down and tries again} Call Voice mail
VC: Call Eileen Brown ?
ME: No.  Call Voice Mail 
VC: Call voice mail ?
ME: Yes {Phone Beeps}
E2K7: You are connected to Micro{crackle}ange please …{phone sends extension number}
E2K7: James O’Neill. Please enter …. {phone sends pin}
E2K7: You Have: no: new voice mails and ….
ME: E-mail
E2k7: Sorry I didn’t catch that. You can say…
ME: {louder} E-mail
E2k7: Opening your mail box. First a message from Joe Spammer, subject ….
ME: Delete
E2k7: Repeating. A message from Joe Spammer
E2k7: Repeating. A message from Joe Spammer
ME: {Angry} Delete the damn message you stupid bitch
E2k7: I didn’t catch that, you…
ME: Oh yes you did.
E2k7: Sorry I still didn’t catch that. You can say …
ME: Delete message ?
E2K7: Message deleted You can …
ME: Next !
E2k7. Sure You can say…
ME: Next !
E2K7 I heard you say goodbye .
ME. WHAT ? No !!
E2K: Returning to the main menu, you can say
ME: E-mail
E2k7: Sorry I didn’t catch that. You can say…
ME: {louder} E-mail
E2k7: Sorry I still didn’t catch that. Let’s try using the keypad.
ME: No
E2k7: Press 1 to .
ME: {disconnect}

Jason thinks it is amazing to use on his commute. But now I think I know why: he tells us just how great he thinks the nose reduction on the Jawbone “Wow! Is all I can say.  The Noise Cancellation is nothing short of amazing.  My car doing over about 60 mph gets quite noisy and normally Outlook Voice Access couldn’t understand me… similarly if I took a call in the car no-one could hear me” . Jason also says “I’ve seen many of my US Colleagues use these and swear by them”. Indeed. They’ve had Outlook Voice Access for a year longer than we have. 

So this is now top of my gadgets-to-get-work-to-buy list.

This post originally appeared on my technet blog.

My first steps with PowerShell

Filed under: Powershell — jamesone111 @ 3:11 pm

I’ve been taking my first stumbling steps in PowerShell. I’m the contact here for the PowerShell user group and have been along to a couple of their meetings, and their enthusiasm is pretty infectious. PowerShell’s really got some momentum behind it – having had a million downloads and a dozen or so books written for it (including the wonderful sounding Windows PowerShell. Sprachgrundlagen, Dateisystem, Datenbankzugriffe, WMI-Steuerung I think I to get learn the sprachgrundlagen myself)  I’ve done some programming over the years, and done some pretty advanced stuff with batch files. PowerShell is a new kind of beast for me.

Batch files are easy – commands from the command prompt , some basic if….then , for loops and so on. DOS copied the ideas of redirecting input and output from Unix you can redirect input to a text file from the keyboard  or redirect output from the screen to a text file.  You can miss out the text file and pipe the text emitted from one program into another. Whilst a batch file meets the fundamental definition of a “program” (a list of commands of the computer to execute), most people don’t see producing batch files as programming. The most basic form of “real” programming is – well – Basic.

I’ve lost count of the number of BASICs I’ve programmed in: Micro-Soft BASIC was the second, in those days Micro and soft were separate words, and BASIC was an acronym for Beginners All-purpose Symbolic Instructional Code. 15 years ago Visual Basic was a whole new programming paradigm for a lot of people. Instead of having a program which ran from beginning to end (skipping some bits, and repeating others), we drew the user interface and then said what happened when a user did this or that with the controls. At the same time OLE-Automation, later COM and Active-X allowed us to manipulate complex entities as objects with methods (things they did) and properties (things they were). In the original BASIC you could have a variable X which was an array of text strings and that was as sophisticated as it got. Now you could say X was an instance of Internet Explorer, or a User in AD, or the results from a SQL query, the objects did the work and often VB’s job was just to tie them together. VB script used the same syntax to do tasks with no GUI and a more linear flow.

A lot of IT professionals don’t program – in the VB (script)  sense. And that rules out automating tasks, like setting an AD attribute for many users. Cue PowerShell. A 21st Century replacement for the “DOS box”.  This much I understood months ago. I even understood that a lot of PowerShell commands (or Cmdlets as it calls them) are in the format Verb-noun, like “GET-HELP” – which gives  information the others. What I’m going to do is show you how I did my first little scrap of PowerShell and if you haven’t used it you might get some ideas about it’s power.

At last weeks PowerShell user group on of the presenters was showing what could be done with the “GET-WMIobject” cmdlet. So the the first thing I did was try GET-HELP  Get-WMIobject -full (without -full we get a brief summary).  A quick skim of the help tells me that GET-WMIOBJECT -LIST will tell you what the classes of object you can get to via WMI – when you know what you want GET-WMIobject -class [classname] the object(s) so I’m going to see what QFEs (Hot fixes) my machine has – (I’ve shortened the results a bit) 

PS C:\Users\Jamesone> Get-WmiObject -Class win32_quickfixengineering

Description         : Update
FixComments         :
HotFixID            : KB932246
Install Date        :
InstalledBy         : S-1-5-18
InstalledOn         : 01c7750dbf25f258
Name                :
ServicePackInEffect :
Status              :


Description         : Update
FixComments         :
HotFixID            : KB936824
Install Date        :
InstalledBy         : S-1-5-18
InstalledOn         : 01c79da8934e128a
Name                :
ServicePackInEffect :
Status              :

I can see what’s there, but it’s not that helpful. There is already a bit of magic going on because PowerShell has figured out how to output text from an array of objects – VB would have needed a few lines of code to do that. But now what can I do with these objects ? At this point I usually need the object browser in an interactive development environment. With Powershell I can Pipe objects into other cmdlets. Oooh….that’s interesting… one of the commands is get-member which lists and object’s properties and methods

PS C:\Users\Jamesone> Get-WmiObject -Class win32_quickfixengineering | get-member


   TypeName: System.Management.ManagementObject#root\cimv2\Win32_QuickFixEngineering



Name                MemberType   Definition
----                ----------   ----------
Caption             Property     System.String Caption {get;set;}
CSName              Property     System.String CSName {get;set;}
Description         Property     System.String Description {get;set;}
FixComments         Property     System.String FixComments {get;set;}
HotFixID            Property     System.String HotFixID {get;set;}
InstallDate         Property     System.String InstallDate {get;set;}
InstalledBy         Property     System.String InstalledBy {get;set;}
InstalledOn         Property     System.String InstalledOn {get;set;}
Name                Property     System.String Name {get;set;}
ServicePackInEffect Property     System.String ServicePackInEffect {get;set;}
Status              Property     System.String Status {get;set;}
__CLASS             Property     System.String __CLASS {get;set;}
__DERIVATION        Property     System.String[] __DERIVATION {get;set;}
__DYNASTY           Property     System.String __DYNASTY {get;set;}
__GENUS             Property     System.Int32 __GENUS {get;set;}
__NAMESPACE         Property     System.String __NAMESPACE {get;set;}
__PATH              Property     System.String __PATH {get;set;}
__PROPERTY_COUNT    Property     System.Int32 __PROPERTY_COUNT {get;set;}
__RELPATH           Property     System.String __RELPATH {get;set;}
__SERVER            Property     System.String __SERVER {get;set;}
__SUPERCLASS        Property     System.String __SUPERCLASS {get;set;}
PSStatus            PropertySet  PSStatus {__PATH, Status}
ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime();
ConvertToDateTime   ScriptMethod System.Object ConvertToDateTime();
Delete              ScriptMethod System.Object Delete();
GetType             ScriptMethod System.Object GetType();
Put                 ScriptMethod System.Object Put();


I’m only interested in HotfixID and  Description Properties and PowerShell has a format-table cmdlet to present them nicely.

PS C:\Users\Jamesone> Get-WmiObject -Class win32_quickfixengineering | format-Table Hotfixid, description

Hotfixid                                                    description
--------                                                    -----------

KB929399                                                    Update
KB929451                                                    Hotfix

KB930163                                                    Update
KB930178                                                    Security Update
KB930857                                                    Update
KB925902                                                    Security Update
KB931573                                                    Update
KB931768                                                    Security Update


The second half of that line tells PowerShell “I’m going to throw some objects your way: pull out the hotfix-ID and description properties and format them nicely.” Two things leap out here: first I can format text in VB but this is much quicker. And secondly the “Incoming object! – use these properties “ approach. Suppose I only want the Security updates – rather than figuring out how to use get-wmiObject’s –query switch I could use the Where-object cmdlet. Since I don’t know anything about how it works I need  to GET-HELP for it; with a -full switch it includes:

-------------------------- EXAMPLE 1 --------------------------

C:\PS>get-service | where-object {$_.Status -eq "Stopped"}

This command gets a list of all services that are currently stopped.

There’s some syntax I have to work out here: $_ for “the current one” and -eq for equals  but anyone can swap .status -eq “Stopped” over to be .description -eq “Security update”. So I’ll insert that.

PS C:\Users\Jamesone> Get-WmiObject -Class win32_quickfixengineering | where-Object {$_.description -eq "Security Update"} |

format-table hotfixId, description

hotfixId                                                    description
--------                                                    -----------
KB930178                                                    Security Update
KB925902                                                    Security Update
KB931768                                                    Security Update

Of course it would be better if they were sorted into order. Another quick look at the help says I can pipe my results to sort-Object hotfixid

PS C:\Users\Jamesone> Get-WmiObject -Class win32_quickfixengineering | where-Object {$_.description -eq "Security Update"} |

sort-object hotfixID | format-table hotfixId, description

hotfixId                                                    description
--------                                                    -----------
KB925902                                                    Security Update
KB930178                                                    Security Update
KB931768                                                    Security Update

It’s taken me about 10 times longer to write the blog post than to get to the command line that will do all this for me. PowerShell can’t do everything it’s ability to call out to .net or COM objects or WMI means it can do a huge amount.  And it opens it up to those who don’t program – and lets established programmers get a result more quickly. More importantly when we say things like “PowerShell is part of better management in Longhorn” this is what we’re talking about. It also means when we say “there are more WMI providers” mere mortals can do something with them. I can see I’m going to be doing more with this technology.


Technorati tags: , ,


This post originally appeared on my technet blog.

Interested in Pictures ? Got 8 minutes ? Watch this.

Filed under: Uncategorized — jamesone111 @ 12:48 pm

image It seems I got my Blue Monster business cards a few days before Hugh did. Hehe. Steve’s got some so has ‘t other Steve. We’ll soon have enough for a Blue Monster user group.

It will be interesting to see who wants the traditional Microsoft one and who takes the Blue Monster …  


Thanks to Hugh I found the video below on Peter’s Site

In an earlier post I talked about photosynth. I know a little bit more about it than I’m able say in public, but Hugh gave a link to the Video below, which explains the related “Seadragon” technology and almost all that I do know. Now as a presenter I can tell you there a few sounds you really love to hear. The small laugh at the jokes the person on before you makes is one (this is a good audience) and Ooohs, Aaahs, cries of “woah!” and ripples of applause and as you put your product through its paces form another group (this is a good product) the video has quite a few of those.

 Now I’m just wondering what this might do mated with Surface



This post originally appeared on my technet blog.

June 1, 2007

A little bit more about installing Vista – or Server 2008

Filed under: How to,Windows Server 2008,Windows Vista — jamesone111 @ 10:06 pm

Matt McSpirit IM’d me a couple of days ago  to ask if I’d built a custom Windows Vista installation DVD. And I had to confess that I’d only looked at it briefly – I know Microsoft IT have an image we can burn to a DVD, and I’ve done about every other install (boot and manually run imageX, install from the network with Windows deployment services, and complete PC restore), but I never found the right switches to do my own DVDs. I suggested if he found the answer he post it on his blog which he has now done.

Since I don’t reboot my machine from one month to the next, I’d take issue with Matt’s suggestion of rebuilding machines on a monthly basis (I’ve used complete PC Restore to rebuild demo machines quickly – but that’s destructive). I’m also wedded to the idea that Windows Deployment Services and installing from the network is the best way to build machines when you have to a lot over a long period of time. But what if you’re not the person who controls the corporate Deployment server ? Or what if you have to install batches of machines where server/network bandwidth would be an issue ? (longhorn’s version of WDS has multi-casting – the Windows server 2003 version doesn’t). Or what if you need to be able to rebuild machines which aren’t on the corporate network ? Since Longhorn Server 2008 shares the same install process, what if you need a standard disk to set-up a branch office server ? Sooner or later you need to be able to do it from a DVD.

I’ve explained before how to set up a Windows PE disc, and how to customize it. So making a USB drive or CD from which you can boot and run imageX is pretty easy – Matt’s blog post goes through the steps . Having built and sysprep’d the “Golden” Machine We boot from the PE disk, and the critical bit is you run ImageX with the FLAGS switch. Matt links to the page where all the imageX switches are explained.  “The /flags value is required if you are going to re-deploy a custom Install.wim with Windows Setup. The straight quotation marks are required.” it takes an edition ID which can be “HomeBasic”, “HomePremium”, “Starter”, “Ultimate”, “Business”, “Enterprise” (and for Server 2008, “ServerDatacenter”, “ServerEnterprise”, “ServerStandard”). The minimum you need is

imagex.exe /flags “Ultimate”  /capture c: D:\install.wim “ULTIMATE Golden Image”

Where “D:” is a drive with enough space to hold the WIM file. You copy the installation DVD and replace Install.wim (in the sources folder) with the one you’ve just built, and then you can use OScdIMG to make an ISO you can burn. Job done.


This post originally appeared on my technet blog.

Blog at WordPress.com.