Master & Cmd-R

Excel slow to open network files

We ran into an issue with Excel files taking a long time to open from a network location after Trend 8 was installed – the issue has something to do with the way Trend scans files before it allows them to open. One of the indicators of this problem was that when you open a spreadsheet off the server, we’d see three dialogue steps in the progress bar:

Contacting filename.xls…
Downloading filename.xls…
Opening filename.xls…

With a progress indicator beside each step, almost as if there’s a delay forcing a download of the file. When Trend is disabled, the file opens immediately – at least, the steps happen so fast that we don’t see them at all.


The fix that was recommended by Trend support worked for this situation:

  • Open the ofscan.ini share on the server where Trend is installed.


  • Find AvoidExcelSaveIssue in ofcscan.ini, and change it to 0.


  • Logon the web console, and go to Global settings. Click on “Save” without doing any change. This will push the AvoidExcelSaveIssue setting to client.


  • Wait for 5 minutes for the setting to deploy.
  • To verify if the setting was applied:

Open the registry and go to


Verify that the REG_DWORD —> AvoidExcelSaveIssue = 0 is in place
Reboot machine to apply the settings – you should be good to go after the reboot. Of course, your mileage may vary

How to wrap up an Office 365 IMAP Migration

On a recent migration from hosted Exchange to Office 365 using an IMAP Email Migration, we ran into a bit of an issue when trying to complete the migration:

There’s no way to stop it gracefully!

It turns out that Microsoft has removed the Stop button, and have deprecated the PowerShell cmdlet Complete-Migration (see below).



Why is this a problem?

Well, the Stop command (or the Complete-Migration command in PowerShell) is supposed to contact the server and run one last sweep through the mailboxes for any changes that have happened since the migration started. Once it runs that final sweep and syncs any changes, it stops the migration and sends a report to whomever you have specified at the beginning of the migration. Since this is no longer an option, Microsoft suggests letting the migration run completely through and then waiting 24 hours after cutting over your MX records to allow it run another sweep.

However, an IMAP migration can take a very long time to complete, and it won’t run a second pass at your migration until it has completed at least once. So, if you’re under the gun and trying to complete your migration before the end of the month in order to avoid another billing cycle for your client on their old Exchange provider, you’re going to have to come up with a Plan B.


Now what? What’s my Plan B?

The answer is simple – backups! Make a backup of your OST files (Export to PST from Outlook). Once you’ve set up the Office 365 Outlook profile, you can import from the PST and it will sync up into Office 365 at its own comfortable pace, getting you out from under the gun and enjoying your weekend.

Once you’re happy that you have all your mailboxes backed up, you can pause the migration and click the delete button in the Exchange Control Panel. The does the equivalent of the Remove-MigrationBatch PowerShell command, but it does not sync any changes in your mailboxes on the server.

My final opinion:

The IMAP migration process has more glitches and gotchas than it’s worth – and here’s why:

  1. It won’t copy over calendars and contacts, so you’re forced to migrate those manually
  2. It won’t copy any folders with a forward slash in its name (/)
  3. It won’t copy any items larger than 35MB (this is the official MS word, but rumors on the community forums are that it can skip file sizes as small as 30MB – Your mileage may vary)
  4. Unlike a migration from On-Premise Exchange, it won’t tell you what has been skipped, or why
  5. It can take forever! A simple migration of 35 users ran for over a full week (168 hours) without completing a full sweep

From now on, any migrations out of a Hosted Exchange provider that I need to do, I’m going to be exporting Outlook profiles and importing them for each user. This plan of attack might take a while to get up into the cloud, but for the most part your users are not going to mind – they have everything on their computers in their Outlook profiles, and it will sync up to the cloud with no further interaction on your part. Just make sure that you have cut the MX records over first and waited a while to catch any email stragglers.

Good Luck, Have Fun!


Set IE10 to open in Desktop mode


In Windows 8, when Internet Explorer is set as your default browser, its default option is to open as a full screen App. There are several ways you can get around this:

  1. Navigate to C:Program Files (x86)Internet Explorer and open iexplore.exe, and pin it to your task bar. Internet Explorer will open as normal in desktop mode.
  2. Under Internet Options – Programs you can specify how IE handles links; either it will open them in App mode, or on the desktop. If you set that to Always open on the desktop it will open links on desktop mode, provided you’re not in the App version.



