User Profiles – Picture Property in SharePoint 2010

User Profiles – Picture Property in SharePoint 2010

First blog of the Year and its good ole Administration in SharePoint 2010 land, starring User Profiles.

Now back in SharePoint 2007 SSP User Profiles, you may have thought that configuration was easy and simplistic. You know, setting a property to a value in AD was a done deal, right?

Let’s take an issue which had me stumped; which I managed to resolve and suspect was down to a combination of calls to Microsoft, heavy trawling of MS blogs, great SharePoint blogs, my own blogs on Service Applications. And of course, starring a mix of several test environments.

First, let’s describe the problem.

Users have their picture thumbnails created and pushed into AD via Third Party. The property that stores the picture is called ThumbNailPhoto. We need to display that photo in the search results when doing a People Search, and also in their Mysite when the user is being displayed. We don’t allow the users to change the photo so we only want to import them.

Describing the platforms I worked on

1: A three server SharePoint 2010 farm connected to its own AD copy of 2000 users.

2: A single server SharePoitn 2010 farm connected to its own AD copy of 1000 users.

Each platform has a number of photos uploaded to named accounts, called SPTest1 through to 100.

Description of the problem

Now, if the picture thumbnail was a URL pointing to a location of the user and the property in SharePoint being used to show the Picture was also a URL then – yep, this would be easy lets map the PictureURL to the PictureURL. However, that wont help in SharePoint 2010. Why? Well, the main reason for this is quite simply that the PictureURL property is a URL field (storing only the HTTP address pointing to a picture file), whereas AD stores the entire image itself as a “binary large object” (blob). So any synchronisation will involve downloading the pictures stored in AD, putting them somewhere HTTP-accessible, and then setting the PictureURL user profile property to the address of this copied image file.

Additionally, there was no out-of-box support for synchronizing user profile pictures from Active Directory to SharePoint (SharePoint to AD worked) in 2010.

Here’s what I tried before getting to stumped level.

1: Attempted to set the import Picture URL property to ThumbnailPhoto – recrawled the people search, nothing.

2: Attempted to set the export Picture URL property to ThumbnailPhoto and put a picture into my MYSITE user profile – hey that worked!

3: Tried the same on several test farms before building two more farms (as described above) and applying the October CU – several failures because I could not get the sequence right – see below.

Following an investigation further and discussions with other SharePoint Architects with the exact same problem, I found out that the issue had been escalated to Microsoft.

Microsoft provided the 2010 October CU hotfix; then removed and then re-released release. One of the ‘fixes’ was to provide the ability for the import of thumbnails from AD to SharePoint. Unfortunately, I found that a number of steps was still required to get photos to be displayed.

Steps.

Before continuing, let me state that the following steps I’ve repeated four times on separate SharePoint instances and each one has worked. If they don’t for you check the version of your farm to ensure that the October CU has taken hold. Make sure also that the CU has completely deployed. Also, make sure that you do have accounts where the ThumbnailPhoto property has a picture assigned to it. I know that might sound completely daft but I’ve found examples where the admins are saying ‘It doesn’t work’ when in fact no pictures have been even set in the relevant property.

Let’s begin.

1: Deploy the October CU to all of the servers in the farm. This means installing it in full, and as you do note that the servers must be rebooted. I installed the CU on the Index Servers and then the web front ends, by letting the installation take place on all three, then rebooting the index server first and running the Products Configuration Wizard on the index server, then repeating that process for each of the front end servers. Then, when installed on the application server ensure that the Profile Sync Service is running (Central Administration, Services on Server, User Profile Synchronization Service).

2: Update the ThumbnailPhoto Property. Access your User Profile Application on the CA, go to Manage User Properties, access the Picture Property, then map the Picture Property to your Active Directory ThumbnailPhoto Property

3: Run a User Synchronization job to re-populate the user profiles.

4: Once the User Synchronization job is complete, access the user properties to see if the Picture Property has picked up some profiles. If it has you’re nearly there!

5: Run a Powershell script to update the profile pictures to the MySite URL. Open up the SharePoint Management Shell and run the following command:

Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation http://<YourServerName>/my

This ensures the profile photos are set into the relevant MySite so that when the user is located their picture is displayed. Additionally, I’ve found that even if you run a sync job to get the pictures from AD that the number of profiles against the property is not updated. The above command corrects that issue.

6: Finally, run the People Crawl to update the user search properties so that when searching for the user the images are displayed.

That’s all there is to it! Hope this helps out you guys out there.

Reasons to be SharePoint, 1 – 2 – 3

Reasons to be SharePoint, 1 – 2 – 3

Being asked a common question by client wanting to adopt SharePoint and I thought it a good idea to share this with you all – “why should I use SharePoint, and what can it be used for”?

Ok, here’s my pennyworth (or three pennies)

  1. SharePoint has been provisioned to provide a platform and framework that can be used for many different types of functions. The extent of what this platform can do is limited only by the creativity and imagination of the users. The aim of SharePoint is to improve the efficiency and decision-making power of their employees by allowing them to create and manage their own online content spaces.
  2. SharePoint is not simply a software application developed for a specific purpose (for example, an email application for sending messages back and forth, a calendaring application for managing appointments and meetings, an accounting application to maintain financial records).
  3. SharePoint, from an end-user viewpoint, provides features such as being able to tell when specific group members are online so that “chat sessions” or instant messaging can occur, and the ability to set up a personal Web page with things such as the latest local weather report.

However, SharePoint isn’t simply installed so that its employees can have instant messaging services or create their own customised Web pages. SharePoint has been implemented to enhance the productivity of employees; which is a managerial imperative, and their vision. However, as you know, there would be many obstacles resulting in reduced productivity.

So what are some of the reasons for using SharePoint? What is the proper use of SharePoint designed to prevent to improve productivity? Here’s another 3 pennies…

  1. Preventing the lack of an efficient mechanism for sharing knowledge, resulting in duplication of effort. For example, User A needs to create a document and does not know that User B created a similar document, which could have saved User A many hours of work.
  2. Preventing the inability to find information which results in wasted time. Carrying the previous example one step further, even if User A knows that User B created a document similar to what User A needs to produce, User A spends an hour trying to find the document and then finally gives up and starts from scratch.
  3. Preventing inefficient manual ways of doing things. IT Support is backlogged with requests for granting employees access to applications or information and/or application customisation. An example of this situation is a department that wants to make information available online to employees, and thus has put in a request to IT Support to make this happen.

Are your users using SharePoint for the following?

Lets’ itemise some of the popular usages of SharePoint. These are provided so that if you have a client who needs to know answers covered by this topic, here they are. By the way, these are mine, so there may be others and some even directly related to the below – question is – are you using these ‘features‘ or destined to use them?

  • Document Management. SharePoint is being seen as ideal for managing manuals, policies and procedure documents. Companies are starting to further embrace the document management model of creation, storage, retention and expiry and SharePoint is certainly strong in those areas.
  • Record Keeping. SharePoint is used to keep electronic records of customers, employees or suppliers. There is a movement to starting the storage of information directly on the platform as opposed to a network share.
  • Inventory Management. SharePoint is used to quickly keep track of equipment or supplies.
    Helpdesk Systems are an example of this. Easy and cost effective way to manage and monitor Helpdesk Requests. These could be IT Helpdesk or service requests from customers. In some cases helpdesk systems are connected directly into SharePoint to provide automation and logging.
  • Websites. People use SharePoint to not only manage content of their Websites but also to be their website. The key strategy of SharePoint is to allow individuals to create and manage their own Websites.
  • Electronic Forms. Forms are used to automate systems like Expense Claims, Travel Requests, Holiday Requests or Purchase Orders. These are not just list item forms from inside SharePoint. They include InfoPath forms what provide even more functionality external connectivity, validation and automation that SharePoint provides out of the box.
  • Reference Centre (Wiki).  People can use Wikis to help store and share information. Information that an employee found helpful can quickly be available to other employees.
  • Reporting. SharePoint is used to take data from many different data sources including SQL and Oracle databases. This means it is easier to compile reports and produce Business Intelligence.
  • Contact Details.  SharePoint is used to store information concerning internal or external contacts and provides a detailed user directory. Saves the issue of the company telephone directory always being out of date.
  • News Distribution. SharePoint is used to share company or department news on a global basis and automatically by user location.
  • Surveys.  SharePoint is used to get feedback from say training courses or the performance of a department.
  • Appointment Management. Calendars and event repositories is available, for example to display weekly movements of key members of staff.
  • Catalogues. SharePoint to list items, view them in customised ways, filter and search.
  • Discussions. Discussion boards are available so that users can chat on various subjects and share ideas.
  • Storage of Digital Media. SharePoint is used to store many forms of digital media including photographs, videos and podcasts – it is also used to provide audio and video feeds.
  • Information Searching.  SharePoint is used index documents and repositories and use features allowing them to search and retrieve company information.
  • Projects Management. SharePoint can be used to monitor and track multiple projects.
  • Time Management. SharePoint is used to record time taken on individual projects or to manage work streams.
  • Meeting Management. Some departments use SharePoint Meeting Templates to plan agendas, create minutes and check on follow-up actions.
  • Blogging.  SharePoint Blogging is a powerful feature allowing quick dissemination of internal business blogs. Users are also investigating the use of ‘comment’ on these blogs.

