SharePoint 2013 adoption guide with recommendations on how to drive organic adoption.

The SharePoint Team is happy to announce http://www.DiscoverSharePoint.com, a new site geared towards driving SharePoint Adoption.

getstarted

This site is a great resource for helping end-users understand SharePoint and what’s in it for them. The site offers a use case catalog, how to guides and videos, and an adoption guide with recommendations on how to drive organic adoption of SharePoint based on research, learnings from customers, Yammer Customer Success Managers, field, and partners.

http://www.discoversharepoint.com/

VN:F [1.9.22_1171]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

SharePoint Management Shell takes longer than 5 seconds to load

managementshellslow

Today we got the question from a SharePoint administration team that the SharePoint 2010 Management Shell (a Windows PowerShell environment specifically for managing SharePoint) was very slow. It was only available after waiting for more than 2 minutes!

This has led to the fact that the administrators no longer used the SharePoint PowerShell commands. They did all the modifications on the different farms manually. You probably already know that this is not a best practice.

Facts:

  • Their farms have no internet connection.
  • SharePoint Root certificate was not available in the Trusted Root Certificate Authorities. (http://support.microsoft.com/kb/2625048)
  • Certificate validation failures were present in the CAPI2 event logs.

Question:

  • Decrease the load time of the SharePoint Management Shell below 10 seconds.

Resolution:

  • Disable CRL check for these farms
  • Making sure that if the farms are connected one day, tampering is not an option.
    • Update host file to route crl.microsoft.com to localhost.

Description:

Most Microsoft assemblies are digitally signed. Each time signed assemblies are loaded, default system behavior is to check with the owner of the root certificate that the cert with which the assembly was signed is still valid.

In the case of Microsoft assemblies, this means a connection is made to crl.microsoft.com in order to read the Certificate Revocation List.

While these farms have no internet connection, the CRL check while perform several different attempts to reach crl.microsoft.com, but each attempt will time-out.

It is this time-out that causes the latency.

Quick fix (This will disable the CRL check, but only for the current user)

  • On the SharePoint server where you want to open the Management Shell
  • Open Internet Explorer
  • Tools
  • Internet Options
  • Advanced
  • Disable the options related to certification revocation.

CRLcheck

After deselecting these options, retry to open the SharePoint PowerShell Administration Shell.The Shell opened in less than 3 seconds.

General Solution:

As my colleague PFE Wesley De bolster already explained in his blog post about SharePoint 2013 Machine Translations: The translation failed because the online translation service was unavailable, there is a group policy setting that allows you to disable the automatically update certificates in the Microsoft Root certificate program.

  • Ctrl+R (Run)
  • Type gpedit.msc
  • Open Public Key Policies
  • Double click on Certificate Path Validation Settings
  • Check “Define these policy settings”
  • Uncheck automatically update certificates in the Microsoft Root certificate program.
  • Change both default retrieval timeout settings to 1
  • OK
  • Run “gpupdate /force”

References:

http://joelblogs.co.uk/2011/09/20/certificate-revocation-list-check-and-sharepoint-2010-without-an-internet-connection/
http://support.microsoft.com/kb/2625048
http://www.bhargavs.com/index.php/2009/07/11/exchange-2007-rollup-update-installation-hang-managed-code-services-do-not-start/
http://blogs.msdn.com/b/weslbo/archive/2012/11/07/sharepoint-2013-machine-translations-the-translation-failed-because-the-online-translation-service-was-unavailable.aspx
http://blogs.msdn.com/b/spses/archive/2012/08/29/crl-verification-failure-sharepoint.aspx

VN:F [1.9.22_1171]
Rating: 9.8/10 (11 votes cast)
VN:F [1.9.22_1171]
Rating: +8 (from 8 votes)

An error occurred whilst trying to load some required components, Please ensure the following prerequisite components are installed. Microsoft Web Developer Tools Microsoft Exchange Web Services”

Visual Studio 2012 provides a great environment for dev/test SharePoint 2013 Apps.
This is true both for scenarios where you want to dev/test in the cloud and then run the app in the cloud, as well as for scenarios where you want to dev/test in the cloud and then run the app using an existing on-premises environment.

If you want to create a SharePoint 2013 app and your receive the following exception, follow the next step by step guide to resolve this issue.

ewserror

  1. Close the messagebox and Visual Studio.
  2. Type appwiz.cpl in Run, this will open the Add/Remove Programs control window.
  3. Uninstall Microsoft Exchange Web Services Managed API 2.0
  4. Right click the EwsManagedApi32.msi link and use the Save link as option to store the msi in c:\downloads
  5. Navigate to c:\downloads and type cmd in the adres bar (this will open the command prompt with c:\downloads as location)
  6. Type dir and make sure EwsManagedApi32.msi is listed in the console window
  7. Type EwsManagedApi32.msi addlocal=”ExchangeWebServicesApi_Feature,ExchangeWebServicesApi_Gac”
  8. complete the installation procedure
  9. Open Visual Studio 2012 and start a new SharePoint 2013 App project.

More information:

Hope it helps!

</Tom>

VN:F [1.9.22_1171]
Rating: 9.8/10 (6 votes cast)
VN:F [1.9.22_1171]
Rating: +3 (from 5 votes)

SkyDrive Pro sync client is now available for Windows

SkyDrive Pro sync client is now available for Windows and can be downloaded here.

The SkyDrive Pro sync client ships with two components that are unselected by default. Microsoft does not recommend changing these default settings.

  • Can be installed standalone and does not require any version of Office to be installed.
  • This standalone client allows users of SharePoint 2013 and SharePoint Online in Office 365 to sync their personal SkyDrive Pro and any SharePoint 2013 or Office 365 team site document libraries to their local machine for access to important content on and offline.
  • Size: 294.8 MB
  • Supported OS:
    • Windows 7
    • Windows 8
    • Windows Server 2008 R2
    • Windows Server 2012
  • It can also be installed side-by-side with previous versions of Office (2010, 2007).
VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Spotify on windows surface RT

https://play.spotify.com allows you to run spotify in your browser, meaning you can run the application on the Surface RT even if the spotify app is not available (yet?)

If you do not have the required cookie on your machine to participate in this beta, you are redirected to spotify.com.
The key here is to get the cookie or open the following site: http://www.spotifyweb.tk/

This evening I noticed that IE became not supported, it is possible to change the user agent string so that you are able to run spotify in your browser on the Surface RT.

Select the gear icon in the upper-right corner, select F12 developer tools > tools > Change user agent string to Chrome…

:)

