Replacing text with special characters in Microsoft Office Word

This evening I was trying to take a few Exchange Server distribution groups and import their membership to Excel. There’s probably a way to script this but the method I used was to expand the distribution group membership in Outlook, then copy and paste the contents to a text editor before reformatting for Excel. The problem was that I wanted to move from a list of names separated with semicolons to a vertical list of names separated by line breaks.

Using Word (2007) as my editor, I tried to replace ; with a line break copied and pasted from another document but that didn’t work. It turns out that there is a method to replace using control characters though, as described in a Microsoft help and how-to article about finding and replacing text.

For my situation, I needed to type ^p (or ^13) as the replacement for ; but other options include:

Find/replace Type
Paragraph mark (¶) ^p (except with wildcards) or ^13
Tab character ^t or ^9
ASCII character ^nnn where nnn is the character code
ANSI character ^0nnn where nnn is the character code
Em dash (—) ^+
En dash (–) ^=
Caret (^) ^^
Manual line break ^l or ^11
Column break ^n or ^14
Page (when replacing) or section break ^12
Manual page break ^m
Non-breaking space ^s
Non-breaking hyphen ^~
Optional Hyphen (¬) ^-

These may be useful to know – and there are more find and replace options in the article, including wildcards.

Installing the Cisco VPN client on Windows 7

I haven’t been able to run the Cisco VPN client on the notebook PC that I use for work (because there is no 64-bit Cisco VPN client) but, after a forced rebuild when my hard disk started acting erratically, I am no longer running my Windows Server 2008 workstation and I put the Windows 7 beta on it instead, choosing to go 32-bit so that I didn’t have to run a VM just to access corporate applications.

Most applications that work on Windows Vista should work on Windows 7 but the ones that will cause trouble are the ones with hooks deep into the operating system… like VPN clients – and the Cisco VPN client is no exception.

Even under Windows Vista, v5.0.3.0560 of the Cisco VPN Client needed a Windows Update to be applied prior to installation but I took the chance that was already included in the Windows 7 code. Installation was actually quite smooth and completed successfully but then, after the initial reboot, a glimpse of a blue screen of death before the PC restarted. Thinking that my hard disk error had been misdiagnosed (it hadn’t) I started to Google and came across Aaron Tiensivu’s blog post on preventing Cisco VPN client (v5.0.4.0300) installation from bluescreening Windows 7 (32-bit build 7000). That sounded interesting… it refered to a later version of the VPN client but otherwise it was exactly what I’d just seen.

After a System Restore had got me back to a running system, I followed the steps in the post, but they have been updated several times now, so what follows are the exact steps that worked for me:

  1. Install the Citrix Deterministic Network Enhancer (DNE) update (direct link to the installer file) and restart the computer.
  2. Take ownership of c:\windows\system32\drivers\ndis.sys and c:\windows\system32\drivers\en-us\ndis.sys.mui, then set permissions to grant Full Control to Administrators, before deleting the files.
  3. Install the Cisco VPN Client (I used v5.0.03.0560 but this is also reported to work with v5.0.04.0300 and v5.0.05.0280) and restart the system.
  4. Allow Windows 7 to perform Startup Repairs and then click Finish to shut down the computer.
  5. Start the computer, log on, and the Cisco VPN Client should now be available for use.

Following this, I was able to initiate a successful connection to my company’s network.

Incidentally, for those who need to run 64-bit Windows, Nicholas Caito’s workaround looks interesting – running the VPN client in a virtual machine, sharing the connection, and providing a static route on the host.

Extracting individual files from setup executables

A while back, I wrote about using a Windows Server 2003 resource kit utility called dvdburn.exe to write ISO images from the command line. I needed to do that on one of my systems today but couldn’t find dvdburn.exe on my software share. It turns out that’s because it is one of many utilities that are embedded within the installer package for the resource kit (rktools.exe). Because the machine in question is my main Hyper-V host, I didn’t want to install unnecessary software on it but I figured the executable file must contain all the necessary resources for setup, so I set about extracting its contents.