These are just a selection of the business uses of SharePoint – however, companies are starting to embrace some more social and light-hearted aspects of the product. I suspect this is so the idea is that a happy staff will be a productive staff. For example, sections where employees can win prizes and see some funny pictures of themselves on company outings are emerging. These kinds of social pages can not only help morale but also get employees using SharePoint. The reason why Social Networking is not listed is because it is such a massive topic to cover and hits on quite a few of the above and introduces other features (Organization Management, User Directory, User Status / Presence and a lot more).

So, there you have it, my list of SharePoint uses – of course, as said, there are more, and if you’d like to get them added on please by all means drop me a note!

User Profiles – Picture Property in SharePoint 2010

How to remove (hide) the Ribbon, All Site Content and Recycle from your SharePoint 2010 site

Now, if you have a public facing SharePoint site and not into the full branding scene, then you might want to remove (actually hide) the ribbon from the top, and remove the All Site Content and Recycle Bin. After a bit of digging and asking questions and learning more than I dreamed, I managed to get these details…

First off, dust off SharePoint Designer 2010, open it up, open your site and load up the Master Page (Master Page section and v4master).
Then, to remove the Ribbon, all you have to do is:

1:     Locate this line:

<div id=”s4-ribbonrow” class=”s4-pr s4-ribbonrowhidetitle”>
2:      Change it to:
<div id=”s4-ribbonrow” class=”s4-pr s4-ribbonrowhidetitle” style=”display:none”
3: Search for <div id=”s4-workspace”> and insert a new line above it. Copy and Paste the following into that blank line.
<Sharepoint:SPSecurityTrimmedControl ID=”SPSecurityTrimmedControl2″ runat=”server” PermissionsString=”AddAndCustomizePages”>
<script type=”text/javascript”>
document.getElementById(“s4-ribbonrow”).style.display = “block”;
</script>
</Sharepoint:SPSecurityTrimmedControl>

 

Job done for that bit. And even simpler, to remove the All Site Content link and Recycle Bin, do the following:
1: Search for </HEAD> and insert a blank line above. Copy and paste the following into that blank line.

 

<STYLE>
.s4-specialNavLinkList
{
display:none !important;
}
</STYLE>

 

Job done for that bit. Save the file and you’re good to go. Oh and before I go, there’s another blog that describes how to force the theme onto a public facing sharepoint foundation site that has anonymous access here:
https://serviceautomation.online/scblogspace/Lists/Posts/Post.aspx?ID=97
Hope this helps!

SharePoint Implementation – A Plan is Needed!

SharePoint Implementation – A Plan is Needed!

Had a chat with a friend in the pub talking technical over a whiskey and rum, and got into a reminiscent of the good ole days of writing databases in DOS (Nantucket Clipper and dBase – remember that?! Wow). I was asked about SharePoint and the coding for that and then someone piped up saying it was an application, and that started a whole new discussion. How do you take SharePoint as an application? Is it one? How does it ‘develop’? Hrm… Time to get theoretical and a blog is brewing…

SharePoint in an organisation is not data independent like an application may be. It is a centralised platform and therefore defined as a core system in an organisational information processing environment. A software application is designed to perform singular or multiple specific tasks to solve problems, like accounting software, office suites, graphics software, media players. Is SharePoint any of those? Nope, it’s a platform that allows users to create manage their own online content which could include output from any of those applications I’ve just mentioned.

Now, SharePoint of course can be made to produce transactions based on sharing and can even be defined to produce workflow like responses and outputs, such as sales, shipment of goods etc.). And because this is ‘created’ from organisational requirements as a part of the way they collaborate and share data, that transactional work in producing documents and records for sales is simply one aspect of the platform. And it is this platform that provides all of this data reporting, statistics and analysis for management and aids the decision making process.

SharePoint grows in an organisation as do all the entities with in (e.g. sites, repositories, workflows, connected databases, forms etc.). Even though these applications are interrelated, not all are developed at the same time. Priorities are set.

As a person embarking on implementing SharePoint there’s no point in saying “YAAAY, install it straight away and deal with the integrations later”. You can guess that is not going to solve any information or management challenges the client has (as I’ve described in my book a great deal J )

So, when you develop your SharePoint project plan, make sure that you follow a Design, Plan, Build and Operate format. Whilst you build on that plan you will be amazed to see how deep your SharePoint implementation has to be. Not only does the implementation need to capture the essence of collaboration in the organisation. The implementation must also serve as an evolutionary step to ensuring SharePoint grows with the organisation and stays integrated with the clients’ vision and applications.

I’ve provided a Project Planning Template designed in Microsoft Project format so you can download that and modify. It is located here:

https://serviceautomation.online/project-plan/

This has been made generic so that you can modify and detail the relevant tasks associated with your implementation of SharePoint, and bears no direct relationship to any implementations I have managed, neither do the resources assigned directly match and I would strongly suggest that you review the plan with the client to ensure their requirements are encapsulated.

Of course, this template works in close conjunction with my book (Managing and Implementing Microsoft SharePoint 2010 Projects) so make sure you get a copy from here:

http://www.microsoft-press.co.uk/scripts/product.asp?ref=189322

User Profiles – Picture Property in SharePoint 2010

Public Facing SharePoint Foundation Site – Anonymous access – No Theme!

Just had to blog this one – are you running with a public facing SharePoint Foundation site will find that anonymous users will not see any theme you apply, and instead will see the default even if you change it to something else?
Found a way to get around this, you will need to force the master page to accept the CSS relevant to the theme chosen.
Here’s the steps:

 

1: Choose the Theme you want to apply to your Foundation Site.
2: Open the site with Microsoft SharePoint Designer 2010.
3: Navigate to All Files/_themes.
4: The _themes folder contains a subfolder with the generated items for the selected theme. The selected theme should correspond to a folder “number” (e.g. 2).
5. Locate the first of the “CORE” CSS files.  Right click on Properties to see its title, location, etc. Copy the Title value (you should get something like this: /_themes/0/COREV4-118E1E6A.CSS).
6. Edit the master page for your site (e.g. v4.master). Then add a tag on the next line following the SharePoint:CssLink tag:
<SharePoint:CssRegistration runat=”server” name=”[TARGET-TO-THE-CORE-CSS-FILE-FROM-STEP-5]” EnableCssTheming=”true” After=”true”/>
Eg:
<SharePoint:CssRegistration runat=”server” name=”/_themes/0/COREV4-118E1E6A.CSS” EnableCssTheming=”true” After=”true”/>

 

Note.
If you have access to the relevant content database, you can double check this number by looking at the DefTheme column value of the corresponding dob.Webs table record.

Hope this helps​

SharePoint Implementation Project Plan Available

SharePoint Implementation Project Plan Available

Been asked a lot for a Project Planning Template in Microsoft Project format (versions below) showing the flow of a SharePoint 2010 / 2013 / 2016 implementation, so I’ve crafted a format you can use. I’ve purposely made it generic, so you can modify and detail the relevant tasks associated with your implementation of SharePoint and its version.

(more…)

GEPBACKUP2010 and 2013 – automated script generation utility to backup SharePoint 2010 and 2013 Sites

GEPBACKUP2010 and 2013 – automated script generation utility to backup SharePoint 2010 and 2013 Sites

Introduction

From a conversation I had with a SharePoint Administrator:

“Eeee. The client wants site by site backup – that’s going to take me a while to sort out. I need to backup 500 sites via command line but want to know how big the sites are. I also need to know how long each backup took. I know SharePoint has Powershell but I simply don’t have the time to write a script – also, I only want to backup sites which have changed either today, this week, or just want to backup them all up”.

(more…)
Implementation Steps to Success Presentation

Implementation Steps to Success Presentation

I use this presentation for stakeholders in communicating to them the key reasons for Sharepoint implementation and the stages of implementation following project methodologies. Whilst it focuses on Document Management in SharePoint it is purposefully made generic to cover the general process of SharePoint adoption – I put 8 steps at the end of the presentation to re-inforce it.