Hope it helps!

VN:F [1.9.22_1171]
Rating: 8.7/10 (6 votes cast)
VN:F [1.9.22_1171]
Rating: +4 (from 4 votes)

Count files by extension in a given directory by PowerShell

Very often I just want to know how many files with a specific extension are available in a SharePoint project.The following blogpost supported this goal.

<#
.SYNOPSIS 
Retrieves the amount of file based on a specific filter.

.DESCRIPTION
The Get-FileCountByFilter.ps1 script crawls a given directory and uses a user definied filter to count the files.

.PARAMETER Path
Specifies the path to the root directory to start searching and counting.

.PARAMETER Filter
Specifies the filter that is used to count only the files that apply to this filter.

.INPUTS
None. You cannot pipe objects to Get-FileCountByFilter.ps1.

.OUTPUTS
Sytem.Int32. Get-FileCountByFilter returns the number of results found.

.EXAMPLE
C:\PS> .\Get-FileCountByFilter.ps1 -StartDirectory c:\source\projects\
#>

[CmdletBinding()]
param (
	[Parameter(position=0, Mandatory=$true, ValueFromPipeline=$false, HelpMessage="Provide directory where all the result files are located.")]
	[string]$StartDirectory
	)
	
Get-ChildItem $StartDirectory -Recurse | ? {-not $_.PSIsContainer} | group Extension -NoElement | sort count -desc

Get-FileCountByFilter

Get-FileCountByFilter.ps1

VN:F [1.9.22_1171]
Rating: 10.0/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 2 votes)

E-Book Gallery for Microsoft Technologies

Download content for ASP.NET, Office, SQL Server, Windows Azure, SharePoint Server and other Microsoft technologies in e-book formats. Reference, guide, and step-by-step information are all available. All the e-books are free. New books will be posted as they become available.

To view white papers for Microsoft technologies, click here.
To view community and partner content for Microsoft technologies, click here.
To learn more about how to install and read e-book content on your device, click here.
To learn about new free e-books for Microsoft technologies, follow us on Twitter here .
To learn about new white papers for Microsoft technologies, follow us on Twitter here .
To provide feedback on the page or to suggest new content, click here.

http://social.technet.microsoft.com/wiki/contents/articles/11608.e-book-gallery-for-microsoft-technologies.aspx

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

How to get Distributed Cache size (SharePoint 2013)

To check the existing memory allocation for the Distributed Cache service on a server, run the following command at the Windows PowerShell (run as administrator) command prompt:

Use-CacheCluster
Get-AFCacheHostConfiguration -ComputerName YourServerName -CachePort "22233"

Use-CacheCluster
After starting a PowerShell session on a cache host, run this command without any parameters to use the connection settings that reside on the current machine. If you need to connect to a different cache cluster, use the Provider and ConnectionString parameters to specify the cache cluster explicitly.
http://msdn.microsoft.com/en-us/library/ff428183(v=azure.10).aspx

Get-AFCacheHostConfiguration
Cache port number of the cache host. The default cache port is 22233.
The output type is the type of the objects that the cmdlet emits.
http://msdn.microsoft.com/en-us/library/hh848875(v=azure.10).aspx