First up, I ran rktools.exe /? to see what command line options were available and it confirmed that rktools.exe /c: /t:path would allow me to extract the contents to a path of my choice but when I checked there was an .MSI and two small .CAB files there. The .CAB files can be opened with a zip utility but the .MSI is a little more difficult as msiexec.exe doesn’t appear to have an option to extract the contents of the installer to a folder.

Luckily there is a utility, based on WiX, which will do this for me – Scott Willeke’s Less MSIérables (lessmsi.exe). Using this I could successfully extract the contents of the .MSI without installing the software. Then I could run dvdburn.exe (as I needed) and delete the extracted files without leaving any trace of the Windows Server 2003 Resource Kit’s existence on my system.

Windows 7 product editions

Microsoft has announced the product line-up for Windows 7 and those who were looking for something a little simpler than the SKUs we saw for Windows Vista will be sadly disappointed. As with Vista there are several versions planned for Windows 7; however, unlike with Vista, each is a superset of the preceding version (i.e. the features in each version of Windows 7 build upon the one before it so that, as customers move up as version, they gain additional features and lose none).

Microsoft’s recommendations are:

  • For price-sensitive customers with small notebook PCs (e.g. netbooks), some OEMs will offer Windows 7 Starter Edition.
  • For customers in emerging markets, Windows 7 Home Basic will be available.
  • For consumers, Microsoft recommends Windows 7 Home Premium for most customers and Windows 7 Professional for customers who want additional features and functionality useful for small business activities. There will also be an Ultimate Edition of Windows 7.
  • For businesses, Microsoft recommends Windows 7 Professional for most customers and Windows 7 Enterprise for medium-to-large business and enterprise customers that choose to license Windows through Software Assurance.

Whilst I can see why this approach has been taken and I think that making each version build upon the previous one is a a sensible decision, in my opinion this is still too many versions (why do we need Ultimate or Enterprise – surely those features can be rolled into Home Premium and Professional as Microsoft has stated that it intends to focus on these as the primary editions of Windows 7?). Interestingly there is no mention of a version of Windows 7 labled N, K or KN as there was for previous versions of Windows in order to comply with legal rulings in Europe and Korea. The announcement also makes no mention of the differences between 32- and 64-bit editions amd whilst I expect to see x64 versions of the high-end SKUs, I’ll be surprised if the low-end versions are available for anything other than a 32-bit architecture.

In terms of available functionality, the line-up is as follows:

Version Key features
Windows 7 Starter Edition
  • Broad application and device compatibility with up to 3 concurrent applications.
  • Safe, reliable, and supported.
  • Ability to join a Home Group.
  • Improved taskbar and JumpLists.
Windows 7 Home Basic Edition Windows 7 Starter Edition features plus:

  • Unlimited applications.
  • Live Thumbnail Previews & enhanced visual experience.
  • Advanced networking support (ad-hoc wireless networks and internet connection sharing).
  • Mobility Center.

Windows 7 Home Basic Edition will only be available in emerging markets.

Windows 7 Home Premium Edition Windows 7 Home Basic Edition features plus:

  • Aero glass and advanced windows navigation.
  • Easy networking & sharing across all PCs and devices.
  • Improved media format support, enhancements to Windows Media Center and media streaming, including Play To.
  • Multi-touch and improved handwriting recognition.
Windows 7 Professional Edition Windows 7 Home Premium Edition features plus:

  • Ability to join a managed network (domain join).
  • Protect data with advanced network backup and encrypting file system.
  • Print to the right printer at home or work with location aware printing.
Windows 7 Enterprise and Ultimate Editions Windows 7 Professional Edition features plus:

  • BitLocker data protection for internal and external drives.
  • DirectAccess for seamless connectivity to the corporate network (requires Windows Server 2008 R2).
  • Prevent unauthorised software from running with AppLocker.

Windows 7 Enterprise Edition will only be available through Microsoft Volume Licensing.