The original was done back in the heady days of SharePoint 2003, so its been brought back out of the cupboard, updated just for you!

This presentation includes: Indentification of Current usage, Projected Key Benefits, Approach to implementation, Timeframe and Stages, and Key Strategies

Implementing Document Management Using SharePoint

The swopping of SharePoint Heads – Capacity Planning

Hi there, time for another blog from the evangelical Geoff marching into the land of SharePoint Capacity Planning. Start with an example if I may. Met up with a client who needed a SharePoint environment, and needs someone to help with a specification. Following a number of briefs, seemingly the clients’ requirement is a requirement for a central place so that users could manage online content, using tools such as Visio, Word, Excel.

So, spent some evenings designing the user specification, then worked with the client to produce a design and technical specification. This is the fun part, having to move your mind-set from the production of a user specification (derived from analysis at business level) and converting that into a solution at a technical level through the production of a system specification.

Lets’ put that into perspective. If you was implementing SharePoint, which one would you be? More often than not you could find yourself in both camps. Sometimes though, that’s not the case. The evangelistic approach on a creative people centric level would be keen to do the user requirements, and then say ‘I am not a techie’ or ‘I am not interested in the nuts and bolts’ because that person would be only wanting to be focused on trying to improve productivity through the use of SharePoint. But, the person who is likely to be building the SharePoint environment would be much more interested in figures, statistics, content sizes, locations of data, features to be installed – not so much on the user requirement (lots of techies coming from a server admin environment would be in this area).

Both of these areas require some thinking of how SharePoint will provide proper levels of performance – the users need to be able to understand it, and the SharePoint admins need to be able to provide it in a method that’s easily understood. So, this means that the person who designs is not necessarily the one who builds – but at the end of the day, a SharePoint environment is based on its level of performance, and that comes from good capacity planning.

Now, it’s very common for an organization to manage SharePoint performance in a reactionary fashion, analysing and correcting performance problems as users report them. When problems occur, there is a perception that SharePoint administrators have tools necessary to quickly analyse and remedy the situation.

So, after I did the user requirements I went back to carry out some capacity planning. First, I categorised the work done by their current systems and quantified user expectations. Then I analysed the current capacity of their system to determine how it was meeting their needs. Finally, I asked what the future business activity trends would be since that would determine system requirements.

Ok, Geoff, so throw me a bone….

In a bit more detail. Please note that capacity planning is a massive topic and one where even I, a lowly SharePoint guy, is still learning to improve my methods – but these seem to work for me:

1 – Categorise the work done. Get an SLR (no I don’t mean a camera, SLR means Service Level Requirements). To categorise means to get an understanding of workload. Find out who is doing the work, what type of work is being done, and how it is being done. This happens to be a big part of user requirements gathering – the user requirements is not just about “what do you want then”. There needs to be an understanding of what is currently done to understand the workload, and this then gives you a priority on the levels of work and as such creates the ‘magical’ SLA.

2 – Analyse Current Capacity. Compare the measurements in the above with their objectives and match this against SharePoint. Check the current systems to identify the resources being utilised – this might sound ‘boring’ but its’ vital – get an idea of the current levels of CPU, memory and I/O on the servers (especially if you are migrating). This identifies highly used resources that may prove problematic now and in future. Analyse utilization for each workload, determine where each workload is spending its time. For example, examining the workload for Excel spread sheets in terms of Business Intelligence workloads may identify that the resources required are high – this will then affect the topology design you provide (for example, you may want to put Excel Services on its own server).

3: Plan for the future. Ask the client to help you forecast what the organization will require of SharePoint in the future – this will help you determine the optimal SharePoint topology and configuration for meeting service levels on into the future.

So, in summary to this blog, capacity planning is all about making sure the organization adopting SharePoint will be prepared for the future, ensuring that service level requirements will be met using an optimal configuration. I’ve found that following my steps above I’ve been able to get the information necessary to detail only what is needed, and avoiding over-provisioning.

For more information concerning Capacity Planning in SharePoint check out these links:

TechNet: http://technet.microsoft.com/en-us/library/cc262971.aspx

Joel Olson: http://www.sharepointjoel.com/Lists/Posts/Post.aspx?List=0cd1a63d-183c-4fc2-8320-ba5369008acb&ID=332