Cache Port
The cache port is used for transmitting data between the cache hosts and your cache-enabled application. The default is 22233.
Cluster Port
The cache hosts use the cluster port to communicate availability to each of their neighbors in the cluster. The default is 22234.
Arbitration Port
If a cache host fails, the arbitration port is used to make certain that the cache host is unavailable. The default is 22235.
Replication Port
The replication port is used to move data between hosts in the cache cluster. This supports features such as high availability and load balancing. The default is 22236.
HWM: The high watermark percentage of memory
When eviction should begin evicting objects that have not yet expired.
In other words: Removing objects from the cache that are not yet expired.
LWM: The low watermark percentage of memory
When eviction should begin evicting expired objects.
After reaching HWM, when eviction should stop evicting objects that have not yet expired.
In other words: Removing objects from the cache that are marked as expired and stop removing objects that are not marked as expired.
IsLeadHost
Not used in SharePoint

The purpose of this blogpost was to give you a quick answer on the question:
‘What is the Distributed Cache size on a specific server?’

For more information, please read this very detailed blogpost from Josh Gavant:
http://blogs.msdn.com/b/besidethepoint/archive/2013/03/27/appfabric-caching-and-sharepoint-2.aspx

Source:
http://technet.microsoft.com/en-us/library/jj219613.aspx
http://msdn.microsoft.com/en-us/library/ee790914(v=azure.10).aspx

VN:F [1.9.22_1171]
Rating: 10.0/10 (9 votes cast)
VN:F [1.9.22_1171]
Rating: +7 (from 7 votes)

SharePoint 2010 – Import solution Package Exception: SharePoint Not Installed

UPDATE 27/03/2013: If you simply want to upgrade your solution to SP2013, just dubbel click on the sln file on a dev server where SP2013 is installed. :)

UPDATE 21/03/2013: If you run this command you are able to start SharePoint 2010 solutions in Visual Studio 2012, as a side effect we are no longer allowed to create SharePoint 2013 solutions based on the templates.
Removing the added keys allows you to create SharePoint 2013 solutions, but than disables the SharePoint 2010 solution templates. Seems like we cannot have both…

If you want to import an existing SharePoint 2010 solution in Visual Studio 2012 you might encounter the following exception message…

This is due the fact that Visual Studio 2012 checks the “HKLM:\Software\Microsoft\Shared Tools\web server extensions\14.0\” registry if it contains the string value named “Location” before it allows you to continue.

If you run the following command inside your PowerShell window, the value will be set correctly.

Set-ItemProperty -Path "HKLM:\Software\Microsoft\Shared Tools\web server extensions\14.0\" -Name "Location" -Value "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\"

This location exists on my SharePoint 2013 development environment.
If you changed the location of the rootfolder during installation, please use the correct location here.

After you closed Visual Studio and restarted the application you should be able to continue.

Hope it helps!

Tom

VN:F [1.9.22_1171]
Rating: 10.0/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 2 votes)

PowerShell Script to list all lists and libraries with unique permissions

In order to know if your environment contains lists that are close the 64K ACL limit.
The following script might report the possible lists:

Note: List items with unique permissions is sheduled and will be integrated in this script.

cls
Write-Host "********************************************************************"
Write-Host "| This script will check if there are list with unique permissions |"
Write-Host "********************************************************************"
Write-Host
Write-Host "Loading Microsoft.SharePoint.PowerShell..." -ForegroundColor Yellow
Write-Host

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue

$siteURL = Read-Host "Please provide url of the SiteCollection"
$loglocation = Read-Host "Please provide path for the log file (hit ENTER to not store output)"
$site = Get-SPSite($siteURL)

Write-Host
if($loglocation -ne ""){
	start-transcript -path $loglocation
	Write-Host
}

Write-Host "--------------------------------------------------------------"

$counter = 0
Write-Host "The following lists and libraries have unique permissions `r`n (results marked in Red might have an 64K ACL impact):" -ForegroundColor Yellow
Write-Host

foreach($web in $site.AllWebs) {
	foreach($list in $web.Lists) {
		if($list.HasUniqueRoleAssignments -eq $true)
		{
			$counter = $counter + 1
			if($list.ItemCount > 1500){
				Write-Host $list.DefaultViewUrl "- ItemsCount:" $list.ItemCount -ForegroundColor Red "`r`n"
			}else{
				Write-Host $list.DefaultViewUrl "- ItemsCount:" $list.ItemCount "`r`n"
			}
		}else{
			#Write-Host $list.DefaultViewUrl -ForegroundColor Green	 "`r`n"	
		}
	}
}
Write-Host "--------------------------------------------------------------"

if($counter -lt 0){
	Write-Host $siteURL "has no lists or libraries with unique permissions!" -ForegroundColor Green
}else{
	Write-Host $siteURL "has $counter lists or libraries with unique permissions!"
}
Write-Host "--------------------------------------------------------------"

if($loglocation -ne ""){
	Stop-Transcript
}
Write-Host
VN:F [1.9.22_1171]
Rating: 6.9/10 (7 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 5 votes)