Windows 7 Ultimate Edition will include multi-language packs.

Did SpinRite actually save my data?

This morning, I shut down the notebook PC that I use for work and set off to meet a colleague. Upon returning, I tried to boot the system but nothing happened. Technically, something happened – but not what I expected – basically Windows would not boot and sometimes it reached the startup screen, sometimes it didn’t. Once or twice I’m sure I saw the once-familiar blue screen of death flash up for a fraction of a second before the PC reset itself. I tried a normal startup as well as last known good configuration, before finally I gave up and tried to recover the system using the Windows Server 2008 DVD but this couldn’t locate an installed copy of Windows to recover. What it would let me do though was get to a command prompt, where attempting to access drive C: returned:

The request could not be performed because of an I/O device error.

That didn’t sound good but I managed to run diskpart.exe and list disk told me that disk 0 was online. Moving on to try list partition told me that the two partitions I expected to see were there but it was list volume that really helped shine a light on the problem – the DVD drive and WinRE volumes showed as healthy but drive C: was reported as being a 110GB Healthy partition of type raw (i.e. not NTFS). At this point, I began to panic. Something had happened to the NTFS and that could mean lost data. I have a reasonably recent backup but the last couple of weeks at work have been mayhem and there was some stuff that I know I don’t have a second copy of.

I could call my company’s IT support number but it normally takes at least a day for a callback; I’d have to take the laptop to a “local” office (a 100 mile round trip); if a system won’t boot, the standard approach is to spend a very limited amount of time trying to fix it (probably none at all for people like me who run a non-standard operating system) before simply wiping the system and installing a new corporate build. That means going back to Windows XP and Office 2003 (which is painful when you are used to Windows Vista/Server 2008/7 and Office 2007), the loss of an activated copy of Windows Server 2008 Enterprise Edition (which is not exactly inexpensive) and also losing my data (the standard build has separate system and data partitions and my build does not… although now I’m starting to reconsider that choice).

I’m pretty sure that the root of this problem is a failing hard disk (after all, it is a “Western Dodgital“) but, without the tools to prove it, I’ve got a snowball’s chance in hell of getting a new one) and, to cut a long story short, when it comes to supporting my non-standard build, I’m on my own (at least unless I can prove that the hardware is faulty).

One of the podcasts that I listen to is “Security Now” and the hosts (Steve Gibson and Leo Laporte) spend far to much time plugging Steve’s SpinRite product. I’ve often wondered if it was any good but was not prepared to spend $89 for speculative purposes – this afternoon I decided that it was time to give it a try.

After paying up, downloading the software, extracting the ISO and creating a bootable CD, I ran SpinRite and performed what is referred to as a “level 2” scan. For the first 20 minutes, SpinRite ran through my disk finding nothing untoward but at the 50% mark it switched into “DynaStat” mode and started trying to identify lost data on one particular sector, slowly narrowing down the unrecoverable bits of the sector. Just this one sector took almost 5 hours and around 2000 samples but all of a sudden SpinRite took off again and finished up the rest of the drive in another 20 minutes. Even though the sector was marked as unrecoverable, a technical support conversation by e-mail confirms that this relates to the data, not the sector. With some trepidation, I restarted the computer, waited with baited breath and have never been so glad to see Windows start checking its disk(s). After a short while, chkdsk was complete and I was presented with a logon screen.

There’s nothing in the Windows event logs to indicate why my system failed to boot so many times this afternoon so it’s difficult to say what the problem was and whether it really was SpinRite that fixed it (although SpinRite did report the SMART data for the drive and there were a number of seek errors, backing up my theory that the hard disk is on its way out). What’s important though is that, as I write this post, Windows Server 2008 is 63% of its way through a backup and all seems to be well. I’m not quite ready to wholeheartedly endorse SpinRite – it does almost sound too good to be true – but, on the face of it, it seems to have recovered enough data on my disk to let Windows boot and for me to gain access to my system. That’s worth my $89 – although somehow I don’t see me getting that particular item through on my expenses…