But what if you want to tuck App mode away entirely? Here’s one way that I’ve discovered:

3. In order to set IE to not open in App mode, you need to specify another browser as your default browser – here’s how you do that.

First, when you hit start, you’ll notice that the icon for IE is the new Fluid style, and not a standard IE icon.


Alongside that we have Chrome, which still looks like a normal icon:


From your start page, start typing in default to search for the option to set Default Programs:


When you select Chrome (or whatever other browser you want to use), you’ll see it only has 1 default (if any):


Click the option to Set this program as default, and that will change to looking like this:


And now, the icons have switched around:


Chrome now has a full size somewhat fluid looking icon, and IE looks like a normal icon again. Also, when you search for Internet, you’ll see that the App version of IE has been turned off:



QNAP Offline?

Most of our clients use QNAP devices with Backup Exec – they’re amazing devices, and we love to use them. We ran into an interesting issue in the last few days, though (right after the switch from Daylight Savings Time)… we found that some of our client’s backups were failing in Backup Exec, and that the QNAP would show as being offline. And surprisingly, after flicking the switch in Backup Exec to bring it online again, it would immediately go right back to being offline.


Another clue to the strangeness of this problem is that if you tried to connect to it by UNC patch it would give an error about the server being misconfigured – all in all, it was acting bizarre.


Well, turns out the problem was a timing one – if you log onto the QNAP and select General Settings:





And then Date and Time:



You might find (as we did) that your beloved QNAP did not make the time change with your servers, or maybe that it has just fallen out of touch by more than a few minutes – which can be enough to make things fall over.



As this screenshot shows – make sure your time settings are accurate, and then make sure to set the time to synchronize automatically – either to an internet time server, or to your local Domain Controller (like what we have here). We found the time interval was set to 7 days, but a good idea would be to bump that up to a happy medium like once per day – that way your QNAP doesn’t wait a week to bring itself back on track again, and your backups don’t fail on you.

Once you get your time sorted out, you should be able to bring it online again in Backup Exec and start pushing backups out to it again.

Hope this helps… Good luck and have fun!

Exclaimer Outlook Photos

Outlook Photos by Exclaimer is a great (free!) utility for adding photos to your Exchange users and distribution groups, allowing you to put faces to names and greatly improving the social aspects that Outlook 2010 has built in (It’s also a great way of super-imposing mustaches on all your users in preparation for Movember :D).

Start by downloading the program from their website and installing it on your system. You can install it on any computer on the domain, as it will ask you where your AD is, and scan it remotely – you don’t need to install it on your server.

There are several ways to go about getting the users who need photos – you can either tell Outlook Photos to scan the entire Active Directory to find users that need photos:


Or you can point at a folder of photos that you’ve got prepared and let Outlook Photos match them up:


If you’re going to be using this option, make sure you name all your images with the correct names of the users you want to update. OP will scan through your AD and match the file names to the names of people it finds, and then ask you to manually assign any names it can’t find a match for.


Also, you can refine your search to a specific OU by clicking the Scan AD button:



Once you click it, a window will pop up where you can select the container that you want to search:



If you have multiple Domain Controllers, a warning will pop up in the ribbon recommending you select a specific DC to make the changes on:



Go ahead and choose a DC, and click OK for it to search the container and show you all the users that need / have pictures associated with their profile (based on your choice of what it should display):



Once you’ve found the user or users that you want to update, double click on them in the list and select Choose Picture:



Browse for the picture that you want to replace it with and click Update: note that whatever size image you choose, it will be adjusted to 96×96 pixels, so you might want to start with them at that size if you don’t want scaling silliness to ensue.



After putting your admin password in, the thumbnailPhoto field is now populated – rinse and repeat until you’ve got all your users updated.



One important thing to remember is that these changes won’t show up automatically, as Outlook will only sync the Global Address List once per day – if you want to force the changes sooner in order to see the magic that you have just created, open Outlook and click Send /Receive – Send/Receive Groups – then Download Address Book…



Windows 8 Freezing Constantly?

I’ve been running Windows 8 in BootCamp on my iMac ever since the Consumer Preview was released (loving it!), but it wasn’t until I installed the Release Preview on my MacBook Pro that I ran into the dreaded and mysterious freezing problem. With no explanation and no warning, Windows would just lock up, forcing me to reboot to get it running again. The fix, thanks to Tripp Parks at Microsoft, is quite simple…


