Monday, September 24, 2018

SharePoint 2016 TIP: successfully patching/upgrading a farm when PSCONFIG fails

Sometimes, psconfig fails and you are unable to upgrade the farm due to problems associated with a content database due to various upgrade-blocking issues discovered in the content database.  Perhaps it's a development farm, and you are testing a content database having a various missing items or other issues.  Not to worry.  You can still upgrade the farm: just leave the problematic content database out of the initial upgrade.  Then, once you get the farm upgraded successfully, you can go back to the content database, mount it, troubleshoot it, and then upgrade it individually. Here's what you do:
  1. After executing psconfig and it fails, review the upgrade report and identify which content database was raising upgrade-blocking problems.
  2. Next, launch an elevated SharePoint Management Shell (if you haven't done so already) and execute the following commandlet to generate a list of content databases and their IDs:
    Get-SPContentDatabase | Select -Property Name,ID,WebApplication, @{e={$_.CurrentSiteCount};l='Sites'}, @{e={($_.DiskSizeRequired/1GB).ToString("0.##")};l='Size(GB)'} | ft -auto
    This commandlet generates a listing of content databases that conveniently also lists the number of sites in the content database as well as its site (in GB).
  3. Note down the ID of the problematic content database.
  4. In the same SMS, execute this commandlet to dismount the content database from the farm:
    Dismount-SPContentDatabase -Identity "[database ID]" -Confirm:$False
  5. Now re-execute psconfig:
    PSCONFIG -cmd upgrade -inplace b2b -wait
  6. Once the farm is successfully upgraded, mount the problematic content database using this commandlet:
    Mount-SPContentDatabase -Name "[database name]" -DatabaseServer "[alias]" -WebApplication "[web application URL]"
    Once you mount the content database, you will eventually see the usual health rule issue popping up, "Databases running in compatibility range: upgrade recommended."
  7. Review the Upgrade log files to identify the upgrade-blocking issues that prevented upgrade earlier.  
  8. Once you get these issues resolved, execute the following commandlet:
    Upgrade-SPContentDatabase -Identity [database ID or name] -UseSnapshot
    Use the -UseSnapshot switch to enable your users to continue to at least read their content while the upgrade process engages.
  9. If this still fails, use the data generated by the test upgrade report to guide your troubleshooting efforts.  First, dismount the database again, and then run this commandlet:
    SCRIPT Test-SPContentDatabase -name "[database name]" -webapplication "[web app URL]" | Export-CSV -Path "C:\UPGRADE.TEST.001.CSV"
  10. tbd

References

Notes

  • If you run psconfigui.exe and it fails, this failure will be entered into the Upgrade Status page in Central Administration.  Oddly, I have found that if I run psconfigui.exe again and it succeeds, this success won't be entered into the Upgrade Status list, even though the psconfigui.exe dialog plainly states that the upgrade succeeded.  What I have done then, to ensure that successful configuration is also noted on the Upgrade Status page, is to execute psconfig.exe (the non-UI version), and the successful completion of this is then reflected in the Central Administration Upgrade Status page.

Thursday, August 9, 2018

SharePoint 2013: One solution to the MissingSiteDefinition upgrade error

Problem

Performed test-SPContentDatabase on a SharePoint 2010 content database restored to the backend of a SharePoint 2013 farm.  These efforts were part of an overall upgrade process from SharePoint 2010 to SharePoint 2016.  Discovered the following error in the resultant report:
13 Sites in database [content database name] have reference(s) to a missing site definition, Id = [6215], Lcid = [1033], compatibility level = [14]. 
The MissingSiteDefinition error was non-upgradeblocking, so, proceeded with mounting this 2010 content database to 2013 web application and upgrading it.  Upgrade completed successfully but with errors, one of which was the MissingSiteDefinition error.  Then launched a site health check TEST and the Site Collection Health Check Results report page listed 13 instances of Missing Site Template issues that had to be fixed or site upgrade would fail.  Interestingly, in the Site Collection Health Checks Results report, these 13 instances do not contain the actual name of the template that is missing, only something like " - #0".  Began troubleshooting.

Troubleshooting

  1. On SharePoint 2010 farm, executed the following in an elevated DOS shell:
    CD C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN\
    echo ^ > "D:\report.xml"
    stsadm -o enumallwebs -databasename "[content database name]" -includefeatures -includewebparts -includeeventreceivers -includesetupfiles -includecustomlistview >> "D:\temp\report.xml"
  2. Opened file in browser, and searched for "6215".   Found 13 instances.  Each instance was similar to the following:
    -<Web Id="[web id]" TemplateId="6215" TemplateName="PWS#0" LanguageId="1033" Url="/[web url]">
    Note in particular the template name and ID: PWS#0. 
  3. For one of the webs identified above, checked its source, searching for the g_wsaSiteTemplateId field, and verified the template ID and name as found previously.
  4. Also executed these commandlets in an elevated SharePoint Management Shell to further verify template ID and name:
    (Get-SPweb -Identity [web ID]).WebTemplate
    (Get-SPweb -Identity [web ID]).WebTemplateId
  5. Referring to SharePoint 2010 template listings, found that this template ID and name were associated with the Project Workspace site definition.
  6. Compared the contents of
    ...\TEMPLATE\SiteTemplates\
    on the SharePoint 2010 and 2013 farms (14 and 15 hives), found the PWS folder in
    ...\14\TEMPLATE\SiteTemplates\
    but not in
    ...\15\TEMPLATE\SiteTemplates\.
    Also noted that Microsoft Project was deployed and integrated with our SharePoint 2010 farm but not with our 2013 farm.
  7. Copied entire PWS folder from
    ...\14\TEMPLATE\SiteTemplates\
    on SharePoint 2010 farm to
    ...\14\TEMPLATE\SiteTemplates\ and
    ...\15\TEMPLATE\SiteTemplates\
    on the SharePoint 2013 farm, and then re-executed the Site Collection Health Check, but the 13 Missing Site Template errors still appear in report.  One minor change I noted was that, previously.
  8. Compared the contents of
    ...14\TEMPLATE\1033\XML\
    on the SharePoint 2010 and 2013 farms and found this file
    webtemppwa.xml
    in SharePoint 2010 but not in SharePoint 2013.
  9. Viewing the contents of this file, found an entry referring to "PWS:"
    <Template ID="6215" SetupPath="SiteTemplates\PWS" Name="PWS">
  10. Copied this file from production SharePoint 2010
    [SP2010P]\C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\1033\XML\
    to development 2013
    [SP2013D]\C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\1033\XML\
    ensuring that it is in the same 14 file have on both.
  11. Re-executed the Site Collection Health Check, this time, the 13 missing site template errors appear as " - PWS#0". 
  12. Copied this file from production SharePoint 2010
    [SP2010P]\C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\1033\XML\
    to development 2013
    [SP2013D]\C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\1033\XML\
    ensuring that this time the file is copied to the 15 file hive in the SharePoint 2013 development farm. 
  13. Re-executed the Site Collection Health Check. No upgrade-blocking issues appear.

Solution

  • When "Missing Site Template" errors appearing the Site Collection Health Check Results report, determine the name of the template that is missing, and then copy it from appropriate file hive on the source 2010 farm to both the 14 and 15 file hives in the destination 2013 farm.

References

Notes

  • Site templates are stored in this location:
    [root]:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\[12,14,15,16]\TEMPLATE\SiteTemplates\
  • tbd

Tuesday, July 31, 2018

SharePoint TIP: working with the farm property bag


Farm Property Bag

List farm properties$farm = Get-SPFarm
$farm.Properties.GetEnumerator() | Sort Name | fl -Auto
or
(Get-SPFarm).GetEnumerator() | Sort Name | fl -Auto
Add a farm property$farm=Get-SPFarm
$farm.Properties.Add("[name]", "[value]")
$farm.Update()
Set a farm property$farm.Properties["[name]"] = $value
$farm.Update()
Remove a farm property$farm.Properties.Remove("[name]")
$farm.Update()

References

  • Properties are stored in Hash-Table (Key-Value) format.
  • Not case-sensitive.
  • Same approach is used at the web application, site collection, web and list levels.  Each of these has a "Properties" collection.  For web application properties, you would use a web application object, for site collections, get an instance of the site collection object, and so on.
  • I have found that some SharePoint solution (e.g., farm solution) providers add properties to the farm properties bag for internal sharing of licensing information.
  • Properties must be added as key-value pairs.

Friday, July 27, 2018

SharePoint 2016: Manually deploy a MasterThemes predefined them package

Introduction

This posting consolidates notes with regard to manually deploying the MasterThemes predefined theme package, 004 MTRD16 Platinum to a SharePoint Server 2016 farm.  The theme was created using SharePoint Design Manager.

Procedure

I. Deploy Core Theme Files (CSS & Images) to Farm Servers
  1. Extract the Master Themes them package file 004_MTRD16_Platinum_02_2017.zip to a convenient location.
  2. In this folder
    \004_MTRD16_Platinum_02_2017\004_MTRD16_Platinum_02_2017\Core_CSS_Files\GLOBAL
    copy these files
    004_MT-Bootstrap.CSS
    004_MT-CSS.CSS
    to this folder
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\1033\STYLES\Themable
    on each of the farm's SharePoint servers.
  3. In this folder
    \004_MTRD16_Platinum_02_2017\004_MTRD16_Platinum_02_2017\Core_CSS_Files\GLOBAL
    copy this entire folder
    004_MT-Images
    to this folder
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\IMAGES
    on each of the farm's SharePoint servers.
II. Deploy Theme Master Pages to Target Site Collection(s)
  1. On a local machine, open a browser and connect to the target site collection root web.
  2. At the site, navigate to this location:
    [site] > Settings > Site Settings > Web Designer Galleries > Master pages and page layouts
  3. On the ribbon, select the FILES tab, click on Upload Document, navigate to this location
    \004_MTRD16_Platinum_02_2017\004_MTRD16_Platinum_02_2017\Master_Pages\GLOBAL\Core15\
    and then upload these files
    004_MT-Master-GLB.master
    004_MT-Master-GLB.preview
    Accept the default settings for each file. Once these are uploaded, click Upload Document again, navigate to this location
    \004_MTRD16_Platinum_02_2017\004_MTRD16_Platinum_02_2017\Master_Pages\GLOBAL\Core15\Master Page with Footer\
    and then upload these files
    004_MT-Footer-GLB.master
    004_MT-Footer-GLB.preview
    Accept the default settings for each file.
  4. Modify each of the uploaded file settings as shown:
    Content Type:Html Master Page
    Name:004_MTRD16_Platinum
    Title:[same as Name]
    Description:[as desired]
    Compatible UI Version(s): 15
    Contact: [your alias]
    Preview Image:[not set]
    Hidden Page:[unchecked]
    Default CSS File[blank]
    Associated File: [unchecked]
    Preview URL:[blank]
    Leave all other settings as default. Note that the Approval Status of each file at this point is "Draft". 
  5. Select each of the uploaded files in turn, and then on the FILES tab of the ribbon, in the Workflows group click Publish. This changes the Approval Status of each file to "Pending". NOTE: this step may not be necessary when page Content Type is set as HTML Master page.
  6. Select each of the uploaded files in turn, and then on the FILES tab of the ribbon, in the Workflows group click Approve. This changes the Approval Status of each file to "Approved".
III. Add 004_MTRD16_Platinum Predefined Color Palettes to Site Collection Theme Gallery
  1. On a local machine, open a browser and then connect to the root web of the site collection.
  2. At the site, first navigate to this location
    [site] > Settings > Site Settings > Web Designer Galleries > Themes
    and then click on the "15" folder.
  3. On the ribbon, select the FILES tab, click on Upload Document, navigate to this location
    \004_MTRD16_Platinum_02_2017\004_MTRD16_Platinum_02_2017\Theme_Gallery
    and then upload these files (there are seven of them)
    004_MT-Palette_001.spcolor
    004_MT-Palette_002.spcolor
    004_MT-Palette_003.spcolor
    004_MT-Palette_004.spcolor
    004_MT-Palette_005.spcolor
    004_MT-Palette_006.spcolor
    004_MT-Palette_007.spcolor
    NOTE: you can also drag-and-drop them as a group onto the "15" folder in the Themes document library.
IV. Configure 004_MTRD16_Platinum Composed Looks
  1. On a local machine, open a browser and then connect to the root web of the site collection.
  2. At the site, navigate to this location
    [site] > Settings > Site Settings > Web Designer Galleries > Composed looks
  3. Click "+ new item", and then enter the following for a new look:
    Title:004 MT-Palette 001
    Name:004 MT-Palette 001
    Master Page URL:/_catalogs/masterpage/004_MT-Master-GLB.master
    Type the Description/_catalogs/masterpage/004_MT-Master-GLB.master
    Theme URL/_catalogs/theme/15/004_MT-Palette_001.spcolor
    Type the Description/_catalogs/theme/15/004_MT-Palette_001.spcolor
    Image URL:[leave blank]
    Type the Description[leave blank]
    Font Scheme URL:[leave blank]
    Type the Description[leave blank]
    Display Order:310
    NOTE: the above URLs are relative to the primary site collection.  If you have sites created below this one, you will need to amend the URL appropriately.  For example, for a site at "/sites/Marketing," the Master Page URL would be "/sites/Marketing/_catalogs..."
  4. Repeat the previous step for each of the color palettes, incrementing the Title and Theme URL appropriately.
  5. At the site, navigate to this location,
    [site] > Settings > Site Settings > Web Designer Galleries > Composed looks
V. Add 004_MTRD16_Platinum Page Layouts for Publishing Sites (Optional)
  1. On a local machine, open a browser and then connect to the root web of the site collection.
  2. At the site, navigate to this location
    [site] > Settings > Site Settings > Web Designer Galleries > Master pages and page layouts
  3. On the ribbon, select the FILES tab, click on Upload Document, navigate to this location
    \004_MTRD16_Platinum_02_2017\004_MTRD16_Platinum_02_2017\Layouts\Publishing_Layouts
    and then upload these files
    MT-Welcome_2Column_SBL.aspx
    MT-Welcome_2Column_SBR.aspx
    MT-Welcome_3Column.aspx
    Accept the default settings for each file.
  4. Modify each of the upload file settings as shown:
    Content Type:Page Layout
    Name:MT-Welcome_3Column
    Title:MT-Welcome_3Column
    Description:leave it blank (or provide your description)
    Contact:[your alias]
    Preview Image:Leave it blank
    Type the description:Leave it blank
    Hidden Page:Unchecked
    Associated Content Type:Page Layout Content Types
    Content Type Name:Welcome Page
    Variations:Leave it blank
    Authenticated Cache Profile:(None), or select a desired value
    Anonymous Cache Profile:(None), or select a desired value
  5. Leave all other settings as default, and then click the SAVE button.  Note that the Approval Status of each file at this point is "Draft".
  6. Select each of the uploaded files in turn, and then on the FILES tabof the ribbon, in the Workflows group click Publish.  This changes the Approval Status of each file to "Pending".
  7. Select all of the uploaded files, and then on the FILES tab of the ribbon, in the Workflows group click Approve.  This changes the Approval Status of each file to "Approved".
  8. On a local machine, open a browser and then connect to the target site collection root.
  9. At the site, navigate to this location:
    [site] > Settings > Site Content > Pages
    Add a new page, and then while in page edit mode, click on the Page Layout button on the ribbon's PAGE tab, and then verify that the three new layouts appear in the listing.
VI. Add 004_MTRD16_Platinum Pages with Predefined Content to Publishing Sites (Optional)
  1. Open the package folder, and then navigate to this subfolder:
    \004_MTRD16_Platinum_02_2017\004_MTRD16_Platinum_02_2017\Layouts\Layouts_with_Content
    In this folder, copy these file.s
    MT-Publishing_Layouts.cmp
    to a SharePoint farm server (for example, I usually use the server hosting CA).  
  2. Importing this library export package deploys new pages to the Pages document library.  One of the pages that it will import is default.aspx.  Therefore, if you are using this currently as the name of your home page for the root web, you need to temporarily change it to something different before importing the pages.  Afterwards, you can rename the imported default.aspx to something different, and then rename your old home page back to default.aspx.
  3. On SPDEVCA, in an elevated SMS, execute the following commandlet to import the predefined pages to the Pages document library
    Import-SPWeb -Identity "[site url]" -Path "[path to export package]\MT-Publishing_Layouts.cmp"
  4. On a local machine, open a browser and then connect to the root web of the site collection.
  5. At the site, navigate to this location:
    [site] > Settings > Site Content > Pages
    Verify that the following new ages appear listed:
    Article---Body-Only
    Article---Image-Left
    Article---Image-Right
    Article---Summary-Links
    Blank-Web-Part-Page
    Predefined-Table-Grids
    Styles---Body-Area
    Welcome-2-Column-A
    Welcome-2-Column-B
    Welcome-2-Column-Slider
    Welcome-3-Column-A
    Welcome-3-Column-B
    Welcome-Summary-Links
VII. Add 004_MTRD16_Platinum Web Part Pages with Predefined Content to Any Site (Optional)
  1. Open the package folder, and then navigate to this subfolder:
    \004_MTRD16_Platinum_02_2017\004_MTRD16_Platinum_02_2017\Layouts\Layouts_with_Content
    In this folder, copy this  file
    MT-Text_and_Webpart_Layouts.cmp
    to a folder on a SharePoint farm server (e.g., I usually use the SharePoint server hosting CA).
  2. On the server, open an elevated SharePoint Management Shell, and then execute the following commandlet to import the pages into the site's Site Pages document library:
    Import-SPWeb -Identity "[root site url]" -Path "[path to export package on server]\MT-Text_and_Webpart_Layouts.cmp"
  3. At the site, navigate to this location:
    [site] > Settings > Site Content > SitePages
    Verify that the following new ages appear listed:
    Text Layout - Page A.aspx
    Text Layout - Page B.aspx
    Text Layout - Page C.aspx
    Text Layout - Page D.aspx
    Text Layout - Page E.aspx
    Text Layout - Page F.aspx
    Text Layout - Page G.aspx
    Text Layout - Page H.aspx
    Text Layout - Page I.aspx
    Web Part Page SideBar - Left.aspx
    Web Part Page SideBar - Right.aspx
    Web Part Page Splash 3 - Column.aspx
VIII. Add 004_MTRD16_Platinum Web Parts (Optional)
  1. On a local machine, open a new instance of IE (32-bit) and then connect to the root web of the site collection
  2. At the site, navigate to this location:
    [site] > Settings > Site Settings > Web Designer Galleries > Web parts
  3. On the document library's ribbon, select the LIBRARY tab and then click Open with Explorer
  4. On your local machine, navigate to this theme package folder
    \004_MTRD16_Platinum_02_2017\004_MTRD16_Platinum_02_2017\Web_Parts
    and then copy all of these web part files
    Article_A.dwp
    Article_B.dwp
    BannerImages-ContentEditor.dwp
    BodyText-ContentEditor.dwp
    Carousel-ForFullWidthLayout.dwp
    Carousel-ForLayoutwithSidebar.dwp
    EmployeeLookup.dwp
    Hide_Side_Navigation.dwp
    Hide_Side_Navigation-No_Column_Width.dwp
    IMGLeft1Column-ContentEditor.dwp
    LatestNews-ContentEditor.dwp
    List1Col-ContentEditor.dwp
    List2Columns-ContentEditor.dwp
    ListIMGTop-ContentEditor.dwp
    MainMessage-ContentEditor.dwp
    OurServices-ContentEditor.dwp
    RequestQuote.dwp
    ServiceDesk-ContentEditor.dwp
    StandaloneHeading-ContentEditor.dwp
    SummaryLink1Column-Bulleted.webpart
    SummaryLink1Column-IMGLeft.webpart
    SummaryLink1Column-IMGLeft_B.webpart
    SummaryLink2Columns-Bulleted.webpart
    SummaryLink2Columns-IMGLeft.webpart
    SummaryLink2Columns-IMGLeft-Banded.webpart
    TableofContents-Layout_Preset.webpart
    TimeReporting-SummaryLink.webpart
    to the Web Part document library.
  5. Edit the file properties of each of the uploaded web part files in turn as follows:
    Group: 004_MTRD16_Platinum
  6. Add a new page to the Pages document library.  Open this page   in Edit mode, and then, on the PAGE tab of the ribbon, verify that the 004_MTRD16_Platinum group of web parts appears.

References

Notes

  • Installing the theme package by deploying the package's sandbox solution will remove all of the OOTB composed looks configured in the Settings > Site Settings > Web Designer Galleries > Composed looks list.  The files comprising each OOTB composed look are still there and can be used to manually re-create the OOTB composed looks if desired.

Tuesday, June 12, 2018

SharePoint 2013: Technical Diagrams

Microsoft has re-architected the organization of its SharePoint content, and, as a result, some items may be hard to find.  Below are the hyperlinks to the excellent SharePoint 2013 Technical Diagrams.  Where a title is hyperlinked, clicking this navigates the browser to the standard Microsoft Download page, where you can select the PDF and Visio versions.  Where a Microsoft Download link could not be found, the individual PDF and Visio hyerlinks are provided, and clicking these immediately initiates the download.

  • Model Posters

Monday, May 14, 2018

SharePoint TIP: quickly and recoverably remove sites in bulk using a single line of PowerShell

To quickly and recoverably remove sites in bulk, using piping.  For example, if a content database has hundreds of MySite sites that you do not want to upgrade, you can quickly remove them from the content database(s) like so:
Get-SPSite -WebApplication "[webappurl]" -LimitAll | Where-Object {$_.URL -Like "*MySites*"} | Remove-SPSite -GradualDelete -Confirm:$False
That's it. Execute this in an elevated SharePoint Management Shell (SMS). The -GradualDelete parameter moves the deleted sites into the SPDeletedSite collection in the content database, and the -Confirm:$False parameter ensures that you are not prompted hundreds of times for each site to be removed.

References

  • I use this when testing content databases to be migrated.  After making a copy of the production version backup, I sometimes need to remove legacy sites and want to do this in bulk, such as removing old MySite sites.  You can even do this in parts by filtering for MySite sites starting with "a", or "b", etc, like "*MySites/a* or "*MySites/b*".  I then do a quick check by interrogating the SPDeletedSites collection to ensure that what I expected to delete was in fact deleted.

Monday, May 7, 2018

SharePoint 2013: Add-SPSolution : The solution cannot be deployed.

Problem

You are a new admin engaged in upgrade testing of a customer SharePoint 2010 farm to SharePoint 2016.  You have mounted a copy of the production SharePoint 2010 content database to the development 2013 farm and reviewed the upgrade report.  No upgrading blocking issues were found, but there are many warnings involving third party solutions.  One third party solution, let's call it TPS1, is your focus in this test. Reviewing the installed farm solutions in Central Administration on the development farm, you find that a version of TPS1 was uploaded but unsuccessfully deployed to any web applications in the development farm.  You want to remove all traces of the solution so that you can start fresh.

The upgrade path you are engaging is like so:
SharePoint 2010 Farm   >   SharePoint 2013 Farm   >   SharePoint 2016 Farm
Content DB   >   Content DB   >    Content DB
TPS1 (2010)   >   TPS1 (2010) > TPS1 (2013)   >   TPS1 (2013) > TPS1 (2016)

You need to install the 2010 version of TPS1 to the 2013 farm so that when you perform the mount of the 2010 content database, any features and web parts deployed in the 2010 content database will sync with the solution and not generate any upgrade warnings.  Once the 2010 content database is mounted successfully to the 2013 farm, you intend to upgrade the solution prior to mounting the upgraded 2010 content database to the development 2016 farm.

Since it didn't seem to ever have been actually deployed, you simply perform a remove of solution using:
Remove-SPSolution -Identity "TPS1.wsp"
and it is unloaded without issue. You then download the latest build of the SharePoint 2010 version of TPS1.wsp, and then attempt to add it by executing:
Add-SPSolution -LiteralPath "D:\Temp\TPSA1.wsp"
You then see the following error message presented in the shell:
Add-SPSolution : The solution cannot be deployed.  The feature '[SomeFeatureID]' uses the directory "[SomeDirectory2]" in the solution.  However, it is currently installed in the farm to the directory "[SomeDirectory1]". Uninstall the existing feature before you install a new version of
the solution.
You commence troubleshooting.

Troubleshooting

  1. Looked in ...15\TEMPLATE\FEATURES folder for [SomeDirectory1].
    1. Not found
  2. Performed search in ...\15\TEMPLATE for [SomeDirectory1].
    1. Found it under ...\15\TEMPLATE\FEATURES\ADMIN.  The folder is empty.
  3. Pulled a listing of all features across the farm using Get-SPFeature | sort-object DisplayName | ft Displayname,ID -auto.
    1. Found a listing for "SomeDirectory1  SomeFeatureID"
  4. Pulled listing of all orphaned features using Get-SPFeature | ? { $_.Scope -eq $null }.
    1. Found a listing for "SomeDirectory1  SomeFeatureID".
  5. Attempted to get a handle on the orphaned feature using Get-SPFeature -Identity  '[SomeFeatureID]'.
    1. Returned error message:
      Get-SPFeature : Cannot find a Feature object with Path or Id:
      '[SomeFeatureID]'
      in scope Local farm.
  6. Attempted to get handle on the orphaned feature using its display name using $feature = Get-SPFeature | ? {$_.DisplayName -eq "SomeFeature"} followed by $feature.
    1. Feature information is displayed.
  7. Attempted to delete the feature using $feature.delete.
    1. Returned nothing.
  8. Pulled listing of all orphaned features using Get-SPFeature | ? { $_.Scope -eq $null }.
    1. Feature is not listed.
  9. Now attempted to add the most recent build of the solution using Add-SPSolution -Path "D:\2010\TPS1.wsp"
    1. Succeeded.

Solution

  • Check for orphaned features if unable to install updated versions of third-party solutions.

References

  • Thanks to Anatoly Mironov for pointing the way to the solution.  His clear description helped me quickly identify and resolve the problem.

Friday, April 20, 2018

SharePoint Online: Completely removing an external user

Problem

You are a Global Administrator for your organization's Office 365 subscription, employing both cloud and federated identities. Various site collection administrators look after day-to-day administration of user content site collections.  One site collection administrator manages a site having hundreds of internal (federated) and external (cloud) users.  The site collection is configured to allow both internal and external users to access the site.

The site collection administrator sends an invite to an external user, and the external responds and a cloud account is created for her.  The site collection administrator deletes the account for some reason and sends out another invite, which the external user responds to but experiences an error:
Sorry, something went wrong
We're sorry, sign-in isn't working right now. But we're on it! Please try again later.
In order to recover from the problem, the external user's account must be completely removed from both SharePoint Online and O365.

Solution

  1. Remove user account from all user groups: request the site collection administrator remove the user account from all SharePoint user groups he or she may have added the external user's account to.
  2. Remove the user account from the site collection: request the site collection administrator use this user listing to remove the user completely from the site collection:
    _layouts/15/people.aspx?MembershipGroupId=0
  3. Remove the user profile from SharePoint Online: request the SharePoint Online Admin to remove the user's profile:
    Navigate to: SharePoint Admin Center > user profiles > People > Manage User Profiles
  4. Remove the user's cloud account: as Global Administrator, remove the cloud account:
    Navigate to: Admin Center > Users > Guest users > [click Delete a user button] 

References

Notes

  • Cloud Identity: the identity exists in the cloud in Microsoft Azure Active Directory (MS AAD) and not in your organization's on-premises Active Directory. Also referred to as an external user.
  • Federated Identity: the identity exists in your organization's on-premises Active Directory, which is synchronized with AAD.  Also referred to as an internal user.
  • Global Administrator: has access to all administrative features in the Office 365 suite of services in your organization's Office 365 subscription.  They are the only admins who can assign other admin roles (e.g., SharePoint Admin, Exchange Admin, etc).
  • SharePoint Administrator: effectively the farm administrator, has access to all site collections in the O365 subscription.

Monday, April 16, 2018

SharePoint 2016: Exception of Type Microsoft.Office.SecureStoreService.Server.KeyManagement.InvalidMasterKeyException was thrown

Problem

Connected to a recently deployment development SharePoint 2016 farm to view health report and discovered the following rule violation:
Title The Unattended Service Account Application ID is not specified or has an invalid value.
Severity 2 - Warning
Category Security
Explanation
The Unattended Service Account is a single account that all documents can use to refresh data. It is required when connecting to data sources external to SharePoint, such as SQL. Without a valid Unattended Service Account Application ID, Visio Graphics Services will not be able to refresh Web Drawings that are connected to external data sources. The rule for the Unattended Service Account Application ID failed. The ID does not exist. Visio Graphics Services Application.

Remedy
To resolve this issue, the Visio Graphics Services administrator must provision the Secure Store Service, create a target application, and assign the ID of this target application to this setting. For more information about this rule, see "http://go.microsoft.com/fwlink/?LinkID=142617".
On navigating to the Manage Secure Store page, was presented with error message, Unable to obtain master key:
The lead farm administrator had already created a new master key, so this message shouldn't have been appearing.  I am a farm administrator tasked with preparing the farm in support of upgrade and migration.  Began troubleshooting.

Troubleshooting

  1. Granted farm administrators account Full Control: navigated to the Administrators page of the Secure Store Application, granting my admin account full control of the service application.  This was a test.
    1. Result: same message still displayed.
  2. Attempted to generate new master key via GUI
    1. Result: new message displayed: 
  3. Granted farm administrators account Full Control over connection: navigated to the Permissions page to grant my admin account Full Control over the connection.
    1. Results: same message displayed (as in step 2).
  4. Attempted to generate new master key via PowerShell:
    1. Result: same message displayed, now in shell:
      Update-SPSecureStoreApplicationServerKey : Exception of type 'Microsoft.Office.SecureStoreService.Server.KeyManagement.InvalidMasterKeyException' was thrown. At line:1 char:1 + Update-SPSecureStoreApplicationServerKey -ServiceApplicationProxy $secureStore - ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (Microsoft.Offic...cationServerKey:SPUpdateSPSecur...cationServer Key) [Update-SPSecureStoreApplicationServerKey], SecureStoreServiceException + FullyQualifiedErrorId : Microsoft.Office.SecureStoreService.PowerShellCmdlet.SPUpdateSPSecureStoreApplicationServerKey
  5. Removed and redeployed Secure Store Service Application: removed using PowerShell, then redeployed using PowerShell.
    1. Result: on navigating to the Manage Secure Store page, now presented with the message:
      There are no Secure Store Target Applications in this Secure Store Service Application.  You can create a new Target Application from the Manage Target Applications group in the EDIT Ribbon.
      This message indicated that a new master key could now be generated, and a new Secure Store target application could also be created.

Solution

  • If all fails, rebuild the Secure Store Service Application.

References

SharePoint 2016 TIP: how to change content database name in four steps using PowerShell

On any farm server, open an elevated SharePoint Management Shell.

Execute this commandlet to create a new content database mounted to the same web application hosting the content database you want to rename:
New-SPContentDatabase "[NewDatabaseName]" -DatabaseServer "[Alias or name of database server]" -WebApplication "[Web application URL]"
Execute this commandlet to get the names and, most importantly, IDs of all of the content databases currently mounted to that web application:
Get-SPContentDatabase -WebApplication "[Web application URL]" 
You need those IDs in order to be able to execute this commandlet that performs the actual move operation:
Get-SPSite -ContentDatabase "[OldDatabaseID]" | Move-SPSite -DestinationDatabase "[NewDatabaseID]" 
Perform an IISRESET on all farm servers hosting that web application.  Lastly, dismount the old database from the web application:
Dismount-SPContentDatabase "[OldDatabaseID]"

References

SharePoint 2016: 403 Forbidden Error on Connecting to Site after Move

Problem

Logged onto farm CA server, and then executed the following commandlet to move all site collections in one database to another:
Get-SPSite -ContentDatabase [SourceDatabaseID] | Move-SPSite -DestinationDatabase [DestinationDatabaseID]
followed by an IISRESET. Then tried connecting to the site again to verify that it is operational.  On connecting, experienced a 403 Forbidden error presented in the browser.

Solution 

  • Execute IISRESET on the farm server hosting the content web application.

References

Friday, April 13, 2018

SharePoint 2013: Farm servers removed from farm but continue to appear in farm health reports

Problem

A development farm comprised of two application servers, spapp and spca, and one web front end server, spwfe, needed to have two of its servers removed and their resources used elsewhere (these were VMs), reducing the development farm to a single SharePoint server.  It was decided to keep spwfe and remove spapp and spca.  After Central Administration was moved to spwfe, and spapp and spca removed from the farm, these servers continued to appear in the farm health reports.

Solution

  • Delete the entry from the farm Health Report, and then let the rule be run again as per its normal schedule or manually run the rule.  The removed farm servers will no longer appear.

References

  • Thanks to Waqas Sarwar for the simple tip on how to resolve this issue.

Saturday, March 24, 2018

SharePoint 2010 TIP: List Web Application Pools and Identities using PowerShell

In SharePoint 2010, a single PowerShell commandlet, Get-SPServiceApplicationPool, will list all application pools and their identities for service applications.  However, there is no corresponding commandlet for directly listing application pools and their identities for web applications, but it can be done using piping:
Get-SPWebApplication | Select-Object DisplayName,{$_.ApplicationPool.Name},{$_.ApplicationPool.ID},{$_.ApplicationPool.UserName} | ft -auto
If you want to put the output directly into a file, just do this:

Get-SPWebApplication... | Export-CSV -Path "[Path]\[FileName.csv]"
The column headers will be the default property names or expressions that you used. You can customize and improve the output column headers by doing this:
Get-SPWebApplication | Select-Object DisplayName, @{N="Application Pool"; E={$_.ApplicationPool.Name}}, @{N="ID";E={$_.ApplicationPool.ID}}, @{N="Identity"; E={$_.ApplicationPool.UserName}} | ft -auto
 If you don't know the other ApplicationPool properties that you can get from Get-SPWebApplication, just do this:
$wa = Get-SPWebApplication -Identity "[web app name]"
$wa.ApplicationPool

References

Notes

  • This also works for SharePoint 2013 and 2016.

Saturday, March 17, 2018

SharePoint Online: Training Resources


  • SharePoint Online
    • General
    • Global Administrator
      • About the SharePoint Online admin role in Office 365 (view)
      • Change site collection version and upgrade settings (view)
      • Create a site collection (view)
      • Delete a site collection (view)
      • Manage site collection administrators (view)
      • Manage site creation in SharePoint Online (view)
      • Restore a deleted site collection (view)
      • SharePoint Online planning guide (view)
    • SharePoint Administrator
      • Learn best practices for managing and administering SharePoint Online and OneDrive for Business (watch)
      • Manage SharePoint and OneDrive in Office 365: A field guide for administrators (watch)
      • Manage SharePoint using the new Sharepoint Admin Center (watch)
      • SharePoint 2010: Microsoft SharePoint Online: An Overview for Enterprise IT Professionals (view)
      • SharePoint and Office 365 Cloud-Connected Hybrid Scenarios (watch)
      • SharePoint Conference 2014: SharePoint Online Management and Control (watch)
      • SharePoint Online and OneDrive for Business Management and Control (watch)
      • SharePoint Online: Get Started with SharePoint Online (view)
      • TechEd 2014: Microsoft SharePoint Online Management and Control (watch)
    • Site Collection Administrator
      • SharePoint Online video training (watch)
      • SharePoint (online) help center (view)
      • Site Owner vs Site Collection Administrator (View)
      • Create a team or communication site (watch)
    • Site (Web) Administrator
      • Add a page to a site (view)
      • Understanding permission levels in SharePoint (view)
      • End User Help Center (view)
    • User
      • Accessibility support for SharePoint Online (view)
      • Add or remove a news post (watch)
      • Create and share files in a library (watch)
      • Document collaboration and co-authoring (view)
      • Explore your team site (watch)
      • Fix problems opening documents in SharePoint libraries (view)
      • Manage large lists and libraries in SharePoint (view)
      • Move or copy items from a SharePoint document library (view)
      • Sign in to SharePoint Online (view)
      • Sync SharePoint files and folders (watch)
      • Use, filter and update a list (watch)
      • What is SharePoint Online? (watch)
  • SharePoint Onprem
    • General
      • tbd
    • Farm Administrator
      • tbd
    • Site Collection Administrator
      • tbd
    • Site Owner
      • tbd
    • User
      • tbd

Notes

  • Almost all links connect to Microsoft -drafted pages.
  • Many of these pages (particularly the SharePoint Online training articles and videos) present topics and training that are equally applicable to SharePoint Online as well as SharePoint Onprem.  Some pages also present tabs that enable you to quickly switch viewing the topic for both Online and Onprem.  

Thursday, March 15, 2018

SharePoint Online: unable to share a site with external users

Problem

You are a farm administrator.  A site administrator reports that a new administrator to the site is unable to share the site with external users.  She indicates that she granted the new administrator full control to the site, but that the new administrator is still unable to share the site.  You begin troubleshooting.

Troubleshooting

  1. Request site collection administrator permission to the site.
    1. Administrator reports that "site collection administrator" could not be found but granted your account Full Control to site.
    2. Navigated to Settings > Site Settings.
    3. You note that Site collection administrator link is not shown, nor is Site Collection Administration link group presented.
    4. Navigate to Settings > Site Settings > Users and Permissions > Site permissions.
    5. You find three site groups and a number of user accounts granted permissions directly.
    6. You can view the members of the site's Owner group, but not the members of the site's Visitors or Members groups.
    7. When you click the Access Request Settings button, the Access Request Settings dialog appears and an error message is displayed: Members cannot share this site because this site is missing a default members group.
      .
    8. This findings suggests cause of issue is due to a default group not being set that external users are automatically added to,
  2. Search on error message.
    1. You find this reference, regarding setting default groups.
  3. Check site's default groups.
    1. Using "<siteURL>/_layouts/permsetup.aspx", you discover that none of the site's default groups have been set, even though the site does have the usual three user groups.
  4. Request the site collection administrator set the site's default groups.
    1. The site collection administrator sets the default groups.
    2. The site collection administrator reports that though the new site administrator cannot share the site with external users, the original site administrator still can add external users and has been doing so for years.  This finding suggests a different cause, possibly a permissions issue.
  5. Request detailed description plus screenshots.
    1. User provides additional description and also provides screen shot of the "Share [site name]" dialog.  On this dialog, the user entered the email address of an external user, a welcome text, and selected the site's Members group to add the external user's account to, below which is displayed the error message: You do not have permission to add users to the selected SharePoint group.
    2. Navigate to Settings > Site Settings > Users and Permissions > Site permissions and then click on the Members group, but are denied.  You click on the Visitors group and are denied.  You click on the Owners group and are able to view the members and you note your own account listed.
    3. Navigate to Settings > Site Settings > Users and Permissions > People and groups > [in Current navigation, click on More...].  You then try to click on the Edit icon for each of the site's groups, Visitors, Members and Owners, but are denied.
    4. This finding suggests the cause of the issue may be site user group configuration.
    5. You then contact the site collection administrator to request site collection administrator permission level.
  6. Request site collection administrator permission.
    1. The site collection administrator adds your account to the Site Collection Administrators group.
    2. Navigate to Settings > Site Settings > Users and Permissions > People and groups > [in Current navigation, click on More...].  You then try to click on the Edit icon for each of the site's groups, Visitors, Members and Owners and are now successful.
  7. Check configuration of each site group.
    1. The site collection administrator is the owner of all site groups.
    2. All groups are configured to allow only group members to be able to view the group's membership.
    3. The Owners group is configured to only allow the group's owner to be able to edit group membership.
    4. The Visitors and Members groups are configured to allow members of the group to edit group membership.
    5. These findings further indicate that the cause of the issue involves site group configuration.
  8. Check site administrator permissions and group memberships.
    1. Navigate to Settings > Site Settings > Users and Permissions > Site permissions.
    2. Using the Check Permission capability (button in the ribbon), you check the permissions for both the current and new site administrators.  While doing so, while you enter their names, you discover that the new site administrator has multiple different user accounts, including personal, customer and employer accounts.  You also find that the current site administrator also has multiple different user accounts, including customer and employer user accounts.
    3. You review the site collection's User Information List to positively identify all accounts for each user.  You then check the permissions for each of these accounts.  Reviewing the results, you find that the current site administrator's customer account has been added to the site's Members group, but that the new site administrator's customer account has not.  Both site administrators have been granted full control permission level directly.
    4. You add the new site administrator's customer account to the site's Members group and then request that the new site administrator try to share the site again.
  9. Request new site sharing attempt.
    1. You request the new site administrator to attempt to share the site with an external user.  The user then reports that this attempt was successful.

Solution

  • As site collection administrator, ensure that your site administrators are members of those site groups that they are authorized to add new users to when sharing the site with new users.
  • Use your site collection's User Information List and the Check Permissions capability to explore and troubleshoot user permissions and group memberships.

References

Friday, March 2, 2018

SharePoint 2016: Install Prerequisites Offline Using an Arguments File


Introduction

This posting consolidates notes regarding offline installation of SharePoint Server 2016 Enterprise prerequisites.  The approach used here for offline installation of the prerequisites involves using PrerequisiteInstaller.exe along with a PrerequisiteInstaller.Arguments.txt file specifying the local or network location of the prerequisite files to be installed. The prerequisite installation files are identified in the arguments file in the order in which PrerequisiteInstaller.exe attempts to actually install them. The prerequisite file URLs are those used by PrerequisiteInstaller.exe itself to download the prerequisites, not necessarily the ones provided in the TechNet references listed below.  A few of the prerequisites downloaded from these references were found to be different than the ones downloaded using the URLs provided by PrerequisiteInstaller.exe.

Procedure

  1. Copy the SharePoint Server 2016 Enterprise installation media to the server's data drive, D.
  2. Download all prerequisite files, using the URLs indicated by the PrerequisiteInstaller.exe and placed them in a local folder on the server, call it:
    D:\prereqs
  3. Number them in the order in which they are installed by PrerequisiteInstaller.exe:
    01.sqlncli64.msi
    02.msodbcsql.msi
    03.Synchronization.msi
    04.WindowsServerAppFabricSetup_x64.exe
    05.MicrosoftIdentityExtensions-64.msi
    06.setup_msipc_x64.exe
    07.WcfDataServices.exe
    08.AppFabric-KB3092423-x64-ENU.exe
    09.vcredist_x64.exe
    10.vc_redist.x64.exe
    
  4. Create a new text file, naming it
    PrerequisiteInstaller.Arguments.txt
  5. Add the list of switches to this file in the order in which the prerequisite installer attempts to install them:
    /SQLNCli:
    /ODBC:
    /Sync:
    /AppFabric:
    /IDFX11:
    /MSIPCClient:
    /WCFDataServices56:
    /KB3092423:
    /MSVCRT11:
    /MSVCRT14:
    
  6. Add the appropriate file path and name to each switch, making sure that there is no space between the colon ":" and the quotation mark """ next to it:
    /SQLNCli:"D:\prereqs\01.sqlncli.msi" 
    /ODBC:"D:\prereqs\02.msodbcsql.msi" 
    /Sync:"D:\prereqs\03.Synchronization.msi" 
    /AppFabric:"D:\prereqs\04.WindowsServerAppFabricSetup_x64.exe" 
    /IDFX11:"D:\prereqs\05.MicrosoftIdentityExtensions-64.msi" 
    /MSIPCClient:"D:\prereqs\06.setup_msipc_x64.exe" 
    /WCFDataServices56:"D:\prereqs\07.WcfDataServices.exe" 
    /KB3092423:"D:\prereqs\08.AppFabric-KB3092423-x64-ENU.exe" 
    /MSVCRT11:"D:\prereqs\09.vcredist_x64.exe" 
    /MSVCRT14:"D:\prereqs\10.vc_redist.x64.exe"
    
  7. Lastly, backspace each switch so that everything is put onto one line, making sure that one space comes before each switch (except for the first switch), and then save and close the file.
  8. Copy the file to the same location as the PrerequisiteInstaller.exe.
  9. Open an elevated DOS shell, navigate to the folder containing the installation media, and then run PrerequisiteInstaller.exe.  It will automatically detect if a PrerequisiteInstaller.Arguments.txt file is the same folder.  Installation and configuration is quick and completes in less than five minutes.  There will be at least two reboots.

References

Notes

  • The process used for obtaining the PrerequisiteInstaller.exe URLs for prerequisite file downloads involved iteratively running PrerequisiteInstaller.exe in an offline environment, identifying where the preprequisite file failed to download by reviewing the log file, noting down the URL, downloading and installing that prerequisite, and then  rerunning PrerequisiteInstaller.exe again.  Apparently, PrerequisiteInstaller.exe stops at the first error it experiences when trying to download a prerequisite file, and only then does it provide the URL!.  After working through ten prerequisites successively, all prerequisites and their URLs were finally identified.

Friday, February 23, 2018

SharePoint Designer 2010: Cannot load C:\PROGRA...\fpsrvutl.dll

Problem

The problem involved attempting to install SharePoint Designer 2010 (32-bit) to Microsoft Windows 7 hosted on a VMware Horizon Client.  The first issue encountered occurred during installation, when the installation routine was unable to find and install a component. After working through this problem, a new one was encountered that occurred when attempting to launch the product. This posting documents the troubleshooting steps taken and the solution that was found to this problem.

Troubleshooting

  1. Action: Attempted to install SharePoint Designer 2010 (32-bit) onto Windows 10. 
    1. Result: installation failed due to inability to the inability to find a needed component.
      SharePoint Designer requires the following component to be installed: Microsoft .NET Framework Version 3.5 SP1.
    2. Research: Checking Windows 10 installed features verified that .NET Framework 3.5 was not installed:
      .
  2. Action: attempted to install .NET Framework 3.5. This required files to be downloaded.
    1. Result: Windows was unable to find the required files to complete the request changes. Error code: 0x800F081F.
      .
    2. Research: searched for and found related reference; error code indicated that there was a path problem for Windows to find needed files.  However, no option was provided during the download process for indicating a path, which suggest that this option was locked down by GPO.  Rather than engage in paperwork delays, it was suggested to try a Windows 7 VMware Horizon client.
  3. Action: attempted installation of SharePoint Designer 2010 (32-bit) onto Windows 7 (64-bit) on VMware Horizon client.
    1. Result: During installation, experienced Error 1712, One or more of the files required to restore your computer to its previous state could not be found.  Restoration will not be possible.  Setup failed. Rolling back changes...
      .
    2. Research: one post seemed to indicate that a simple re-installation attempt might work, after performing a reboot of the machine.  
  4. Action: rebooted machine and then attempted re-installation.
    1. Result: succeeded.
  5. Action: attempted to launch SharePoint Designer 2010 (32-bit).
    1. Result: experienced new error, Cannot load "C:\PROGRA~2\COMMON~1\MICROS~1\Web Server Extensions\14\BIN\fpsrvutl.dll".
      .
    2. Research: one post seemed to indicate that there might be an incompatibility with Office 2016.  Spoke with VMware Horizon Administrator, who confirmed that Office 2016 is installed to new Windows 7 clients bey default.  The administrator then redeployed the client without Office 2016 installed.
  6. Action: attempted to uninstall SharePoint Designer 2010 (32-bit).  
    1. Result: The uninstallation completed but with an error: Microsoft SharePoint Designer 2010 uninstall did not complete successfully.
      .
    2. Research: found one posting that led to discovery of a Microsoft tool for removing Office from a machine.
  7. Action: used tool to attempt to remove all Office components and artifacts from Windows 7 client.
    1. Result: successful.
  8. Action: performed re-installation of SharePoint Designer 2010 (32-bit).
    1. Result: Successful.
  9. Action: attempted to launch Designer again.
    1. Result: experienced new error, Cannot load "C:\PROGRA~2\COMMON~1\MICROS~1\Web Server Extensions\14\BIN\fpsrvutl.dll".
    2. Research: checking machine logs, found a number of warnings concerning the inability to modify various registry keys and subkeys. One posting seemed to indicate that perhaps installed AV was preventing access.  Discussed this with VMware Horizon administrator who indicated that a Windows 7 client could be deployed that did not have AV installed.  Checking the permissions for these keys found that the identity under which the modification was being performed was the identity of the user that performed the installation and attempted to launch SPD2010.  Verified that this identity was a member of the local Administrators group.  Checked the permissions of the local Administrators group for the listed registry keys and subkeys and found that this group only had READ permission for each and every listed key.
  10. Action: performed installation of SharePoint Designer 2010 (32-bit) onto new Windows 7 client that did not have Office of AV installed.
    1. Result: successful.
  11. Action: attempted to launch SPD2010 on new client.
    1. Result: experienced same error as previously, Cannot load "C:\PROGRA~2\COMMON~1\MICROS~1\Web Server Extensions\14\BIN\fpsrvutl.dll".
    2. Research: given the nature of the warnings, it was determined that perhaps modifying the permissions of the listed registry keys and subkeys so as to grant the local Administrators group full control would resolve the launch issue.
  12. Action: changed ownership of each of the listed keys to the local administrators group, and then granted the local Administrators group Full Control; and then attempted to launch SPD2010 - again on new client.
    1. Result: same error as previously.
    2. Research: reviewing the machine log, found same warnings.  Then determined that granting the local Administrators group Full Control to each of the registry hives might resolve the issue.
  13. Action: changed ownership of each of the hives containing the listed keys to the local Administrators group, and then changed the permission granted to the local Administrators group to Full Control.  Then tried re-installing and re-launching on new client
    1. Result: successful installation but launching failed with usual error.
    2. Research: discussed with other staff members who did have SharePoint Designer 2010 successfully installed.  Checked their installation files against the one that was used and found significant difference in size.  Checking this further found that the version used by other staff members was 64-bit version.  This suggested that perhaps 64-bit version might be successfully installed and operated on Windows 7 VMware Horizon client.
  14. Action: completely removed SharePoint Designer 2010 (32-bit) from Windows 7 VMware Horizon original client (used previously in steps 3 - 9).  Performed fresh install, which was successful.  Then attempted to launch.
    1. Result: SharePoint Designer 2010 (64-bit) successfully launched and was able to successfully connect to sites.

Solution

  • On Windows 7 VMware Horizon clients, install 64-bit version of SharePoint Designer 2010.

References

  • Listing of all warnings found in Application log:
    • \Software\Classes\Interface\{85AEE342-48B0-4244-9DD5-1ED435410FAB}\TypeLib
    • \Software\Classes\Interface\{85AEE342-48B0-4244-9DD5-1ED435410FAB}\TypeLib
    • \Software\Classes\Interface\{85AEE342-48B0-4244-9DD5-1ED435410FAB}\ProxyStubClsid3
    • \Software\Classes\Interface\{85AEE342-48B0-4244-9DD5-1ED435410FAB}\ProxyStubClsid
    • \Software\Classes\Interface\{85AEE342-48B0-4244-9DD5-1ED435410FAB}
    • \Software\Classes\Interface\{1BB5DDC2-31CC-4135-AB82-2C66C9F00C41}\TypeLib
    • \Software\Classes\Interface\{1BB5DDC2-31CC-4135-AB82-2C66C9F00C41}\ProxyStubClsid32
    • \Software\Classes\Interface\{1BB5DDC2-31CC-4135-AB82-2C66C9F00C41}\ProxyStubClsid
    • \Software\Classes\Interface\{1BB5DDC2-31CC-4135-AB82-2C66C9F00C41}
    • \Software\Classes\Interface\{2DBEC0A7-74C7-4B38-81EB-AA8EF0C24900}\TypeLib
    • \Software\Classes\Interface\{2DBEC0A7-74C7-4B38-81EB-AA8EF0C24900}\ProxyStubClsid32
    • \Software\Classes\Interface\{2DBEC0A7-74C7-4B38-81EB-AA8EF0C24900}\ProxyStubClsid
    • \Software\Classes\Interface\{2DBEC0A7-74C7-4B38-81EB-AA8EF0C24900}
    • \Software\Classes\Interface\{5DE00405-F9A4-4651-B0C5-C317DEFD58B9}\TypeLib
    • \Software\Classes\Interface\{5DE00405-F9A4-4651-B0C5-C317DEFD58B9}\ProxyStubClsid32
    • \Software\Classes\Interface\{5DE00405-F9A4-4651-B0C5-C317DEFD58B9}\ProxyStubClsid
    • \Software\Classes\Interface\{5DE00405-F9A4-4651-B0C5-C317DEFD58B9}
    • \Software\Classes\TypeLib\{56D04F5D-964F-4DBF-8D23-B97989E53418}\1.5\0\win32
    • \Software\Classes\TypeLib\{56D04F5D-964F-4DBF-8D23-B97989E53418}\1.5\HELPDIR
    • \Software\Classes\TypeLib\{56D04F5D-964F-4DBF-8D23-B97989E53418}\1.5\FLAGS
    • \Software\Classes\TypeLib\{56D04F5D-964F-4DBF-8D23-B97989E53418}\1.5
    • \Software\Classes\CLSID\{8854F6A0-4683-4AE7-9191-752FE64612C3}\InprocServer32
    • \Software\Classes\CLSID\{8854F6A0-4683-4AE7-9191-752FE64612C3}\TypeLib
    • \Software\Classes\CLSID\{3050F667-98B5-11CF-BB82-00AA00BDCE0B}\InprocServer32
    • \Software\Classes\CLSID\{3050F819-98B5-11CF-BB82-00AA00BDCE0B}\InprocServer32
    • \Software\Classes\CLSID\{AE24FDAE-03C6-11D1-8B76-0080C744F389}\InprocServer32
    • \Software\Classes\CLSID\{25336920-03F9-11CF-8FD0-00AA00686F13}\InprocServer32
    • \Software\Classes\CLSID\{3050F391-98B5-11CF-BB82-00AA00BDCE0B}\InprocServer32
    • \Software\Classes\TypeLib\{00020430-0000-0000-C000-000000000046}\2.0
    • \Software\Classes\CLSID\{0BE35204-8F91-11CE-9DE3-00AA004BB851}\InprocServer32
    • \Software\Classes\CLSID\{0BE35203-8F91-11CE-9DE3-00AA004BB851}\InprocServer32
    • \Software\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C}\2.8
    • \Software\Classes\Interface\{BEF6E003-A874-101A-8BBA-00AA00300CAB}\TypeLib
    • \Software\Classes\Interface\{BEF6E003-A874-101A-8BBA-00AA00300CAB}\ProxyStubClsid32
    • \Software\Classes\Interface\{BEF6E003-A874-101A-8BBA-00AA00300CAB}\ProxyStubClsid
    • \Software\Classes\Interface\{BEF6E003-A874-101A-8BBA-00AA00300CAB}