Mounting ISO images in Windows 7

The Windows 7 beta includes the ability to burn CDs/DVDs from ISO images but it doesn’t seem to be able to mount them as volumes. As this beta is supposed to be feature complete, I don’t think it’s very likely that we’ll see this functionality added in future builds (even though rival operating systems can already do it…) but there are some third party alternatives available.

Last week, I (finally) got around to upgrading my netbook from Windows 7 milestone 3 (build 6801) to the beta (build 7000) and, as I didn’t have access to a DVD drive, I used Slysoft Virtual CloneDrive to mount the ISO as a drive, after which I could select the Windows 7 setup.exe from the autorun menu. It did exactly what I needed it to and that, rather lengthy, upgrade process didn’t seem to hiccup at all. From a quick trawl of the ‘net, there is at least one alternative out there (which I haven’t tried) – PowerISO – although this is a chargeable product and Virtual CloneDrive is freeware.

I got burned by [Google] FeedBurner

On Friday night I wrote a post which optimistically suggested that I’d successfully migrated this site’s RSS feeds from FeedBurner to the new Google FeedBurner platform. Unfortunately many people won’t have seen that post (at least not until after I spent a good chunk of my weekend enlisting the support of known subscribers to try and work out why the primary URL given out for this site’s RSS feed wasn’t working: Thanks go to Bill Minton, Alistair Doran, Garry Martin and Aaron Parker) – it all turned out to be because FeedBurner’s instructions for users of their MyBrand service have a vital step missing…

I’ve made the point before that free online services are not necessarily an ideal solution but nevertheless, many of us rely on them and hopefully my experiences will help out others who are going through the (soon to be forced) migration from the (old) FeedBurner platform to (new) Google FeedBurner.

If it ain’t broke, why fix it?

Some time ago, Google bought FeedBurner. That’s not all bad – I’m sure the guys who started FeedBurner were pretty stoked, and for us customers (who, after all, were largely using free services), things got better as premium services like MyBrand (more on that in a moment) were made free.

It was inevitable that at some point the service would be absorbed into Google’s infrastructure and if I hadn’t moved voluntarily in my own timescales (i.e. over a period when I was off work and potentially had some time to deal with any resulting issues), account migration would have been forced upon me at the end of this month.

What’s all the fuss about?

I may not have the largest blog in the world but I’ve worked hard for several years to get this blog to where it is now. With that in mind, I approached this migration with some trepedation but the Transferring FeedBurner Accounts to Google Accounts FAQ made it all sound pretty straightforward, including this text:

“Will I lose all my subscribers in this process?
You should not lose any readers of your feed during this transition process. All feeds.feedburner.com URLs will redirect your readers to feeds hosted by Google.

[…]

I use MyBrand, the service that allows me to map a domain I own to my feed. Do I need to change anything?
Yes. After transferring your account, you will be sent an email with instructions on how to change MyBrand. You can also get these instructions on the MyAccount page after the transfer.

You will be required to change your DNS CNAME to the Google hosted domain service, the same service that handles custom domains for Google applications like Blogger and Google Apps for Your Domain.

Please note that the CNAME will no longer be the same domain as the domain that serves feeds, but the service level and functionality will be identical.”

That all sounded straightfoward enough, so I followed the migration steps on FeedBurner’s website until I saw a message that indicated successful completion. The follow-up e-mail included this text:

“Important! If you use MyBrand, FeedBurner’s custom-domain service, you need to make a very important change to ensure your feeds remain available to subscribers using your custom domain(s).

To make this change in your Google account, follow the instructions listed in your account’s new MyBrand page: http://feedburner.google.com/fb/a/mybrand”

I followed the instructions (i.e. made the changes to my DNS zone) but, 48 hours later (and after confirming that the name was resolving correctly) I was still receiving HTTP 404 (Not Found) errors when I used the http://feeds.markwilson.co.uk/marksweblog/ URL (i.e. the one that uses the FeedBurner MyBrand service to redirect subscribers to the real location.

