With EXTREME thanks to Ramesh Srinivasan

I have my Title_url menu extension working again (yea I’m a happy camper)

Hey Susan,

Recently I had an update on this from an IE MVP. I’ve tested his solution
and it works fine in IE9.

>From Socrates (Soc) Trikes, IE MVP


I have received the following response from the IE team.  If the following
makes any sense to you, will you update the script?

The context menu extension is broken due to a by design security
improvement. The context menu script is being executed in Local Machine
Zone. For this, we grant access to the document. However, we now block the
boundary between the window proxy and the local document. This is why the
set of the textarea’s value fails when using location.href.

But since you still have unrestricted access to the document, the workaround
is to use  window.external.menuArguments.document.URL instead of


The file you want to alter (as administrator/elevated, if you’re using
Windows 7/Vista) is “C:\windows\Web\Title_URL.htm”. I shall test this in
earlier IE versions and update the script. It was MVP Bill James who wrote
this brilliant script originally. And I implemented it as a button/Extension


Ramesh Srinivasan

Credits to Socrates (Soc) Trikes, IE MVP

So the revised content of the title_url.htm page is like this:

Title_URL right-click context tool for IE4+
Bill James – – rev 2 Nov 2000
<form name=a><textarea name=a1></textarea>
<SCRIPT language=javascript defer>
  //To disable popup confirmation, change “showConfirm=1” to “showConfirm=0”
  var showConfirm=0
  var oExtArgs=external.menuArguments;
  var sTitle=oExtArgs.document.title;
  if(sTitle==”)(sTitle=’No Title’);
    kludge – to keep newlines we must set text in
    textarea, then create textRange and copy that.
  var oTarget=document.a.a1;
  oTarget.value=sTitle+’: \r\n’+oExtArgs.document.URL+’\r\n’;;
  var oTextRange=oTarget.createTextRange();

And sure enough my copy the title and url of a web page is back to working again!

KBs for SBS 2011 Essentials

A Scheduled Server Backup May Take An Excessive Amount of Time
Load Driver Fails to Find an Appropriate Driver File
Unable to Send Email Notification for Alerts
Remote Web Access File Sharing Gadget Search Results May Be Inconsistent on Fareast Language Versions of the Server
Bare Metal Recovery of Server May Fail
Uninstall the Client Connector Software Prior to Upgrading the Client Operating System
Network drivers for devices implemented for Server operating systems only cannot be used for iSCSI boot

So that says IE9 will be starting to be offered up around June-ish on Windows update.  One thing I’d recommend to Microsoft is that they provide some sort of better way to get help for IE9 issues.

I’ll give you an example.  I use …or rather…used to use a browser script that added a little right mouse click to IE 4 through IE8.

It worked perfectly up until IE9.  Now when I try to use it, it throws off an error —

An error has occurred in the script on this page Line 17 Char 3 Error Permission denied Code 0 url: file:///c:/windows/web/TITLE_URL.HTM

So I go in search of an answer… and first found that it was reported during the beta.  But with no resolution that I can see —

So then I posted in the IE9 public forum on the issue —

And then I was told to ask my question over there: even though it wasn’t answered there in a prior thread.

So then they told me to post in

Okay.  But what feedback forum?   I’m not an IE9 beta tester but an RTM user?   The only one I could see that was relevent was the IE9RC feedback connect site.

So I posted it.

Which kinda felt like this was being phased out as this site was originally set up for the RC but at least this write up sounds like they are accepting issues —

Now to be fair my resources aren’t over yet, as I have one more place I can post to.  I have access to the Microsoft partner forums where the response came back:

Hello Susan,

Thank you for your post and glad to see you here.

I have done a lot of research on this issue, and I can reproduce it from my side. Seems that the issue happens due to the following line (line 17) of the Java script.

oTarget.value=sTitle+’: \r\n’+oExtArgs.location.href+’\r\n’;

After some further test, I found “oExtArgs.location.href” seems by default not compatible with IE9. For example, if we change the script line above to this:

oTarget.value=sTitle+’: \r\n’+’\r\n’;


oTarget.value=sTitle+’: \r\n’+location.href+’\r\n’;

Then the script does work, but cannot copy the URL. Regarding this issue, I will do some further research and then let you know how it goes. However, I appreciate your understanding that script is not supported in the forum, and I may not find out the root cause since I’m not familiar with script.

Thanks for your time and I look forward to being in touch with you.
Best regards,

Kevin Su
Partner Online Technical Community

Who was the ONLY venue that confirmed my problem and granted… wouldn’t promise a solution but at least made me feel like I wasn’t being shunted around and passed on to the next feedback location.

Want to help us get IE9 more deployed?  Then make this process of reporting issues where things worked before and now don’t a lot easier for those of us dweebs that aren’t coders and don’t understand what to do to fix something that used to work and now doesn’t. 

Streamline this feedback process and include little things like allowing people to edit their own bugs to add additional information after they’ve hit submit.  I kid you not, in that venue once you hit submit on the connect bug you cannot go back and edit your own bug.  And THAT bug was closed as ‘by design, won’t fix’ even though I positively know you can edit your own bugs because I do it in other betas I’m involved in.

Bottom line make it easier to get the advice we’ll need to ensure things work in IE9…and sometimes it’s the little things, like a little right mouse click menu that allows the ease of copying the title and url of a web page to pop into an answer on a forum…that you miss when you upgrade that is like a tiny itch that you want get if fixed and working again.

Here’s where the wizard of SBS Essentials is different than SBS 2011 Standard.

You see in SBS Essentials YOU MUST have a third party cert OR park your domain under their domain in order to have remote access.  You ARE NOT allowed to use self signed certs.

