I was working at a client this last week where we were having trouble getting SharePoint search to crawl the contents of PDF files. My client said they followed this Microsoft installation guide (KB Article #2293357) but the iFilter still wasn’t being used to crawl the contents of PDF files. When I checked their installation I couldn’t find anything wrong either. I was even more surprised that when I followed the same steps in my virtual dev environment I got the same results. PDFs were searchable but only by title or other metadata. The contents were not being indexed. At that point I started searching the Internet for a solution and although I found lots of people with the same problem I didn’t find any solutions that would work. For most people the solution was to make sure they added a registry key they missed or make sure it was installed on the correct server. But there were some people, like my client and I, who followed the instructions correctly and still couldn’t get it to work. At this point we opened a support ticket with Microsoft and were immediately provided with a solution that worked. But since I haven’t been able to find this documented anywhere I thought I would record it in my BLOG. So if you have tried setting up the 64 bit Adobe PDF iFilter and still can’t get it to work, then read on and try the following. To be thorough I included all the steps required to install the iFilter, but highlighted the additional step that we took which made the difference.
Installing a PDF iFilter
- Download and Install the Adobe PDF iFilter 9 for 64-bit platforms
- Download a 16X16 PDF icon file from the Adobe web site and copy it to C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES\
- Add the following entry in the docIcon.xml file, which can be found at: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML
<Mapping Key="pdf" Value="pdf16.gif" />
- Add the pdf file type to the Search Service Application’s File types
- Open regedit and navigate to the following location:
- Right-click and select New > Key to create a new key called ‘.pdf’
- Add the following GUID as the default value for the .pdf key
- Open Windows Explorer and navigate to the following location:
C:\Program Files\Adobe\Adobe PDF iFilter 9 for 64-bit platforms\bin
- Add your Search Service Application’s Content Access Account to the list of users and groups who have security access to this folder. Make sure the account has Read, Read & Execute, and List Folder Contents permissions.
- Reboot the SharePoint servers in your Farm to restart the Search Service Application
Note: The Adobe installation instructions also recommend adding the bin folder location to the server’s environmental path variable. But this has not been required in any of my installations and is not included in the Microsoft instructions.
I will be speaking at the Pittsburgh SharePoint User’s Group on Wednesday, January 18th. The meeting will start at 11:00 am and my topic will be "Users, Profiles, and MySites: Managing a Changing SharePoint User population”. Here’s a brief description of the talk:
Users, Profiles, and MySites: Managing a Changing SharePoint User population
Every organization has some level of personnel change and turnover. The question is, in the midst of this fluid user population how can you manage a user’s access to SharePoint and retrieve important information stored in their personal site efficiently? Updating existing user information is also often a problem and most people have questions about how security permissions work in SharePoint. In this talk we will examine how SharePoint stores information about users and the underlying processes controlling user accounts, permissions, profiles and personal MySites. We’ll look at what works, what doesn’t work, and possible workarounds. Along the way we’ll discuss the Best Practices for managing users, their profiles, and MySites in a SharePoint environment. We’ll discuss how this works in both 2007 and 2010.
The group will meet at the Pittsburgh Technology Council. You can get a map by clicking on the link below.
Pittsburgh Technology Council
2000 Technology Drive
Pittsburgh, PA 15219
Next week I’ll be headed for Denver to speak at the Denver SharePoint Saturday event. I will be presenting two sessions. One will be an overview for users, admins, and developers who are just getting started on SharePoint online in Office 365. The other is a more in depth talk for developers and admins on managing the various places that SharePoint stores user information. I’ve reprinted the abstracts for my talks below:
Intro to Developing for SharePoint Online: What Tools Can I Use? – The introduction of Office 365 drastically changed the SharePoint development landscape. As a managed online service the rules for developing customizations for SharePoint Office 365 are radically different from the ones for an “on-premise” installation. They are also slightly different than developing sandbox solutions. In addition many companies who currently use dedicated SharePoint installations are beginning to consider eventual migration to the Office 365 cloud environment. That means even current “on-premise” development is often constrained in new ways. No matter what kind of development you currently do you need to know how to develop for Office 365. In this workshop/session we’ll cover the following topics:
- Setting up an Office 365 development environment
- Developing sandbox solutions for SharePoint Online
- Building reusable workflows in SharePoint Designer 2010
- Why the Client Object Model is even more important in Office 365
Users, Profiles, and MySites: Managing a Changing SharePoint User population – Every company has some level of employee change and turnover. The question is how do you manage the graceful removal or modification of user information from SharePoint? If everything is perfectly aligned SharePoint will automatically process and delete the user account, permissions, profile, and MySite for users that are deleted from Active Directory. Updates to user information are also automatic in many cases. But most SharePoint installations don’t have all the necessary components aligned for automated removal of old users and some profile properties refuse to update. In this session we will examine the underlying processes controlling user accounts, permissions, profiles and MySites and how they interact. We’ll look at what works, what doesn’t work, and how to work around it. Along the way we’ll recommend Best Practices for managing users, their profiles, and MySites in a SharePoint environment.
I’ve done programming in a variety of environments over the years. Case sensitivity was one of the things that was the most difficult for me to get used to when I moved from VB to C# a number of years ago. In fact if it weren’t for Intellisense I would probably still be swearing at C# on a regular basis. I’ve learned to live with, and even make use of, case sensitivity in my C# programs over the years. But it doesn’t come naturally. I still tend to think in a case insensitive fashion.
As a result I was somewhat surprised to run into someone having an issue recently when trying to add SharePoint Managed Metadata terms to a user profile programmatically. They reported that SharePoint wasn’t consistent when adding terms to the Ask me About profile field programmatically. It turns out that the real problem was that they had duplicate fields where the only difference was the case of the first character of the abbreviation. After some investigation here’s what I discovered.
- SharePoint won’t let you add two metadata terms under the same parent if the only thing that differs is the case sensitivity of the term. The image below shows what happens if you try to add “ABC” as a term when “Abc” already exists under the same parent term.
- You can add (but probably shouldn’t) a term that differs only based on case sensitivity if you also change the hierarchy that the term inherits from. The image below shows the same “ABC” term added to a different parent. This time the addition is successful.
- When you try to add any combination that starts with abc to a managed metadata column you get both terms. You can of course choose the one you actually want, but that’s based on the hierarchy of the term, not its case sensitivity.
The lesson here is that unlike some things like C#, the Managed Metadata service is NOT case sensitive. You should try to avoid adding terms to the service that differ only based on case sensitivity. This is particularly true if you intend to add managed metadata to fields programmatically.
Please join Dave Milner and me for the webinar entitled Best Practices for SharePoint 2010 Upgrade & Configuration, where we will outline various critical considerations and best practice strategies for the planning and conducting an upgrade from SharePoint 2007 to SharePoint 2010.
The webinar will include live demonstrations and discussion of the following points:
- Who should upgrade, why & when
- How to assess existing SharePoint deployments and identify upgrade risks and opportunities
- Specific tasks that need to be done to prepare for SharePoint 2010
- How to identify and upgrade existing 2007 customizations
- Best Practices for supporting parallel environments, migration & preserving the investment in your existing SharePoint deployment
- Avoiding Upgrade & Migration Pitfalls
If you are considering upgrading to SharePoint 2010 from a previous version, you will gain an understanding of how to effectively upgrade SharePoint 2010 in accordance with best practices and gain insights into approaches, techniques, and tools that mitigate the effort and risk associated with upgrades.
Sign-Up for the Seminar here: