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.20_1166]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.20_1166]
Rating: 0 (from 0 votes)

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.20_1166]
Rating: 9.7/10 (3 votes cast)
VN:F [1.9.20_1166]
Rating: +1 (from 1 vote)

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.20_1166]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.20_1166]
Rating: 0 (from 0 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.20_1166]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.20_1166]
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.20_1166]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.20_1166]
Rating: +2 (from 2 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.20_1166]
Rating: 10.0/10 (4 votes cast)
VN:F [1.9.20_1166]
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.20_1166]
Rating: 9.0/10 (1 vote cast)
VN:F [1.9.20_1166]
Rating: +1 (from 1 vote)

CAML Designer for SharePoint 2013 is released and available to download!

Give it a look and try it out…It will make your life so much easier ;)

Detailed guide:
http://www.camldesigner.com/2013/01/07/camldesigner-2013/

Available in the download section on the BIWUG site:
http://www.biwug.be/

KUDOS to Karine Bosch & Andy Van Steenbergen!

VN:F [1.9.20_1166]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.20_1166]
Rating: +2 (from 2 votes)

An aggregate view of all SPDisposeCheck results as one single CSV file (PowerShell)

After you used the Run SPDisposeCheck on all assemblies in a specific directory with PowerShell script to validate all the assemblies in those packages. A report is created for each assembly found.

In order to visualize the results and communicate them towards the SharePoint team, you could use the following script that will open each SPDispose log file and combine them into 1 CSV file.

You can use Excel to open this csv file and create the pivot tables and diagrams you need in there.

cls
Write-Host "********************************************************************************************************************"
Write-Host "| This script will collect all the SPDisposeCheck result files and create one csv file with them for reporting	   |"
Write-Host "********************************************************************************************************************"
Write-Host

cls
$wspdir = Read-Host "Provide directory where all the result files are located"

#Retrieve the wsp files in this folder
$fileEntries = [IO.Directory]::GetFiles($wspdir,"*.txt");

$counter = 0;
$coll = @();

foreach($fileName in $fileEntries) 
{ 
	$content = Get-Content $fileName;
	$obj = new-object PSObject
	
	foreach($line in $content){
		#check if this line starts with ID: SPDisposeCheckID_
		if($line.StartsWith("ID: SPDisposeCheckID_")){
			$ID = $line.Replace("ID: SPDisposeCheckID_","");
			
			if($ID -eq 140){
				continue #false positive
			}
			
			$obj = new-object PSObject
			$obj | add-member -membertype NoteProperty  -name "Path" -value $fileName
			$obj | add-member -membertype NoteProperty  -name "SPDisposeCheckID" -value $ID -Force

			$counter = 0;
			$coll += $obj;
		}
		
		#Method information
		if($counter -eq 2){
			$line = $line.Remove(0,8) #remove Method: from string
			$obj | add-member -membertype NoteProperty  -name "Method" -value $line -Force
		}
		
		#Statement information
		if($counter -eq 3){
			$line = $line.Remove(0,11) #remove Statement: from string
			$obj | add-member -membertype NoteProperty  -name "Statement" -value $line -Force
		}
		
		#Notes information
		if($counter -eq 4){
			$line = $line.Remove(0,7) #remove Notes: from string
			$obj | add-member -membertype NoteProperty  -name "Notes" -value $line -Force
		}
		
		#More information
		if($counter -eq 4){
			$line = $line.Remove(0,18) #remove More information: from string
			$obj | add-member -membertype NoteProperty  -name "More information" -value $line -Force
		}
		
		$counter++
	}
	
	$coll | export-csv -Delimiter ';' "$wspdir\spdisposecheckrapport.csv" -notypeinformation
} 

The csv file named spdisposecheckrapport.csv will be stored in the same location as the result files are located.

Hope it helps!

/T

VN:F [1.9.20_1166]
Rating: 7.8/10 (4 votes cast)
VN:F [1.9.20_1166]
Rating: +3 (from 3 votes)

Unpack WSP packages in a given directory by PowerShell

How awesome would it be, If you could:

  1. Copy paste all the WSP’s that are installed in your farm into one directory
  2. Run a PowerShell script to unpack the content:
    http://tomvangaever.be/blogv2/2012/12/unpack-wsp-packages-in-a-given-directory-by-powershell/
  3. Have all the assemblies that are inside the WSP packages checked by SPDisposeCheck:
    http://tomvangaever.be/blogv2/2012/06/run-spdisposecheck-on-all-assemblies-in-a-specific-directory-with-powershell/
  4. Create one report by using this script to aggregate all results:http://tomvangaever.be/blogv2/2012/12/an-aggregate-view-of-all-spdisposecheck-results-files-as-csv-file-via-powershell/

In order to extract the content of the WSP files by PowerShell, we need to use a built-in tool (extrac32.exe) that is available in your system32 directory.

The following script will un-pack all the WSP packages into their own directory.

cls
Write-Host "**************************************************************************************************"
Write-Host "| This script will unpack the WSP packages that it finds in a provided directory |"
Write-Host "**************************************************************************************************"
Write-Host

cls
$wspdir = Read-Host "Provide directory where all the wsp's are located"
$exportdir = "C:\Chorale\Audit-CRSE\Export-$((get-date).toString('yyyyMMdd-hhmmss'))\"

#Retrieve the wsp files in this folder and subfolders
$s = [system.IO.SearchOption]::AllDirectories
$fileEntries = [IO.Directory]::GetFiles($wspdir,"*.wsp",$s); 
foreach($fullFileName in $fileEntries) 
{ 
	$fileName = $(Get-Item $fullFileName).Name;
 	$dirName =  $fileName.Replace(".wsp","");
	$path = $exportdir + $dirName;
 	$dir = [IO.Directory]::CreateDirectory($path) 

	#uncab
	Write-Host "Export $fileName started" -ForegroundColor Yellow
	$destination = $path
	C:\Windows\System32\extrac32.exe $fullFileName /e /Y /L $destination
}

Once this operation is done you can use the following script to validate the assemblies: http://tomvangaever.be/blogv2/2012/06/run-spdisposecheck-on-all-assemblies-in-a-specific-directory-with-powershell/
Hope it helps!

VN:F [1.9.20_1166]
Rating: 9.6/10 (7 votes cast)
VN:F [1.9.20_1166]
Rating: +6 (from 6 votes)