You turn on remote access and it attempts to configure your router.  If it barfs, ignore that it barfed, I’ve never seen this configure a nice good business class firewall as we tend to turn off UPnP, just manually port forward 443 to your server.

I’m skipping the set up and setting it up manually.

It enables the web site

Ignore the fact it can’t set up the router, again we can do this manually, no worries.

Yeah yeah you don’t like my non UPnP router, I get that.

Now comes the nuance you need to be aware of… the “Cert” part of the wizard.

So we’re assuming here you already have a domain name.  Let’s say this domain name is parked over on enom’s domain servers.

We put in the domain name (in this case this domain is set up at enom)

And at this point it stops because you HAVE to buy a SSL cert now.  Now to make your life easier, buy the cert from the domain where your url is parked.  You can set up the SSL cert manually, but your life will be a lot easier to just roll with the wizard.

If your domain that you are setting up is parked at godaddy, it offers up the SSL certs from godaddy.  Again at this point what it’s stopping for and saying  “You need to upgrade” has nothing to do with the domain hosting but EVERYTHING to do with the fact that you MUST have a third party cert with SBS Essentials.

If the domain you are trying to set up isn’t recognized by the domain service (like in this case it was a one) it will throw up a different wizard that you have to walk through manually to get the SSL cert.

I’ll show you what it’s like to buy the cert next, but see how this is done?  It’s a lot different than the wizard of SBS 2011.


Configure the network


This is a required task.

To configure the network

1.   On the Destination Server, open the Dashboard.

2.   Click Server Settings.

3.   Click Turn on Remote Web Access.

4.   Complete the wizard to configure the Router and Domain name.

If your router does not support the UPnP framework, or if the UPnP framework is disabled, there may be a yellow warning icon next to the router name. Ensure that the following ports are open and that they are directed to the IP address of the Destination Server:

·      Port 80: HTTP Web traffic

·      Port 443: HTTPS Web traffic


Moving the data over.

Remember on this step of the migration from SBS 2003 to SBS 2011 Essentials you re moving over the file shares.

But before you get to this point make sure that you’ve contacted your vendors that they support x64bit servers. 

Granted if your line of business application is so old that YOU are the support team, then test it on a x64 bit server and see it it works.  Normally all you need to do to get a really old app working is disable UAC and check the permissions.  You may have to give that folder full rights.

Did she just say disable UAC?  Yes I did.  Sometimes in a small firm you do what you have to do with a crappy line of business app.

Review the list of shared folders on the Source Server, including permissions for each folder, and create or customize the folders on the Destination Server to match that of the Source Server. Review the size of each folder and ensure the Destination Server has enough storage space. If not, add more storage space to the default storage pool.

If you are performing the copy during business hours, we recommend that once you start the copy of a share, you make the share read-only for all users so no more writes to the drive can take place.

When you are ready to copy the data from the Source Server to the Destination Server, perform the following steps.

1.   Log on as a domain administrator on the Destination Server.

2.   Type the following command and press ENTER.

robocopy \\<SourceServerName> \<SourceShares> \\<DestinationServerName> \<DestinationShares> /E /B /COPY:DATSOU /LOG:C:\Copyresults.txt where:

·      <SourceServerName> is the name of the Source Server

·      <SourceShares> is the folder name on the Source Server

·      <DestinationServerName> is the name of the Destination Server

·      <DestinationShares> is the shared folder on the Destination Server.

3.         Repeat the previous step for each folder. Create and remove folders as appropriate to make the Destination Server match the Source Server. The blog The forum

So what does this mean for you?  It means that SBS Essentials is now ready to go to the OEMs, in a little bit it will be on Technet for Action pack and then after that able to be sold to your customers.

What should you be doing right now?  Checking what hosted email vendors you’ll be aligning with.  Ask them their plans for integration with SBS-essentials.

And what about hardware?  While this is 64bit it’s much less in RAM due to the fact that it offloads Exchange and SharePoint to hosted deployments.

To import the Destination Server into the Dashboard

1.   Open a Command Prompt window as an administrator. For more information, see To open a Command Prompt window as an Administrator.

2.   Change directory to c:\program files\windows server\bin

3.   Type wsspowershell.exe, and then press ENTER.

4.   Type add-wsslocalmachinecert, and then press ENTER.

5.   Reboot the Destination Server.

After rebooting it looks like this

Since I’ve been blogging on migrating from SBS 2003 to SBS essentials a new version of the document came out.$Microsoft+Download+Center$

This one includes a script to add users to the console

To use a script to import users into the Dashboard

1.   On the Destination Server, open Notepad and copy the following text into it:

“Script to Import Active Directory Users to the SBS 2011 Essentials Dashboard”

import-module -name activedirectory

$users = get-aduser -filter *

foreach ($user in $users)


 If ($user.enabled -eq $True)


$imported = Select-String -path “C:\ProgramData\Microsoft\Windows Server\Data \settingsproviderdata\IDENTITY\USERS\index.xml” -pattern $user.samaccountname


If ([boolean]$imported -eq $False)


$import = read-host “Do you want to import” $ “to the Dashboard [y]/[n]”


If ($import -eq “y”)


write-host {Importing User} $

import-wssuser -name $user.samaccountname | out-null

If( (get-wssuser -name $user.samaccountname).UserStatus -eq “Enabled”)


write-host User Successfully Imported







2.   Save the file on the Destination Server in any folder with a name you choose (for example, C:\

3.   Open a Command Prompt window as an administrator. For more information, see To open a Command Prompt window as an Administrator.

4.   Change directory to c:\program files\windows server\bin.

5.   Type wsspowershell.exe, and then press ENTER.

6.   Type <path><filename> for the script file you created (for example, C:\, and then press ENTER.