The missing step

Double-checking my account settings and the DNS record I had edited, I decided to deactivate the MyBrand service and reactivate it. Some time later (I’m not sure exactly how long afterwards, but not long) the 404s were gone and I was able to check with some of my subscribers that their feeds were updated with posts from after the migration. Whilst I waited for this confirmation, another FeedBurner user confirmed that this had worked for him too but it would be good if the instructions included this step…

Why is this Google’s problem?

To be fair to FeedBurner/Google, buried in a post on the FeedBurner Status Blog is this text:

“4-DEC 2008: Have you recently moved your feeds to a Google account? Seeing a ‘404’ error when trying to view your feeds, and you use our MyBrand service? Try the following workaround to fix the problem:

  1. Sign in to feedburner.google.com.
  2. Visit My Account > MyBrand.
  3. Click the remove link next to your current MyBrand domain(s), and then click Save.
  4. Re-enter the domain(s) you removed in the previous step and then click Save.
  5. Try to view the feed(s) that were showing 404 errors before. They should now display your content.”

It should be noted though that these instructions don’t work (there is no remove option in the new interface)… and there is nothing more recent in the blog about this.

Meanwhile, the MyBrand page in the FeedBurner account settings is typically Googlite in its tone, basically telling us that we’re welcome to use the service but if it breaks we’re on our own.

FeedBurner provides no technical support for MyBrand; you must configure DNS settings correctly with your domain/web hosting provider’s help. More technical detail and discussion of the requirements for using this service are available in this Help topic.

It can take up to 24 hours for a new CNAME entry to take effect. If your new feed address isn’t working, have a nice day and check back tomorrow.”

Thanks a bunch Google. My DNS is fine… but your migration process is broken and it seems that you don’t provide any method to report the problem.

Several other people have written about this problem (including one particularly useful post on the whole migration process) so it’s certainly not an isolated case but Google responses are nowhere to be seen on this two-week old post on the FeedBurner Help Group (providing a service without formal support is one thing but monitoring your own help forums is a basic courtesy).

Conclusion

Ironically, the FeedBurner MyBrand service (which let’s me host a FeedBurner Feed under my domain name) that caused this a problem but, because I use this service, many of the subscribers to this blog are using a URL that is under one of my domains (so, ultimately, under my control). This problem may have cost me a good chunk of my weekend but at least I got it fixed and if I hadn’t been able to work out what was happening then I would have reverted to serving the feed directly from WordPress (with the consequential hit on bandwidth and loss of analytics). Imagine if I had a popular blog with a large number of subscribers that wasn’t hosted on my own domain name and the service went belly-up…

Useful Links: January 2009

A list of items I’ve come across recently that I found potentially useful, interesting, or just plain funny:

Why adjustment layers are preferable to directly editing an image in Photoshop

I’ve been trying to improve my Photoshop skills recently including signing up for Digital Photography evening classes at a local college (which, 4 weeks in, are very disappointing) but I’ve also been picking up some tips at my local camera club.

At last night’s club meeting, John Winchcomb gave a very technical talk on tone and colour correction which I’m still trying to get my head around but that talk included a very useful tip: instead of reaching for the various adjustment options on Photoshop’s Image menu (including common options like levels and curves), consider creating a new adjustment layer instead. That way it is possible to go back and edit the adjustments as they are applied as a non-destructive edit rather than being directly applied to the image. Normally the adjustment layer will apply to all layers below but it can be created as a clipping layer to only affect the layer immediately below.

Other advantages to adjustment layers include the ability to selectively edit using an image mask and also to copy and paste adjustment layers in order to apply the same changes to multiple images.

Whilst on the subject of layers, it’s probably worth highlighting another tip I picked up recently: before doing anything in Photoshop, create a new layer by copy (Ctrl+J on a PC or command+J on a Mac) and work on that. Using this method, the original image will remain on the background unaffected, should you ever want to revert, or to compare the manipulated image with the original.