Category: Technology

  • My #SPC14 treasure map – mapping out the Expo hall!

    My #SPC14 treasure map – mapping out the Expo hall!

    So I have an early draft of my expo hall treasure map mapped out! Do you have yours?

    #SPC14 expo hall treasure map
    #SPC14 expo hall treasure map

    One tip I’ve read repeatedly is to know how to navigate between the various session rooms and the expo hall efficiently. While I’m not aware of any map that’s available for the session rooms yet I’ve taken the time to map out the expo hall and contact some vendors to arrange meetings with them.

    I’ve made use of the expo floor map that’s available through the MySPC website and used OneNote on my Surface Pro to map out particular stands as a starting point as to where I will try to visit. I want to say hi to the folks who are partners with ClearPeople and those who I have worked with before as well as other vendors that interest me.

  • #SPC14 sessions spreadsheet updated, preparation tips and holiday advice wanted!

    #SPC14 sessions spreadsheet updated, preparation tips and holiday advice wanted!

    Update: 23/02/2014 I’ve updated the #SPC14 sessions spreadsheet one last time to include some missed sessions and a request to have sortable start and end dates.

    With just under two weeks left to go until #SPC14 I would imagine a lot of you are running out of time fast trying to finalise your plans for the conference.

    Updated sessions spreadsheet

    To help I have updated my #SPC14 session spreadsheet again – it now includes time and room information for all the available sessions (as of 17/02/2014).

    Spreadsheet containing all the SharePoint Conference 2013 sessions
    Spreadsheet containing all the SharePoint Conference 2014 sessions

    The spreadsheet of all the SPC14 sessions can be downloaded with this link.

    Preparation tips

    Since this is my first conference I’ve done plenty of reading about what to expect and how to prepare etc. There are some really great posts on Yammer and LinkedIn as well as guides such as Mark Freeman’s survival and readiness guide. Rather than rewrite what is already on the web I thought I would share a summary of the tips I keep seeing repeatedly.

    Firstly I’ve filled my Outlook calendar with all the sessions I want to attend (including alternatives incase a session is not what I had thought it would be), meetings with partners and peers, agenda information such as #SPC14 organised events, social events I’m attending and breakfast and lunch times.

    Participate in the community – join the #SPC14 Yammer network, LinkedIn network, follow the #SPC14 hashtag on Twitter and Facebook group. Reach out to your peers or those people’s blogs you regularly visit and see if you can meet-up to say hello and thanks for the help! Your welcome to ping me an email ([email protected]) or a tweet (@jamescallaghan).

    Make use of the MySPC App that has just been launched to organise your schedule beyond the capabilities of the spreadsheet I have produced.

    Have your information cached or printed so that you can use it offline – I have read that the internet was extremely bad at previous conferences however it seems that Microsoft is not going to allow previous problems to be repeated this year.

    Make sure you visit the exhibition hall – you never know who you might see not forgetting the #SPC14 swag you might find!

    Post-conference holiday advice wanted!

    Can you offer us any advice?

    Travel guides

    Travel guides

    My partner and 6-month-old girl are joining me – we’re flying in from the UK and having a short holiday after the conference. We’re going to drive over to the Grand Canyon before heading across to Los Angeles and then San Francisco before flying home.

    I’m looking for any great tips or suggestions for things we should do that we might have missed from the travel guides we are reading.

    PS. Thanks for the traffic

    I’ve been astonished at how popular my spreadsheet has been – I’ve had over 2,500 unique visitors since publishing it…that’s approximately 25% of the conference attendees!

    Please do drop me a line or a tweet (@jamescallaghan) if you want to say hello! I look forward to seeing some of you at the conference.

  • Error when creating new Site Collections via Central Administration

    Error when creating new Site Collections via Central Administration

    A customer recently reported that they were not able to create any new Site Collections within any Web Application in their SharePoint 2013 UAT environment. Instead of being able to create a new Site Collection they repeatedly received the error shown in the image below.

    Provider must implement the class 'System.Web.Security.MembershipProvider'.
    Provider must implement the class ‘System.Web.Security.MembershipProvider’.

    I in order to troubleshoot this issue I tried creating a Site Collection myself while monitoring the ULS logs. An event with an ID of 8307 was appearing in the logs each time I tried to create a new Site Collection. This event had a message of “An exception occurred in Forms claim provider when calling SPClaimProvider.FillResolve(): Provider must implement the class ‘System.Web.Security.MembershipProvider’. (C:\inetpub\wwwroot\wss\VirtualDirectories\34596\web.config line 606)”.

    ULS Viewer
    ULS Viewer
    Event 8307. SharePoint Foundation. Claims Authentication.
    Event 8307, SharePoint Foundation, Claims Authentication.

    This suggested a problem with the web.config for the Central Administration Web Application and an error with a Membership provider. Forms Based Authentication (FBA) has been used to configure FBA in this environment so I continued exploring this avenue further.

    I reviewed the web.config at the line indicated from the event and noticed that there were multiple entries for FBA membership and role providers. I removed these duplicate entries and was able to create Site Collections without any problems then.

    As the Forms Based Authentication in this environment was configured using the FBA Configuration Manager I can only think that this was at fault somehow – the odd thing is that the same tool was also used on to configure the production environment which I also confirmed was not also having the same issue.

    I would suggest that after using the FBA Configuration Manager to configure FBA that you ensure you can create new Site Collections. It’s certainly something I am going to be including to my deployment checklist!

  • All #SPC14 sessions available in a single spreadsheet!

    All #SPC14 sessions available in a single spreadsheet!

    Update: Wednesday, 8th January 2014. This post has seen an incredible amount of traffic which I have found to be a very rewarding experience- thank you! I’ve lived up to my word and managed to export the speaker information. Both the spreadsheet and PowerShell script has been updated to include this information.

    Something I have found frustrating with the SharePoint Conference 2014 website over the holidays is that you have to browse through the sessions as search results pages. It makes planning how I want to fill my days at the conference very difficult.

    Spreadsheet containing all the SharePoint Conference 2013 sessions
    Spreadsheet containing all the SharePoint Conference 2014 sessions

    I also wanted to sit down with my colleagues to see if there are any particular sessions that interest them. Without all the sessions available in a format such as a spreadsheet this would become a very tiresome task.

    There was no way I was going to do this by hand – at this time there is about 183 published sessions and 12 pieces of information per session that would require me to use copy and paste 4392 times and click between a browser and Excel 600 times…no thank you

    Jumping the gun the a little maybe as I have yet to register (this is top of my to-do list when I’m back in the office on Monday and I’ll kick myself if this is available when you register!) but I broke out PowerShell and wrote a script to download all the information for the sessions from the SharePoint Conference (#SPC14) website to a spreadsheet – both of which you can download.

    PowerShell script to export all the #SPC14 sessions to Excel
    PowerShell script to export all the #SPC14 sessions to Excel

    A spreadsheet of all the SPC14 sessions can be downloaded with this link and the script is available here.

    By no means is this script particularly complex or elegant – but I really wanted this information in a spreadsheet and pretty fast so forgive me if it is not up to my usual standard…the key thing is I achieved what I set out to do and can share it with you all. The last piece of information which I’m still trying to export are the speakers for the sessions – I’ll update if I manage it.

    I hope you find the #SPC14 session spreadsheet helpful – see you at the conference!

  • I’m attending the SharePoint Conference 2014 #SPC14 in Las Vegas!

    I’m attending the SharePoint Conference 2014 #SPC14 in Las Vegas!

    It is a very special day for me today – ClearPeople has just approved my trip to attend the SharePoint Conference 2014 (#SPC14). Thank you thank you thank you!

    #SPC14
    #SPC14

    Each time the conference comes around I’d try to make a business case or as in recent weeks, plead to attend but for various reasons, it has never been possible. This year however the answer was yes!

    It’s been a long wait but I think this is for the better – I have now far more experience with SharePoint than ever and feel that the company and I will gain more by attending this time around. My focus has shifted and I will no longer be attending the conference with just SharePoint in mind but instead with SharePoint, Cloud & Windows Azure, Office 365 & SharePoint Online and Yammer to think about!

    A few highlights I am looking forward to:-

    • Meeting some of my peers who I have followed online for so long (Todd Klindt, Bill Baer, Wictor Wilén and Spencer Harbar to name a few)
    • Attending some of the outstanding sessions I’m sure the following speakers will be delivering such as Shane Young, Laura Rogers, Fabian Williams, Jennifer Mason, Andrew Connell and Joel Oleson
    • Sessions such as Office 365 identity federation using Windows Azure and Windows Azure Active Directory; Best practices for Information Architecture and Enterprise Search and Real-world SharePoint architecture decisions
    • Networking with other like-minded people
    • Obtaining the invaluable material that I will have access to through attending the conference
    • Learning more about what is or will become available to those who were wanting to pursue this certification now that the Microsoft Certified Solutions Master (MCSM) programme is no more
    • Discovering what the next big thing for SharePoint might be?

    I will be blogging about the conference no doubt before, during and after the event – you can follow all of this content with this tag #SPC14. The fun of organising this trip now begins!

  • Configuring a host name with a SSL Certificates in IIS 7

    Configuring a host name with a SSL Certificates in IIS 7

    A customer asked me if I could help troubleshoot their SharePoint environment – they had extended a web application and configured it to use Forms Based Authentication (FBA) with SSL however they were getting errors when accessing the new site.

    I started troubleshooting the configuration across all the servers in their SharePoint 2013 farm. I stepped through the configuration for the web application in Central Administration – reviewing the authentication provider settings and alternate access mappings. I then reviewed the web.config and made sure that the FBA settings were present and correct along with the IIS website bindings. This is when I noticed that there was no hostname against the https/443 binding –  the option to add one was also disabled.

    IIS binding - host name disabled
    IIS binding – host name disabled

    After a little research, I found an article from ArmgaSys.  It turns out that my customer’s wildcard SSL certificate was issued without an * in the name, therefore, the hostname cannot be specified once the SSL certificate is selected. I followed the steps in this article from and the customer was able to access their SharePoint site without any errors this time.

    IIS binding - host name editable
    IIS binding – host name editable

    A summary of these instructions are included below: –

    1. To resolve this and make the hostname field editable launch Microsoft Management Console (MMC) and open the Certificates snap-in.
    2. Locate the wildcard certificate, right click on it and select properties.
    3. If the Friend Name property doesn’t start with a * then add one and apply any changes you make.
    4. Now go back to IIS and select the SSL certificate in the bindings of the SharePoint website with the issue.
    5. The hostname field should now be editable where you should then enter the hostname for your SharePoint site.
  • Using PowerShell with Windows Azure

    Using PowerShell with Windows Azure

    If you’re working with Windows Azure and want to use PowerShell to perform management tasks you will first need to install and configure Windows Azure PowerShell as per this article “How to install and configure Windows Azure PowerShell“.

    1. Download and install the Microsoft Web Platform Installer
    2. Launch the Microsoft Web Platform Installer
    3. Select the Windows Azure PowerShell and then click install
    4. Launch PowerShell as an Administrator
    5. Type get-help *Azure* to see all the Windows Azure cmdlets – you will be asked to update help
    6. Download your Windows Azure subscription publish settings file by typing Get-AzurePublishSettingsFile or by browsing to the download publish profile page
    7. Save the publish settings file to a directory – in my case I store this alongside my Windows Azure scripts directory that I have synchronised with Dropbox
    8. Import the publish settings file by typing Import-AzurePublishSettingsFile <PathToPublishSettingsFiles>
    9. Check to see that you can are connected to your Windows Azure subscription by entering Get-AzureSubscription which should return information about your subscription.

    Here are a couple of useful links to get you started – Windows Azure Management Cmdlets and Windows Azure Script Centre

    That’s it – you should now be able to manage Windows Azure using PowerShell.

  • Pointing external DNS at a Windows Azure hosted Virtual Machine

    Pointing external DNS at a Windows Azure hosted Virtual Machine

    Update: while the VIP address is guaranteed for the lifetime of the deployment – a customer recently lost their VIP address which resulted in their custom domain name become unresolvable. Whilst this was acceptable as we were still in a phase of testing it did cause me some concern. Why had the VIP address changed without our knowledge – we had not made any configuration changes to causes this. I did some further research and found an article (Using custom domain names with Windows Azure Cloud Service) in the Documentation section on the Windows Azure website where it advised you should use CNAME records and point these to your *.cloudapp.net domain name. I asked the customer to do this and we have been able to use the system since.

    This post describes how I configured one of my Windows Azure hosted Virtual Machines with my domain name registrars DNS  – this meant that I could make SharePoint 2013 available using my domain name.

    On the virtual machine instances, page in the Windows Azure Management Portal (https://manage.windowsazure.com) browse to the virtual machine you want to configure with your external DNS.

    Windows Azure Virtual Machine Dashboard
    Windows Azure Virtual Machine Dashboard

    On the right, in the “Quick Glance” section you will see that a “Public Virtual IP (VIP) Address” is listed (this is shown in the image below but for security purposes, I have changed my VIP to 111.111.111.111). The VIP address is the IP address I need to direct my external DNS to.

    Virtual Machine Quick Glance information
    Virtual Machine Quick Glance information

    This VIP address is guaranteed to remain for the deployment of the cloud service – therefore if the deployment is removed the VIP address will no longer be available. Corey Sanders has written a great article on the Windows Azure MSDN blog (http://blogs.msdn.com/b/windowsazure/archive/2011/07/06/windows-azure-deployments-and-the-virtual-ip-address.aspx) where he confirms that the VIP is guaranteed for the lifetime of deployment and provides a great alternative if the virtual machine deployment has to be removed.

     “If that is not possible (e.g. you must delete/deploy), then a little planning beforehand can still help here: just create a new hosted service, update CNAME and A record to new hosted service (but keep old deployment there). Wait 24 hours and it should be safe to delete the older deployment.”

    I also decided to add a shorter TTL to my A record just in case the VIP address does ever change for whatever reason and I need to propagate a change quickly. I’m not sure if this is advisable or not and am seeking confirmation on this.

    A quick test you can do before making any changes to your DNS is to browse directly to your VIP address (http://111.111.111.111). This in my case took me to the default IIS site however this will depend on your configuration.

    IIS 8 default website landing page
    IIS 8 default website landing page

    After I confirmed that the VIP address was accessible I then proceeded to make changes to my external DNS through my domain registrars control panel – in this example, I wanted to point a host record (or an A record) to my virtual machine.

  • Easily add jQuery tabs using the “Reusable Content” feature

    Easily add jQuery tabs using the “Reusable Content” feature

    This post is quite a fun one. Whilst I was working with a customer today someone came up to me and asked if it was possible to add tabs to their content pages to which I gave it a few seconds thought and I responded “sure that’s absolutely possible – leave it with me!”.

    I then spent my commute home thinking about how tabs could be delivered for end-users to make use of without them having to meddle around with any code. Sure getting tabs to work in SharePoint is pretty straight forward and is something we’ve all done at least on a couple of occasions but I give more thought about making it easier for the end-users to consume rather than just meeting the customer’s requirement by putting in a solution that isn’t pretty nor easy to use.

    Solution

    I eventually decided to use, what I thought was a very simple approach to giving users the option to use tabs. My solution makes use of the tabs from the jQuery UI (http://jqueryui.com/tabs/) library. It starts with a small modification to the master page that is currently being used. The following code should be added before the closing </head> tag.

    <link href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" rel="stylesheet" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <script type="text/javascript">
    // <![CDATA[
    $(function() {
    $("#tabs").tabs();
    });
    // ]]>
    </script>

    I then added the following to the “Reusable Content” list in the root site of the Site Collection where I was adding tabs. Make sure that the “Automatic Update” is unchecked for this piece of reusable content.

    Reusable Content item
    Reusable Content item
    Reusable Content Lists
    Reusable Content Lists

    Below is the code that should be added to the Reusable HTML field.

    <div id="tabs">
    <ul>
    <li><a href="#tabs-1">Overtype tab 1 title here</a></li>
    <li><a href="#tabs-2">Overtype tab 2 title here</a></li>
    <li><a href="#tabs-3">Overtype tab 3 title here</a></li>
    </ul>
    <div id="tabs-1">Overtype tab 1 content here.</div>
    <div id="tabs-2">Overtype tab 2 content here.</div>
    <div id="tabs-3">Overtype tab 3 content here.</div>
    </div>

    To add the tabs onto a content page you can simply select the item that has just been added to “Reusable Content” list by clicking on the “Insert” tab whilst editing the page and expanding the “Resumable Content” menu.

    Reusable Content menu
    Reusable Content menu

    Rich text that represents the HTML markup for the tabs is then added onto the page. Each tab is represented by a bullet list item “<li>” and a content area “<div>”. The names of tabs you require can then be added by carefully overtyping the existing tab names. You must be careful not to introduce or remove any markup as this might prevent the tabs from working correctly.

    Once you have entered the names of the tabs you can then add the appropriate content by overtyping the content that you wish to include in that tab. This content can consist of rich text such as tables, images and also web parts. Again you must be careful not to introduce or remove any markup. Any tabs that are no longer required can be carefully removed by deleting the bullet list item and content area.

    Tabs demonstration
    Tabs demonstration

    There are other ways to achieve the same result but I thought this was a simple approach using out-of-the-box functionality. Happy tabbing!

     
  • Change the default sync interval –  Windows Azure Active Directory Sync

    Change the default sync interval – Windows Azure Active Directory Sync

    The default interval for Windows Azure Active Directory Sync (DirSync) synchronisations is 3 hours. If for instance, your Active Directory has lots of changes you probably want to consider shortening the sync interval.

    The schedule can be modified by changing the “Microsoft.Online.DirSync.Scheduler.exe.Config” configuration file. Before proceeding to make any changes to the sync interval you should evaluate how long it takes to complete synchronisation. You can do this by reviewing the application event log for entries that indicate when sync has started and completed.

    To modify the configuration file open “C:\Program Files\Windows Azure Active Directory Sync\Microsoft.Online.DirSync.Scheduler.exe.Config” in Notepad. You will then need to modify the value of the “Synctimeinterval” key – the notation of this is Hours:Minutes:Seconds.

    Microsoft.Online.DirSync.Scheduler.exe.Config
    Microsoft.Online.DirSync.Scheduler.exe.Config

    Save the configuration file and restart the “Windows Azure Active Directory Sync Service” Windows Service (via PowerShell Restart-Service MSOnlineSyncScheduler) to apply this change.

    Restart-Service MSOnlineSyncScheduler
    Restart-Service MSOnlineSyncScheduler
  • Force a full syncronisation – Windows Azure Active Directory Sync

    Force a full syncronisation – Windows Azure Active Directory Sync

    When configuring Windows Azure Active Directory Sync (or DirSync as it was previously known) it’s useful to be able to run various synchronisation tests. The default synchronisation schedule is 3 hours so unless you want to wait you will need to force a full synchronisation using PowerShell.

    Start-OnlineCoexistenceSync cmdlet
    Start-OnlineCoexistenceSync cmdlet

    To do this you need to load the Windows Azure Active Directory Sync PowerShell module and run a cmdlet. Start by navigating to “C:\Program Files\Windows Azure Active Directory Sync” in PowerShell and then run “.\DirSyncConfigShell.psc1” from this directory. This will launch a new PowerShell console with the Windows Azure Active Directory Sync PowerShell module loaded (Add-PSSnapin Coexistence-Configuration). Then to force a full synchronisation you need to run the Start-OnlineCoexistenceSync cmdlet.

    [code lang=”PowerShell”]
    Start-OnlineCoexistenceSync -fullsync
    [/code]

    You can verify that synchronisation has occurred by reviewing the application event log on the server running DirSync – there should be several items in the log such as “Directory Synchronization, Event ID – 114, Export cycle completed”. There is also a status of the Active Directory Synchronisation on the “Users and Groups” page in the Office 365 admin portal. There are also two other ways to see the status of synchronisation jobs which I will go into in more detail in a later post but these include using the Forefront Identity Manager (FIM) client and Fiddler web debugging proxy.

    Office 365 Active Directory Sync status
    Office 365 Active Directory Sync status

    You can create a shortcut to “C:\Program Files\Windows Azure Active Directory Sync\DirSyncConfigShell.psc1” on the desktop for ease of administration. I, however, take this one step further and create a shortcut to perform a synchronisation as well. Create a shortcut with the following target below.

    %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "%PROGRAMFILES%\Windows Azure Active Directory Sync\DirSyncConfigShell.psc1" -Command "& Start-OnlineCoexistenceSync -fullsync