From an elevated command prompt run the following command followed by a reboot:

bcdedit /set disabledynamictick yes


Here’s what it looks like:

Fix for Windows 8 Freezing Constantly


If you run into this error:



It’s because you didn’t elevate your command prompt – right click on cmd in your Start Page and select Run As:

Run as...


Of course, your mileage may vary, but this worked for me right away – enjoy!

How to Map a Drive Letter to a SharePoint Library

Sean wrote an interesting how-to that sparked a bit of discussion between him and I on SharePoint best practices – primarily because I love being able to map a drive letter to a network resource in order to make finding what I want easier, and wanted to know why it wasn’t best practice. Here’s the steps for setting this up, and his comments on why you don’t really want to do this:

Note: I’m not endorsing this.  But this is how it is done, when the solution fits the problem.

  1. Click Map Network Drive in “My Computer” or explorer
  2. Pick your favourite letter – Cookie Monster prefers the letter C
  3. Paste in the path of the Document Library in SharePoint (for safety sake, be sure to specify a library and not the whole site or expect heartache later (for example:

Windows handles the rest, setting it to the path it needs to deliver it, in this case: \\\mysites\mylibrary

That’s the How: (pretty easy, right?) – now for the Why Not:

    • Users can point and click/delete things:

Makes sense – the chances of your library getting accidentally cleaned out on a misclick are just too great – much better (and safer) to train your users to use SharePoint properly.

    • Viruses can see/use network drives:

This is a pretty big security hole, and is enough to scare me away from mapping drives to SharePoint Libraries and leaving them there. Not to say, of course, that there aren’t uses for mapping libraries to drives, but it shouldn’t be the go-to solution for all users. Explorer View is still your best friend if you need to move a lot of files at once.

  • Users aren’t using SharePoint properly (versioning, metadata) and just using it like a dropbox:

Why cripple SharePoint to be a dropbox when it can do so much more? Nuff said.

Using Cron to automate MySQL maintenance

We recently needed to go through a list of around 50 sites that we host through HostGator and optimize all of their MySQL databases. Going through each one and optimizing the database tables manually was a very unappealing process, so my trusty compatriot Keith worked out a process to use Cron jobs to automate the procedure. It took a bit of tweaking to get the right arguments in place, and a lot of looking around on the internet to fix a problem with conflicting arguments in the script, but in the end we triumphed… and man, is it awesome!


This is taken in the context of our site hosting in HostGator, but the process will be similar (or the same) for any site that uses CPanel.


First, log into your CPanel and look for the Cron jobs icon:



Update the email address that you want your Cron job to go to: in this case, we’re specifying the output, but it never hurts to have this set for any future jobs you want to run that don’t need to have a specific email output configuration. (more on this in a bit).



The next section is where you create your Cron job – in order to test and make sure everything is working, create a new job to run every 15 minutes. What, you don’t believe in testing scripts before releasing them into the wild? I… I don’t even know you any more!



Paste the following code into the command section:

mysqlcheck -u root -ppassword --auto-repair --optimize --all-databases 2>&1 | mail -s "MySQL Database Optimization" myemail


And click on the Add New Cron Job button



*Replace root with your username and password with your password – note that while there is a space between the –u and your username, there is no space between –p and your password, and (most importantly), there are two dashes on the auto-repair, optimize, and all-databases switches. Also replace myemail with the email address that you’d like to have the results sent to (


Here’s what the individual sections mean:

mysqlcheck –u root –ppassword --auto-repair --optimize –all-databases


This section is pretty straightforward – runs a check on all your databases and repairs and optimizes them. If you’d like to run this against a single database, change —all databases to db_name or —databases [database1 database2] and so on.


2>&1 | mail -s "MySQL Database Optimization" myemail


This is the bit that outputs to an email address that you specify, and allows you to specify a subject for your email. If you leave this option off entirely, it will send an email upon completion to the email that you specified earlier, but it will dump the entire script into the subject line of your email, which includes your username and password – yikes!


If you’d like to not have an email sent at all, add this section right after all-databases:

>/dev/null 2>&1


Your new job will show up immediately below, and should look like this:



Once you’ve received a confirmation email, and everything is working – simply go back and create a new job that runs on whatever schedule you’d like – in our case, we chose the 1st and the 15th of every month, but you can use any timeframe you’d like.




Delete your test job, and you’re all set to go!


How to install & configure PDF iFilter for SharePoint Server 2010

This is something we do as a part of every SharePoint Server 2010 install – we have been unable to find any reliable instructions on how to do this, and this works for us every time.

Follow the steps below to install and configure PDF iFilter on SharePoint Server 2010:

  • Install PDF iFilter 9.0 (64 bit) from here.
  • Download the following PDF icon file:
Right click and “Save As”

And save it to C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES\

  • Next you need to edit your docIcon.xml file so that PDF files will use that icon. Navigate to

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML\docIcon.xml
and add the following line:

<Mapping Key=”pdf” Value=”pdf16.gif” OpenControl= />

**Adding the OpenControl=”” option at the end of this line fixes a problem with SharePoint prompting you to open a PDF as Read-Only or Edit – thanks to David Kvas for his post on this!

A couple of things to note:

  • Be careful you don’t introduce rogue ascii characters (don’t copy and paste from the web page into the file without making sure the formatting has been removed). A good safe bet is to simply copy a similar line from where you plan to put the new line and make your changes that way.
  • Also, because this is an XML file, don’t just plunk this line at the top or the bottom of the file, it needs to go in the <ByExtension></ByExtension> section. Again, a good idea would be simply to find that section, and work your way down the list (it’s alphabetical) and insert the line in its proper order. That way you can be sure you haven’t put it outside of its XML tags – which can cause all kinds of issues (Application broken because of an extra character in your code that you can’t see no matter how hard you look? *raises hand*)

* Note: If the file is locked and you’re unable to save your changes, perform a quick IISRESET to take care of that – be careful not to interrupt your users.

  • Next, open the registry and navigate to the following location:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\14.0\Search\Setup\ContentIndexCommon\Filters\Extension

  • Right-click Extension, then click NewKey:

  • Name the Key .pdf

  • Now add the following GUID in the default value as shown in the figure below.


  • Open SharePoint Central Admin, and click on Manage Service Applications

  • Click on your Search Service Application:

  • Select File Types from the Crawling Menu on the left:

  • Select New File Type:

  • And type pdf into the File extension box, and click OK:

  • Once you click OK, it will take you back to the previous screen where you will now see the PDF file type showing up with the icon that you specified earlier in the first phase of this process:

    * Note: if the icon doesn’t show up immediately, you’ll need to do an IISRESET to reflect the changes you made to the docIcon.xml

  • Then restart the SharePoint Server Search 14 service as shown in the figure below:

    (Start-Run-services.msc, in case you forgot)

Finally, perform a fresh crawl of your site(s) to update the index and start showing PDFs – a full crawl is ideal, but if server resources are a concern, perform an incremental crawl at the very least.

  • To get a crawl running, go back into SharePoint Admin, and click on Content Sources under Crawling:

  • Selecting Start all crawls from this menu will perform a full crawl on all content sources:

    If you want to run an incremental crawl (or a full on specific sites) select that site’s drop down menu and choose Start Full Crawl or Start Incremental Crawl. Note that if you have chosen to run an incremental crawl because of time constraints or server load, you’ll need to select each site in your list and start an incremental crawl from the drop-down menu.

Friends don’t let friends use Claims Based Authentication

How to recognize if your site admin is using (claims based authentication)

Claims Based Authentication

* Thanks to Joris Poelmans’ slideshow: Claim Based Authentication in SharePoint 2010 for Community Day 2011,

This one’s pretty easy – as soon as you enable claims based authentication in SharePoint 2010, it attaches a coded ID to all the usernames that looks like this: i:0#.w|contosousername. This coded ID looks like a weird error to the uninitiated, but not to you – oh no! You know what it all means and are able to decrypt it using the following handy dandy decoder ring:

Take it easy, man… claims are fun!

From what I’ve been able to learn about it, claims based authentication has some interesting possibilities that make it worth exploring, but has a few major gotchas. For instance, once you’ve transitioned to claims based authentication, it’s a one way street – there’s no going back.


Basically, as with any technology changes, if it’s set up properly it has a lot of new and shiny things that you can do – if set up incorrectly, it will cause a lot of headaches and will have you either blowing your application away and re-creating it, or restoring from your latest backup.