Prepping Users for a Network Install

Yesterday, Susan blogged about James who asked about what types of email to send to a client’s employees to get them excited about an upcoming install.  I started to post a comment on her blog, but decided it warranted a post of its own.

Whoa James . . . back up the truck and take a look at where you’re going . . .

First – scrap the idea about email.  Call me crazy, but as far as I’m concerned email is not – I repeat NOT – a relationship tool for the smallbiz space.  Not only is it too impersonal compared to a phone call or face-to-face encounter, but with spam and increasing amounts of legitimate messages, email is losing some value in the users’ eyes.

Second – what is your motivation for wanting users to be excited about the install?  I would guess that the underlying thoughts here would be to make the overall transition go as smooth as possible.  So how can you go about this?

When engaging users prior to the install, think PERSONAL CONTACT!  Engage as many users as possible face-to-face.  Whatever you do – don’t try to sell them on the install – the project has already been bought.  Work on understanding what are the most important aspects of each users’ computing experience?  What applications dto they depend on daily?  What are they looking forward to with the migration?  What are they worried about with the migration?  The idea here is simple – engage the user, show genuine concern for their issues and concerns.  You’ll be able to put together a better plan-of-attack for the installation so that the greatest number of user issues & concerns are addressed up front, which will allow for a smooth transition for all.  Besides aiding the migration itself, you can’t discount the relationship-building aspect of engaging the users.  The ultimate goal is to have your users feel comfortable enough to approach you with any questions and/or issues they may have at any time, and to use your technology expertise to truly help the client.

Speaking of helping the client – I cannot overstate how important I think it is to take the effort to learn the client’s business – how they work, the information they depend on and the places that could use improvement.  A network upgrade shouldn’t just be putting in new hardware & software – it should be part of an overall business upgrade that looks at all aspects of their business needs, determines what points can be addressed with technology and what processes can be streamlined.  One point that I think is often overlooked is how much of this discovery process should happen before the migration.  For most of us in the smallbiz space, SBS is going to be the solution for an overwhelming majority of our clients – because of just how flexible it is and how extensive its feature set is.  However, I think this has the potential for us to fall into the trap of offering the same solution to each client.  While most of our installs will be centered around SBS, that doesn’t mean that each solution can’t be unique for the individual customer’s needs.  The whole process of getting to know the customer’s needs and their users’ concerns also gives you a roadmap for training – what features and functionality to focus on that will benefit the customer the most.  (And yes – extensive training on Outlook is always a hit . . . shared calendars / contacts / tasks / etc, recovering deleted items, customizing views, rules, etc. etc. etc. )

So, that’s my view – forget email as an effective engagement tool and never underestimate the value/benefit of personal contact and a handshake.

PDF icon in Companyweb

Ok – if you’re like me, you have a list a mile long of those little things you want to fix / research / figure out / or just play with – and it seems that life has a tendency to make digging through that list take longer than we’d like . . .

Well, one of the little things on my list was getting icons for pdf files to display in my Sharepoint document libraries.  I googled the answer months ago, but just never got around to doing it.  Well – with more and more customers using Sharepoint, it was definitely time to take care of this, and make it easy to configure on multiple servers.

The process to do this is fairly simple – we find a 16×16 pdf icon and put it in the c:\program files\common files\microsoft shared\web server extensions\60\template\images directory.  Then we open the c:\program files\common files\microsoft shared\web server extensions\60\template\xml\docicon.xml file, scroll down to the ‘By Extension’ section and add the entry 

That’s all fine & dandy – but I really dislike manual, repetitive steps – so I automated it   :)   I started with a docicon.xml file from a clean SBS install and added the necessary entry for the pdf extension.  I then took the updated docicon.xml file, the 16×16 pdf image (pdf16.gif), and a simple batch file (pdficon.bat) that will put the files where they need to be and combined them all into a nice little zip file that you can get here.

Just download the file to your server, unzip & run the pdficon.bat file (locally on your server), and you should be good to go!  Note that the batch file doesn’t overwrite your existing docicon.xml file – it renames it to docicon.old before putting the updated file in the directory – so if you need to go back to the original for whatever reason, it’s just a matter or renaming files. 


Ok, so everyone knows that we should be using passphrases instead of passwords, right?

And everyone knows who Jesper Johansson is, right?

Good.  Well, the good Dr. J has posted part 2 in his 3 part series about pass phrases vs. passwords.

The Great Debates: Pass Phrases vs. Passwords. Part 2 of 3:

The Great Debates: Pass Phrases vs. Passwords. Part 1 of 3:

We’ve got company . . .

Hey all – we’ve got three more MVPs blogging – so be sure to check them out:

Scott Colson  (CRM MVP):
Scott’s CRM World         Web         RSS

Javier Gomez  (SBS MVP)
Javier’s SBS Wonderland     Web       RSS

Dean Calvert   (Aussie SBS MVP)
Looking At The World – From Down Under      Web      RSS

It’s about time . . .

I may be a bit behind, but I just noticed today that Symantec has finally released an update so that Norton Anti-Virus will play nice with the Security Center in XP SP2 . . .   needless to say, it’s about time – there’s nothing I hate more than having to tell a user “oh, it’s safe to ignore that warning that your PC may be at risk . . . “  Unfortunately, the entire world doesn’t use Trend . . .   ;^)

Error logging out of RWW

This one was something new to me – this error appeared in our Server Report this morning.  This followed an interesting behavior yesterday where we kept getting ‘Page cannot be displayed’ whenever we logged out of Remote Web Workplace.

Critical Errors in Application Log 


Event ID

Last Occurrence

Total Occurrences



10/6/2004 12:30 AM

11 *

The following fatal error occurred in the Remote Web Workplace application:




Error Message:

A potentially dangerous Request.Cookies value was detected from the client (Microsoft.Sharepoint.AcceptHeaders=”…pps=FALSE&one=FALSE&mpp=FALSE”).


Stack Trace:

at System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)

at System.Web.HttpRequest.ValidateCookieCollection(HttpCookieCollection cc)

at System.Web.HttpRequest.get_Cookies()

at remote.RAPLinks.TakeAwayOWACookies(HttpRequest httpClientRequest)

at remote.signout.Page_Load(Object sender, EventArgs e)

at System.Web.UI.Control.OnLoad(EventArgs e)

at System.Web.UI.Control.LoadRecursive()

at System.Web.UI.Page.ProcessRequestMain()

at System.Web.UI.Page.ProcessRequest()

at System.Web.UI.Page.ProcessRequest(HttpContext context)

at System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Thanks to Alan & Aaron on the SBS dev team, I was able to get this sorted.  Part of the log off process removes a session cookie from the client PC.  This cookie, when created, includes a random string of characters.  As pure coincidence, it happens that ASP.NET interperets that random character string as a potentially dangerous construct.  As a result, the error is thrown & the logoff page fails to load, resulting in a ‘Page cannot be displayed’ for the remote user.

The good news is that this isn’t really a problem – it’s just ASP.NET being a little over-cautious.  Also, there’s a very good chance that you won’t see this.  But if you do, how do you resolve this?  The easiest method is to manually delete the cookie from the user’s profile on the remote PC.  Yep – that’s it.  :^) 


Another one bites the dust . . .

. . . or finally gives in to Susan and starts blogging  :^)    Seriously, we’ve got Sean Daniel from the SBS dev team in the blogging fold.  I’ve added a link with the others (for those of you actually viewing the web edition) – and for the syndicators, you can pull Sean’s (atom) feed here  

Now who else thinks we need to get Scott Colson (new CRM MVP) blogging?   Hmmm – is still available . . .   ;^)

A little extra security for your Remote Web Workplace . . .

Ok, so we’re all familiar with the inherent dangers with VPNs, right?  Especially if we as administrators don’t have control over the remote PC.  Who knows what viri / malware / spyware it might be infected with, just itching for the chance to have an open door into your LAN.  Now granted, Windows 2003 let’s us use VPN Quarantine, but it’s not quite where we want to be with quarantine services.

Of course with us SBSers, this isn’t that big of a deal since we have Remote Web Workplace.  We don’t need VPNs nearly as much as we used to, as users can simply access their XP Pro PC via the RWW website.  However, I’m sure you’ve all noticed that little option users have when they connect to their office PC:

“Enable files or folders to be transferred between the remote computer and this computer“

Now I understand why this functionality was added – because I have used it once or twice.  However, what if you’re a little extra paranoid and want to err on the safe and not allow your remote users to have this option?  Well – there isn’t any easy GUI way to disable this – but we can hide this option with a few manual edits.

First and foremost – realize that this is not an offically supported hack – but it does work, and with a little fore-thought, we can get ourselves back to a supported config pretty quickly if needed.

1)  On your SBS, navigate to c:\inetpub\remote
2)  Find the selectpc.aspx file and make a copy of it.
3)  Rename the copy you just made to selectpc_original.aspx
4)  Open the selectpc.aspx file in notepad.
5)  Find the following group of lines in the file:

<asp:CheckBox TabIndex=”5″ id=”checkConsole” runat=”server” CssClass=”optionText”></asp:CheckBox><BR>
<asp:checkbox TabIndex=”6″ id=”checkConnect” runat=”server” CssClass=”optionText” Checked=”true”></asp:checkbox><BR>
<asp:CheckBox TabIndex=”7″ id=”checkDrives” runat=”server” CssClass=”optionText”></asp:CheckBox><BR>
<asp:CheckBox TabIndex=”8″ id=”checkPrinters” runat=”server” CssClass=”optionText” Checked=”True”></asp:CheckBox><BR>
<asp:CheckBox TabIndex=”9″ id=”checkAudio” runat=”server” CssClass=”optionText”></asp:CheckBox><BR><BR>

(watch for line-wrap.  Each line should start with   <asp:CheckBox )

What we want to do is move the middle line to the bottom, edit the TabIndex values on the lines so they’re in order, and set the visible flag on the “checkDrives” line to false.  The reason we move the “checkDrives” line to the bottom is that if we don’t, we’ll still see a blank line where this option normally appears on the Remote Web Workplace.  So, you want this group of lines to look like:

<asp:CheckBox TabIndex=”5″ id=”checkConsole” runat=”server” CssClass=”optionText”></asp:CheckBox><BR>
<asp:checkbox TabIndex=”6″ id=”checkConnect” runat=”server” CssClass=”optionText” Checked=”true”></asp:checkbox><BR>
<asp:CheckBox TabIndex=”7″ id=”checkPrinters” runat=”server” CssClass=”optionText” Checked=”True”></asp:CheckBox><BR>
<asp:CheckBox TabIndex=”8″ id=”checkAudio” runat=”server” CssClass=”optionText”></asp:CheckBox><BR><BR>
<asp:CheckBox TabIndex=”9″ id=”checkDrives” runat=”server” visible=”false” CssClass=”optionText”></asp:CheckBox><BR>

(again – watch for line-wrap.  Each line sould start with   <asp:CheckBox )

That’s it!  Save the selectpc.aspx file and try it out – no more option to connect drives.  And of course, if we need to return to the original configuration, it’s simply a matter of renaming the selectpc_original.aspx file to the default selectpc.aspx and you’re good to go.

And before anyone asks, no – I’m not aware of a way to configure this per user   :^)