I received this error today when launching Performance Point Server (PPS) Designer for the first time.
The SharePoint URL is a valid site but PerformancePoint Services features have not been configured. Please contact your site collection administrator for assistance.
Turns out there is a feature “PerformancePoint Services Site Collection Features” you must first activate. After that everything works great and connected! ![]()
Tags: Performance Point, SharePoint 2010
Today I felt the need to step outside of SharePoint a little and wander over to the SQL consoles and learn something new. Bottom line: works the same, just more reliable. SSRS 2008 R2 seems to me to be roughly equal on config options to what we had for SQL 2005. Similar wizard to get it created, similar Central Admin link to give the URL, even the menu names match.
However, the whole thing “feels” more reliable. Once complete I can clearly see the SSRS features on the Site Settings menu. Next, I need to learn BIDS (Business Intelligence Development Studio) to create a report (RDL) and try uploading it for rendering.
Steps Taken
- Open “Reporting Services Configuration Manager” and follow wizard steps to create SSRS on SQL backend.
- When asked use “SharePoint integrated” mode.
- It will make a SQL database and IIS website. I used my main SP web application (http://sp2010) so that final URL is http://sp2010/ReportServer/
- Open “SharePoint Central Administration”
- Navigate to “General Application Settings > Reporting Services Integration”
- Type that same URL, choose “Windows Authentication”, and provide a user account.
- I’m using DEMO\admin for everything which is not a best practice, but works in DEV systems to avoid any “access denied” messages.
- Create desktop shortcut to “C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\ReportBuilder\ReportBuilder_3_0_0_0.application”
- Click the desktop icon for first install
- Enjoy the Report Builder 3.0 application to create .RDL and upload to SharePoint
Tags: SharePoint 2010, SSRS
Profiles sure have changed with SharePoint 2010!
We now have a User Profile Service Application and 2 Windows services as well as the Forefront Identity product. It gets a bit confusing so I wanted to write a post with my observations in case it helps anyone else out there Googl-ing for answers.
Opening MIISCLIENT.EXE while sync is actively running has been very educational and helpful for me in troubleshooting. Consider it an eventlog for just the profile service. Below you can see my full import creating 141 new records in the database. I used this to confirm the service health as well as get familiar with the FULL and DELTA operations it runs that map to the Full and Incremental we see in Central Administration.
Oh, and there are 3 SQL databases now! [Sync DB], [Social DB], and [Profile DB] are all required. Look at Harbar.net’s incredible Architecture Overview Diagram to learn more about the topology. It’s tedious to get everything configured and connected but once online the new social features are incredibly useful.
Helpful References
Forefront File Stuff
- C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\UIShell\miisclient.exe
- C:\Program Files\Microsoft Office Servers\14.0\Service\Microsoft.ResourceManagement.Service.exe
- C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\Bin\miiserver.exe
Tags: Administration, SharePoint 2010
This error showed up on the Monitoring > Health Analyzer of my SharePoint 2010 VM. Apparently after using the wizard to create a new farm, you must double back to supply Visio Services with user credentials for remote data connections.
http://social.msdn.microsoft.com/Forums/en-US/sharepoint2010general/thread/559f72a4-d9ca-4004-b5ca-a0fa6dbad51f was a helpful reference on the steps and below are screenshots.
Steps Taken:
- Open Health Analyzer and view details
- Manage the Visio Graphics Service (SA) and confirm Application ID is empty.
- Manage the Secure Store Service (SA) and Generate New Key
- Create a New Target Application
- Provide a unique ID, name, and contact email. Select Group Type.
- Accept default and just click Next
- Provide a user name for both fields. I used “DEMO\Admin” as that is the only user on this machine. Click OK.
- Enter the Target Application ID back on the Visio Graphics Service (SA) page and click OK.
- Go to the Health Analyzer rule, open it and click Reanalyze Now, then you should be ready to go.

Tags: Administration, SharePoint 2010
Today I am updating my virtual machine with the 5 patches I found available at http://technet.microsoft.com/en-us/sharepoint/ff800847.aspx. 7 are listed, 1 was Japanese, and for 1 was not apparent how to download. So I ended up with 5 I could apply. When all was finished I went from product version 14.0.4762.1000 up to 14.0.5114.5000 hoping I will see improved performance and fewer bugs.
Overall this felt identical to the MOSS 2007 patching process, however there is now a percent complete given on step 9 of 10. Subtle but helpful.
Steps Taken:
- Download all EXE to C:\SP2010 Hotfixes\
- Run SPF (KB 2028568) first
- Reboot and Run SP config wizard
- Run Office (KB 2204024)
- Run SP config wizard
- Run Office (KB 2124512)
- Run SP config wizard
- Run Office (KB 2281364)
- Run SP config wizard
- Run Office (KB 983497)
- Run SP config wizard
Files Downloaded:
- office-kb2124512-fullfile-x64-glb.exe
- office-kb2204024-fullfile-x64-glb.exe
- office-kb2281364-fullfile-x64-glb.exe
- office-kb983497-fullfile-x64-glb.exe
- spf-kb2028568-fullfile-x64-glb.exe
Tags: Administration, SharePoint 2010
Here are the PowerShell commands to change the global setting:
stsadm -o setproperty -pn developer-dashboard -pv ondemand
stsadm -o setproperty -pn developer-dashboard -pv on
stsadm -o setproperty -pn developer-dashboard -pv off
Tags: PowerShell, SharePoint 2010
Waiting and watching STSADM run on the CMD line is an exercise in patience. Lately I’ve been incorporating two techniques to email myself updates for the freedom to walk away from the keyboard.
A quick command line EXE project allows me to send email by giving parameters (number 0-5). If 5 is blank, no big deal just send a plain email with subject and body. If 5 exists then attempt to open that text file, read content, and send as email body.
That’s great, but … how does this help me? Great question!!
1) Send email at key script milestones
The freedom to walk away and receive alerts as progress continues allows you to be stay confident and know progress is moving forward. Just add “SendMail.exe” inline with your existing CMD files to send an email at that step in the process.
2) Send email with script outcome
The detailed knowledge of what return value came from the CMD when it finished is helpful. Imagine running a site move (STSADM backup/delete/restore) and heading out for dinner. It’s very nice to get an email showing “Operation completed successfully” three times.
Just use “SendMail.exe” with parameter 5 being the text file full path and name.
using System; using System.Collections.Generic; using System.Text; using System.Net.Mail; using System.IO; namespace SendMail { class Program { static void Main(string[] args) { //0-from //1-to //2-subject //3-body //4-server //5-filename string textFile = ""; if (!String.IsNullOrEmpty(args[5])) { //send text file as body TextReader tr = new StreamReader(args[5]); textFile = tr.ReadToEnd(); tr.Close(); } //create message Console.WriteLine("from {0} to {1} subject {2} body {3} on server {4}", args[0], args[1], args[2], args[3], args[4]); MailMessage message = new MailMessage(args[0], args[1], args[2], args[3]); //if file was given modify body if (textFile != "") message = new MailMessage(args[0], args[1], args[2], textFile); SmtpClient emailClient = new SmtpClient(args[4]); emailClient.Send(message); } } }
Tags: Administration, Development, SharePoint
For SharePoint development I like to use the .ASMX web services for reading data. Out of the box default security prohibits manual remote HTTP queries. A quick edit to “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\ISAPI\web.config” for changing <protocols> from “remove” to “add” and then you’ll be able to manually Invoke.
The raw XML returned by a manual invoke is incredibly valuable for developers. ![]()
Before (out of the box)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<system.web>
<webServices>
<protocols>
<remove name="HttpGet" />
<remove name="HttpPost" />
<remove name="HttpPostLocalhost" />
<add name="Documentation" />
After (unlocked for development)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
<add name="HttpPostLocalhost" />
<add name="Documentation" />
Tags: Development, SharePoint
I rarely use absolutes but CMD files are amazing and you really should always use them. For anything, no matter how small.
Why bother? What’s in it for me?
- Easy to repeat
- Easy to test
- Can modify while running
The only cost is time. It takes a little longer to build a CMD file and plan it out. However, measure twice and cut once pays off with quality. Let’s explore the benefits one at a time:
- Reusing a CMD file is very easy. Search replace in Notepad++ can switch scope easily. Also, input parameters like %1, %2, etc. can make the tool modular for using in a slightly different way quickly next time.
- Copy a CMD file to lower environments for practice is quick, easy, and helps mitigate risk. Before you typo against production, try copying the file to a different server first.
- This is awesome and very little known! While a CMD file is running (after you hit enter) you can still open Notepad.exe and modify the file. Adding an extra line, commenting out with REM, or removing a line can all be done. As long as CMD has not made it down to that line already you’re edits will be picked up as it steps down. Great for real-time adjustments.
Thanks for reading! ![]()
Tags: Administration, Development, SharePoint
Oh yeah, time for fun stuff! There are only maybe 50 people on the entire planet that care about this but here goes nothing…
The Privacy class has enumerations which are fine for C# IDE coding but if you ever run a direct TSQL select against the SSP database those become hard to read. [UserMemberships.ItemSecurity] on the Shared Service Provider database stores these raw integer values if you ever need to query Membership data directly. And here they are:
| Contacts | 2 |
| Manager | 8 |
| NotSet | |
| Organization | 4 |
| Private | 16 |
| Public | 1 |
SELECT UserProfile_Full.NTName, MemberGroup.Url, MemberGroup.Description, MemberGroup.LastUpdate,
MemberGroup.MemberCount, MemberGroup.WebID, UserMemberships.GroupTitle, UserMemberships.GroupType,
UserMemberships.ItemSecurity, UserMemberships.PolicyId
FROM UserProfile_Full
INNER JOIN UserMemberships ON UserProfile_Full.RecordID = UserMemberships.RecordId
INNER JOIN MemberGroup ON UserMemberships.MemberGroupId = MemberGroup.Id
WHERE (UserProfile_Full.NTName = N‘domain\user’)





