Archive for tips & tricks
Adding Microsoft Office Communications Server 2007 R2 to a Pool on a Subdomain
Posted by: | CommentsLet’s say you want to install Office Communications Server (OCS) 2007 R2 onto a subdomain (i.e. installing OCS onto a domain such as lab.domain.net instead of domain.net). If you are logged in as a domain administrator on the subdomain, you will get access denied errors when the installer attempts to write information into the top-level domain.
A simple solution to this is to temporarily give the sub-domain’s administrator write access to the objects in active directory (AD) which it needs to write to, which is usually:
CN=RTC Service,CN=Microsoft,CN=System,DC=[TOP LEVEL DOMAIN IN THE FOREST]
NOTE: The OCS installer error log will tell you exactly which objects it needs access to.
This can be accomplished using a tool called ADSI edit which is designed for editing objects inside of AD. Screen shots can be seen below:
If you have any questions or comments, please post them in the comments section below.
Thanks,
Lee

Office Communicator 2007 R2 Missing Registry Key
Posted by: | CommentsI love technology, however, when someone forgets to add very simple comments, it drive me crazy.
Today, I needed to figure out how to add a Custom Tab onto Microsoft’s Office Communicator 2007 R2.
According to the documentation provided by Microsoft, it is a very simple process
Configuring Context-Sensitive Custom Tabs
http://technet.microsoft.com/en-us/library/bb963929.aspx
Step 1: Define the Registry Setting – Adjusting the registry
Step 2: Creating the Custom Tab Definition Files – Creating an XML file
Now, Step 2 was the easiest, since they have a good example on the format of the XML file.
However, Step 1 was the most troublesome, since the instructions tell you to navigate (using regedit.exe) to the following locations within your computer registry in order to create an entry:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator
HKEY_CURRENT_USER\Software\Policies\Microsoft\Communicator
Very straight forward instructions, however, what they forget to tell you
NOTE: the above path might not exist.
At first, I blamed my Windows 7, but then I contacted a coworker that has Windows Vista and he said the path did not exist for him either.
Hence, the only thing that came to mind was to create the entries manually. At first I was very hesitant to manually create a new key, since I did not want to crash my computer. However, what is the worst that could happen? (OS rebuild)
So, I navigated to:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft
- Created a new “Key” and named it “Communicator”
- Created a new “String Value” and named it “TabURL” with the location of the XML file (Step 2) which I hosted on IIS. (See Image OC1 below)
- Exited Office Communicator
- Launched and Signed In ont Office Communicator
- Done (See Image OC2 below)
If Microsoft reads this post, please make sure to adjust your documentation, since this omission causes a lot of unnecessary research and frustration when trying to customize Office Communicator 2007 R2.
Surface SDK and Windows 7
Posted by: | CommentsI recently upgraded my computer from Windows Vista to Windows 7. And while setting up my computer, I discovered that the Microsoft Surface SDK only works on Windows Vista.
I am not going to lie, but I was very disappointed and could not see why the SDK could not work on Windows 7. Hence, I went ahead and searched the web for individuals with the same issue. Hence, I discovered this post which helps you with adjusting the Surface SDK msi file, along with samples to work on Windows 7.
Great Post !!!
http://www.grumpydev.com/2009/05/17/surface-sdk-sp1-on-vista-and-win7-x64/
Please wait while Setup finishes determining your disk space requirements
Posted by: | Comments.MSI files can act strangely at times. Causing us to explode in anger as to why it decided that it must check your disk for space requirements.

Is this a sign that I must take a break and get a cup of coffee?
Hence, I clicked on “Return” on the above message and took a break.
To my surprise, nothing had happened. Moreover, when I clicked on “Next”, I received the haunting message again
“Please wait while Setup finishes determining your disk space requirements”
Haven’t I waited enough?
Isn’t this suposed to be easier?
Is this a sign that I should go home earlier?
Am I on Celebrity Ghost Stories?
And then Command Line came to mind.
A black screen (Night) with white letter (Ghost) .
Try this command (Spell)
“msiexec /package [sample.msi] /qr”
and it should install the .MSI without any unwanted messages.
Walkthrough: DVWP Tooltip
Posted by: | CommentsTooltips may be implemented to greatly improve user experience in many scenarios. This walkthrough will provide a method with which tooltip functionality may be implemented on SharePoint Data View Web Parts (DVWPs) using XSL and JavaScript.
Preparation
- Open the SharePoint site in SharePoint Designer 2007
- Open the page on which the tooltip functionality will be implemented
- Enable either Split or Code view
Create the Tooltip
- Locate the DVWP in which the tooltip functionality will be implemented
- Locate the XSL template “dvt_1.rowview” within the DVWP
Example <xsl:template name=”dvt_1.rowview”> This XSL template specifies what is rendered for each List Item displayed in the DVWP. A tooltip will be rendered for eash List Item and therefore should be added to this template.
- Locate where the tooltip should appear
No consideration for spacing of the tooltip should be taken into account. The tooltip will utilize the position style value “absolute” to display over other page content. - Insert the blank tooltip
Example <div style=”position:absolute;display:none;margin-top:14px;white-space:
»nowrap;overflow:visible;border:silver 1px solid;background-color:
»white” class=”ms-listdescription”>
<xsl:attribute name=”id”>tooltip_<xsl:value-of select=”@ID”/>
»</xsl:attribute>
<xsl:attribute name=”onmouseenter”>javascript:this.style.display=
»’none’;</xsl:attribute>
</div>» – unintended line break The tooltip may be any HTML object and is not limited to the DIV object. The tooltip HTML object must have the id attribute set as shown in the provided example. The position and display style attributes should be set as shown in the provided example. Setting the position style attribute to “absolute” allows the tooltip to display over other page content. The onmouseenter attribute (as shown in the provided example) hides the tooltip if the user moves the cursor onto the tooltip.
If multiple DVWPs on the same page will use the tooltip functionality, the id attribute of tooltips must be made distinct in each DVWP. For example, tooltips in a DVWP on the List “Transactions” could use the id attribute convention: tooltip_transactions_[List Item ID]. Thus, tooltip id attributes that may have been “tooltip_14″ and “tooltip_14″ may now be “tooltip_transactions_14″ and “tooltip_reports_14″.
- Set the tooltip text
Example <xsl:choose>
<xsl:when test=”string-length(string(@Tooltip))=0″>
<xsl:text>No tooltip.</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select=”@Tooltip” disable-output-escaping=”yes”/>
</xsl:otherwise>
</xsl:choose>If the tooltip references a List Item column that is not required (i.e. may be empty), it is suggested that empty values be handled as shown in the provided example. List columns must be referenced by their internal name. Setting the disable-output-escaping attribute to “yes” will display special (i.e. escaped) characters properly (i.e. unescaped). Please note that the provided example references a custom (i.e. non-standard) column called “Tooltip”.
The tooltip should be located like:
As a result of setting the position style attribute to “absolute”, the tooltip renders like:
Create the Tooltip Triggers
- Locate the DVWP in which the tooltip has been created
- Locate the XSL template “dvt_1.rowview” within the DVWP
Example <xsl:template name=”dvt_1.rowview”> This XSL template specifies what is rendered for each List Item displayed in the DVWP. Each tooltip trigger (i.e. system response to a user action) will show /hide the tooltip in the same row (i.e. TR object) as itself. Therefore, the tooltip trigger should be located within this template.
- Locate the HTML object that will trigger the display of tooltips in response to a specified user action.
- Insert the tooltip triggers
Example <td>
<xsl:attribute name=”onmouseenter”>javascript:var tooltipObj=document.
»getElementById(‘tooltip_<xsl:value-of select=”@ID”/>’);tooltipObj.
»style.left=event.clientX;tooltipObj.style.top=clientY;tooltipObj.
»style.display=”;</xsl:attribute>
<xsl:attribute name=”onmouseleave”>javascript:document.getElementById(
»’tooltip_<xsl:value-of select=”@ID”/>’).style.display=’none’;
»</xsl:attribute>
<xsl:value-of select=”@Title”/>
</td>» – unintended line break Tooltip triggers are inline JavaScript that find and display the tooltip appropriately. The tooltip is shown by setting its display style attribute to null and hidden by setting its display style attribute to “none”. The provided example shows the tooltip when the user moves the cursor onto the Title column’s parent TD and hides the tooltip when the user moves the cursor off the title column’s parent TD. Please note that the tooltip triggers are applied to the column’s parent TD to provide an optimal user experience. The provided example displays the tooltip at the point where the user moved the cursor onto the parent TD (rather than always below the parent TD content).
Example












