All posts in Guides

 With the amount of great sessions at Ignite this year, there is no way you could have attended all, and even if they are posted on Channel9, you might want to download them to be able to view them offline! That is why I created this PowerShell Script so everyone can easily download Microsoft Ignite Videos AND slides whether they were present at Ignite or not! Here are the features:

download Microsoft Ignite Videos and Content

  • Downloads all the Microsoft Ignite 2015 Sessions and Slides (Note: Slides are not posted yet, but the script will download them as soon as they are)
  • Groups them by folders
  • Makes sure no errors come up due to Illegal File names.
  • If you stop the script and restart in the middle, it will start where it left off and not from beginning
  • *NEW* (11/05/2015) You can now filter by keywords in the session title!
  • *NEW* (12/05/2015) Channel9 session blocks are limited to 400 sessions, and I changed the script to download the rest! Now all 680 sessions are downloaded!
  • *NEW* (15/05/2015) Changed the WebClient download protocol to Start-Bits in order to show download progress. Added ability to filter by session code. Cleaned up script so the code & output looks better! (Thank you Dan Holme and Steve Beauge) . As a blogger, you can send your readers to download the sessions you recommend. Just tell them to use the script, and the parameter -session “Code1, Code2, Code3”

Sessions and Slides are put into folders

Download Microsoft Ignite Videos

You can now filter downloads by session code!

Download Microsoft Ignite videos PowerShell

Progress Bar

Total size of sessions is about 292GB! But sessions are still being uploaded, so might increase in the future!

 

In this blog you will see the source code of he script, however my WordPress plugin sometimes breaks some PowerShell, so DO NOT copy it from my blog,

Thanks to Jeff Collins for helping me out with the script during Ignite! Make sure you send it out to all your twitter friends by clicking the image below!

 

Download the script from here!  Do not copy paste from below!

How to use: 

  • To download all sessions just run the script! EX:

.\DownloadIgnitevideosandslidesv4.ps1 

  • To download sessions based on a keyword use the keyword parameters, and divide keywords by a comma. Make sure to use quotes around the keywords! EX:

.\DownloadIgnitevideosandslidesv4..ps1 -keyword “SharePoint,Azure,System Center

  • To download sessions based on the session code, use the session parameter and divide sessions by a comma. Make sure to use quotes around the session codes!

.\downloadignitevideosandslidesv4.ps1 -session “BRK1106,BRK1107,BRK4552”

Here is the source code:

#Script written by Vlad Catrinescu
#Visit my site www.absolute-sharepoint.com
#Twitter: @vladcatrinescu
#Originally Posted here: http://absolute-sharepoint.com/2015/05/the-ultimate-script-to-download-microsoft-ignite-videos-and-slides.html
#Contributors: Dan Holme, Jeff Collins, Steve Beaugé 

Param(
  [string]$keyword,[string]$session
)

######    Variables  #####

#Location - Preferably enter something not too long to not have filename problems! cut and paste them afterwards
$downloadlocation = "C:\Ignite"
#Ignite 2015 Videos RSS Feed
[Environment]::CurrentDirectory=(Get-Location -PSProvider FileSystem).ProviderPath
$rss = (new-object net.webclient)
$video1 = ($rss.downloadstring("http://s.ch9.ms/events/ignite/2015/rss/mp4high"))
$video2 = ($rss.downloadstring("http://s.ch9.ms/events/ignite/2015/rss/mp4high?page=2"))
$slide1 = ($rss.downloadstring("http://s.ch9.ms/events/ignite/2015/rss/slides"))
$slide2 = ($rss.downloadstring("http://s.ch9.ms/events/ignite/2015/rss/slides?page=2"))

#other qualities for the videos only. Choose the one you want!
# $a = ($rss.downloadstring("http://channel9.msdn.com/events/ignite/2015/rss/mp4"))
# $a = ($rss.downloadstring("http://channel9.msdn.com/events/ignite/2015/rss/mp3")) 

#SCRIPT/ Functions  Do not touch below this line :)#
if (-not (Test-Path $downloadlocation)) {
		Write-Host "Folder $fpath dosen't exist. Creating it..."
		New-Item $downloadlocation -type directory | Out-Null
	}
set-location $downloadlocation

function CleanFilename($filename)
{
    return $filename.Replace(":", "-").Replace("?", "").Replace("/", "-").Replace("<", "").Replace("|", "").Replace('"',"").Replace("*","")
}

function DownloadSlides($filter,$videourl)
{
    try
    {
        $videourl.rss.channel.item | Where{($_.title -like “*$filter*”) -or ($_.link -like "*/$filter")} |
        foreach {
	        $code = $_.comments.split("/") | select -last 1	   

	        # Grab the URL for the PPTX file
	        $urlpptx = New-Object System.Uri($_.enclosure.url)
            $filepptx = $code + "-" + $_.creator + "-" + (CleanFileName($_.title))
	        $filepptx = $filepptx.substring(0, [System.Math]::Min(120, $filepptx.Length))
	        $filepptx = $filepptx.trim()
	        $filepptx = $filepptx + ".pptx"
	        if ($code -ne "")
	        {
		         $folder = $code + " - " + (CleanFileName($_.title))
		         $folder = $folder.substring(0, [System.Math]::Min(100, $folder.Length))
		         $folder = $folder.trim()
	        }
	        else
	        {
		        $folder = "NoCodeSessions"
	        }

	        if (-not (Test-Path $folder)) {
		        Write-Host "Folder $folder dosen't exist. Creating it..."
		        New-Item $folder -type directory | Out-Null
	        }

	        # Make sure the PowerPoint file doesn't already exist
	        if (!(test-path "$downloadlocation\$folder\$filepptx"))
	        {
		        # Echo out the  file that's being downloaded
		        write-host "Downloading slides: $filepptx"
		        #$wc = (New-Object System.Net.WebClient)  

		        # Download the MP4 file
		        #$wc.DownloadFile($urlpptx, "$downloadlocation\$filepptx")
                Start-BitsTransfer $urlpptx "$downloadlocation\$filepptx" -DisplayName $filepptx
		        mv $filepptx $folder 

	        }
            else
            {
   		        write-host "Slides exist: $filepptx"
            }
	    }

     }

    catch
    {
        $ErrorMessage = $_.Exception.Message
        Write-host "$ErrorMessage"
    }
}

function DownloadVideos($filter,$slideurl)
{
#download all the mp4
# Walk through each item in the feed
$slideurl.rss.channel.item | Where{($_.title -like “*$filter*”) -or ($_.link -like "*/$filter*")} | foreach{
	$code = $_.comments.split("/") | select -last 1	   

	# Grab the URL for the MP4 file
	$url = New-Object System.Uri($_.enclosure.url)  

	# Create the local file name for the MP4 download
	$file = $code + "-" + $_.creator + "-" + (CleanFileName($_.title))
	$file = $file.substring(0, [System.Math]::Min(120, $file.Length))
	$file = $file.trim()
	$file = $file + ".mp4"  

	if ($code -ne "")
	{
		 $folder = $code + " - " + (CleanFileName($_.title))
		 $folder = $folder.substring(0, [System.Math]::Min(100, $folder.Length))
		 $folder = $folder.trim()
	}
	else
	{
		$folder = "NoCodeSessions"
	}

	if (-not (Test-Path $folder)) {
		Write-Host "Folder $folder) dosen't exist. Creating it..."
		New-Item $folder -type directory | Out-Null
	}

	# Make sure the MP4 file doesn't already exist

	if (!(test-path "$folder\$file"))
	{
		# Echo out the  file that's being downloaded
		write-host "Downloading video: $file"
		#$wc = (New-Object System.Net.WebClient)  

		# Download the MP4 file
		Start-BitsTransfer $url "$downloadlocation\$file" -DisplayName $file
		mv $file $folder
	}
    else
    {
   		write-host "Video exists: $file"
    }

#text description from session
	$OutFile = New-Item -type file "$($downloadlocation)\$($Folder)\$($Code.trim()).txt" -Force
    $Category = "" ; $Content = ""
    $_.category | foreach {$Category += $_ + ","}
    $Content = $_.title.trim() + &quot;<code>r</code>n&quot; + $_.creator + &quot;<code>r</code>n&quot; + $_.summary.trim() + &quot;<code>r</code>n&quot; + &quot;<code>r</code>n&quot; + $Category.Substring(0,$Category.Length -1)
   add-content $OutFile $Content

	}
}

if ($keyword)
{
    $keywords = $keyword.split(&quot;,&quot;)

    foreach ($k in $keywords)
    {
        $k.trim()
        Write-Host &quot;You are now downloading the sessions with the keyword $k&quot;
        DownloadSlides $k $slide1
        DownloadSlides $k $slide2
        DownloadVideos $k $video1
        DownloadVideos $k $video2
    }
}
elseif ($session)
{
    $sessions = $session.Split(&quot;,&quot;)

    foreach ($s in $sessions)
    {
        $s.trim()
        Write-Host &quot;You are now downloading the session $s&quot;
        DownloadSlides $s $slide1
        DownloadSlides $s $slide2
        DownloadVideos $s $video1
        DownloadVideos $s $video2
    }

}
else
{
    DownloadSlides &quot; &quot; $slide1
    DownloadSlides &quot; &quot; $slide2
    DownloadVideos &quot; &quot; $video1
    DownloadVideos &quot; &quot; $video2
}

No ratings yet.

Please rate this

Introduction

Creating a SharePoint Development Virtual Machine is something you might have to do quite a few times as a Developer. Even if it’s a pretty easy process, on a slow machine it can easily kill 4-5 hours of your day only to install SQL, SharePoint, Visual Studio and all the others tools you might need to get started. What if you could just script it so it’s all done automatically while you go take coffee, chat on SharePoint Community or whatever else you enjoy doing? In this tutorial we will learn how to build a script that we will keep using for as long as you keep developing on SharePoint 2013. The tutorial will be split in a few sections since in order to keep them focused and short, and at the end they will all be published in a downloadable PDF. I strongly encourage you to not only copy the scripts, but actually read the blog posts of why I did them like this and there are some parts where you will need to work as well!

Sections:

  1. Introduction & Prerequisites & Creating the Domain and Service Accounts
  2. Installing software prerequisites + SQL
  3. Installing SharePoint 2013
  4. Installing Visual Studio 2012 and Optional Software
  5. Basic Optimizing and Summary
  6. Advanced Optimizing of the scripts!
  7. An eBook Guide of the 6 sections and a video!  (You are here)

Summary

The finalized script is now done, and with only a few changes such as the PC name, you and your developers can create SharePoint 2013 development Virtual Machines with all the required tools with only a few clicks!  I know the instructions weren’t the easiest, but the task wasn’t easy either! I hope you enjoyed and learned from this series as much as I enjoyed doing it and believe it or not, I wasn’t even sure it was doable when I first started the series.

PowerShell is a really powerful tool, and it can really create things that we couldn’t believe were possible a few years ago without additional software like MDT or SCCM.    You can view the final video on YouTube here:

Full Guide

Share this post with your followers on twitter:

Leave  a comment and don’t forget to like us on Facebook here and to follow me on Google+ here and on Twitter here  for the latest news and technical articles on SharePoint.  Also, don’t forget to check out SharePoint Community.Net for more great SharePoint Content

No ratings yet.

Please rate this

I am glad to announce the release of the second version of The ultimate SharePoint 2013 Certification Guide V2 on my Blog!  The Guide has been out since September 17th , however it was exclusive to  SharePoint Community Members.  This guide is aimed at anyone who is considering studying for SharePoint Certifications either to improve their knowledge or to validate existing knowledge about SharePoint.

In June 2013, we saw that there was a huge amount of questions around the SharePoint Server 2013 Certifications and we release the Ultimate SharePoint 2013 Certification Guide, which now has over 6000 views!

However since then, quite a few things changed with certifications and we decided to add even more value to the guide by adding more info about Cloud Certification and Business Intelligence specialists, and even Yammer Certifications! Furthermore, we have added a ton more learning material and background information for every certification.

Here is what’s new!

  • MCSD exams got confirmed!
  • Yammer Certifications!
  • Added information about Cloud Certifications!
  • Added information for BI Specialists!
  • Information about the July 1st and October first MCSM Changes!
  • A TON of new learning resources for every exam!

In this Guide, you will find graphical summaries of the exams you need to take in order to achieve your desired Certification as well as the Information, Costs, and Benefits of each one!I

Share this post with your followers on twitter:

Guide to SharePoint Server 2013 Certification

No ratings yet.

Please rate this

Introduction

Creating a SharePoint Development Virtual Machine is something you might have to do quite a few times as a Developer. Even if it’s a pretty easy process, on a slow machine it can easily kill 4-5 hours of your day only to install SQL, SharePoint, Visual Studio and all the others tools you might need to get started. What if you could just script it so it’s all done automatically while you go take coffee, chat on SharePoint Community or whatever else you enjoy doing? In this tutorial we will learn how to build a script that we will keep using for as long as you keep developing on SharePoint 2013. The tutorial will be split in a few sections since in order to keep them focused and short, and at the end they will all be published in a downloadable PDF. I strongly encourage you to not only copy the scripts, but actually read the blog posts of why I did them like this and there are some parts where you will need to work as well!

Sections:

  1. Introduction & Prerequisites & Creating the Domain and Service Accounts
  2. Installing software prerequisites + SQL
  3. Installing SharePoint 2013
  4. Installing Visual Studio 2012 and Optional Software
  5. Basic Optimizing and Summary
  6. Advanced Optimizing of the scripts! (You are here)
  7. An eBook Guide of the 6 sections and a video! 

Advanced Optimization

Welcome to the advanced optimization part of the script. With this section we will make our script go from 6 scripts, to only running one script and then not touching it until it’s done! I warn you that this section will go a lot “Faster” trough the steps because I assume after the first 5 tutorials you got a better understanding of PowerShell! First of all, I want you to create a “Launchers” Folder and a config.xml file in the C:\SharePoint folder. We will see what we put in them later!

Open the config.xml file and we will add the following things. The localadminpassword is the password of your “local administrator” (the account you use before creating the domain), and the serviceaccountpwd is the password you will use for your Service Accounts!

<autovm>
<localadminpassword>pass@word1</localadminpassword>
<serviceaccountpwd>pass@word1</serviceaccountpwd>
</autovm>

Now, open the preparepc.ps1 script and add the following after the “Add-WindowsFeature -Name “ad-domain-services” -IncludeAllSubFeature –IncludeManagementTools” line.

$xmlconfig = &quot;C:\SharePoint\config.xml&quot;
$propertiesInput = Get-Content $xmlconfig
$password = $propertiesInput.autovm.localadminpassword
New-Item -Path &quot;HKCU:\Software\Microsoft\Windows\CurrentVersion\&quot; -Name RunOnce -ErrorAction SilentlyContinue | Out-Null
New-ItemProperty -Path &quot;HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce&quot; -Name SPVM -Value &quot;<code>&quot;C:\SharePoint\Launchers\createdomain.bat</code>&quot; &quot; -Force | Out-Null
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name DefaultUserName -Value &quot;Administrator&quot;
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name DefaultPassword -Value $password
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name AutoAdminLogon -Value &quot;1&quot;
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name ForceAutoLogon -Value &quot;1&quot;
Restart-Computer

Let’s see what we did there! First, we took the password from the config.xml file and saved it in a variable called $password. Afterwards, since we have a reboot we will need a way to start the scripts… so we will use the “RunOnce” registry key. The RunOnce key is what the PC will do the next time a user logs on… in this case we will run “C:\SharePoint\Launchers\createdomain.bat” which we haven’t yet created! Now, the “Winlogon” registry values are there for the autologin. We know our initial account is called “Administrator” and using the $password variable, Windows will be able to automatically log us in!

Now go in the Launchers Folder, and create a file called createdomain.bat that has the following inside:

"%SYSTEMROOT%\system32\windowspowershell\v1.0\powershell.exe" -Command Start-Process "$PSHOME\powershell.exe" -Verb RunAs -ArgumentList "'-NoExit -ExecutionPolicy Bypass C:\SharePoint\2-createdomain.ps1'"

Microsoft’s PowerShell Script scheduling isn’t 100% there yet, and I prefer to use .bat files to start our programs. This .bat will start PowerShell as an administrator and run the createdomain.ps1 script!

Now, let’s open the createdomain.ps1 script and at the beginning of the script add the following:

# Windows PowerShell script for AD DS Deployment
$PlainPassword = &quot;pass@word1&quot;
$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force
$xmlconfig = &quot;C:\SharePoint\config.xml&quot;
$propertiesInput = Get-Content $xmlconfig
$password = $propertiesInput.autovm.localadminpassword
New-Item -Path &quot;HKCU:\Software\Microsoft\Windows\CurrentVersion\&quot; -Name RunOnce -ErrorAction SilentlyContinue | Out-Null
New-ItemProperty -Path &quot;HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce&quot; -Name SPVM -Value &quot;<code>&quot;C:\SharePoint\Launchers\createusers.bat</code>&quot; &quot; -Force | Out-Null
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name DefaultUserName -Value &quot;Administrator&quot;
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name DefaultPassword -Value $password
New-ItemProperty -Path &quot;HKLM:\Software\Microsoft\Windows NT\CurrentVersion\WinLogon&quot; -Name DefaultDomainName -Value &quot;VLADDEV&quot;
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name AutoAdminLogon -Value &quot;1&quot;
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name ForceAutoLogon -Value &quot;1&quot;

The $PlainPassword and $SecurePassword are the same string which will be used for the SafeModeAdministrator password, so it doesn’t ask us for the password anymore. The rest is a bit the same except since we will now be in a domain, we added a new-itemproperty (DefaultDomainName).. makesure you change VLADDEV to your actual domain. While in the same script, we will add this line “-SafeModeAdministratorPassword:$SecurePassword " somewhere in the Install-ADDSForest command. It will look something like this:

SharePoint 2013 Development Environment Tutorial

Now we go in Launchers and create the "createusers.bat" file which will contain the following:

"%SYSTEMROOT%\system32\windowspowershell\v1.0\powershell.exe" -Command Start-Process "$PSHOME\powershell.exe" -Verb RunAs -ArgumentList "'-NoExit -ExecutionPolicy Bypass C:\SharePoint\3-createaccounts.ps1'"

We are going to edit the createaccounts.ps1 file to look something like this:

#Name: createaccounts.ps1
#Purpose: Creates Service Accounts
cd c:\SharePoint\sp\serviceaccounts
.\sp2013serviceaccounts.ps1 -Level high -SPOU "SP Service Accounts" -SQLOU "SQL Service Accounts" -SQLLevel high -OptionalAccounts $true
cd c:\SharePoint
.\4.prereqsandfeatures.ps1

The Reason is that the account script and prereqs script can be done with the same users without reboot, so might as well queue them. Now open the sp2013serviceaccounts.ps1 file and find the line where you have $defaultpassword = Read-host .... . We are going to replace it with the password we get from our config file. So it should look something like this:

# get default password. If user put new password in XML, the XML will have priority
$xmlconfig = "C:\SharePoint\config.xml"
$propertiesInput = Get-Content $xmlconfig
$defaultpassword = $propertiesInput.autovm.serviceaccountpwd

Now Open the prereqsandfeatures.ps1 file and before the Restart-Computer command, add the following:

New-Item -Path &quot;HKLM:\Software\Microsoft\Windows\CurrentVersion\&quot; -Name RunOnce -ErrorAction SilentlyContinue | Out-Null
New-ItemProperty -Path &quot;HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce&quot; -Name SPVM -Value &quot;</code>&quot;C:\SharePoint\Launchers\installsql.bat<code>&quot; &quot; -Force | Out-Null
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name DefaultUserName -Value &quot;sql_admin&quot;
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name DefaultPassword -Value $password
New-ItemProperty -Path &quot;HKLM:\Software\Microsoft\Windows NT\CurrentVersion\WinLogon&quot; -Name DefaultDomainName -Value $env:USERDOMAIN -PropertyType &quot;String&quot; -Force | Out-Null
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name AutoAdminLogon -Value &quot;1&quot;
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name ForceAutoLogon -Value &quot;1&quot;

Now, in the Launchers folder, create the installsql.bat file with this inside:

"%SYSTEMROOT%\system32\windowspowershell\v1.0\powershell.exe" -Command Start-Process "$PSHOME\powershell.exe" -Verb RunAs -ArgumentList "'-NoExit -ExecutionPolicy Bypass C:\SharePoint\5.installsql.ps1'"

Good so now we got everything up until SQL to do itself. Now, open the installsql.ps1 script and after the .\SQLBinaries…. Line add the following

$xmlconfig = &quot;C:\SharePoint\config.xml&quot;
$propertiesInput = Get-Content $xmlconfig
$password = $propertiesInput.autovm.serviceaccountpwd
New-Item -Path &quot;HKLM:\Software\Microsoft\Windows\CurrentVersion\&quot; -Name RunOnce -ErrorAction SilentlyContinue | Out-Null
New-ItemProperty -Path &quot;HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce&quot; -Name SPVM -Value &quot;</code>&quot;C:\SharePoint\Launchers\installSharePoint.bat`&quot; &quot; -Force | Out-Null
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name DefaultUserName -Value &quot;sp_admin&quot;
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name DefaultPassword -Value $password
New-ItemProperty -Path &quot;HKLM:\Software\Microsoft\Windows NT\CurrentVersion\WinLogon&quot; -Name DefaultDomainName -Value $env:USERDOMAIN -PropertyType &quot;String&quot; -Force | Out-Null
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name AutoAdminLogon -Value &quot;1&quot;
Set-ItemProperty -Path &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&quot; -Name ForceAutoLogon -Value &quot;1&quot;
shutdown -l

Now, in the Launchers folder, create the installSharePoint.bat file with this inside:

"%SYSTEMROOT%\system32\windowspowershell\v1.0\powershell.exe" -Command Start-Process "$PSHOME\powershell.exe" -Verb RunAs -ArgumentList "'-NoExit -ExecutionPolicy Bypass C:\SharePoint\6.installSharePoint.ps1'"

Now we're OK up to the installation of SharePoint. Open the script AutoSPInstallerMain.ps1 from C:\SharePoint\SP\AutoSPInstaller\ and go at the very end. (Try to do a search for " If ($isTracing) {Stop-Transcript; $script:isTracing = $false}" ) . After that line, add the following:

cd c:\sharepoint
.\7.installvs2012andtools.ps1

Now... we do not have that PowerShell file yet however since both VisualStudio2012 and the Tools and Software are done with the same user, we will combine script 7 & 8 in one script that will be called: 7.installvs2012andtools.ps1 . We will also modify how we see if Visual Studio 2012 is installed. In theory, there is a switch called /forcereboot that would reboot when Visual Studio is done installing... However, it doesn't workL. So, I had the creative and ghetto idea to do this: Log the installation and when there is no writing in the logs for 5 minutes, it means that the installation is finished! So here is how the Visual Studio 2012 installation is now done:

Write-Host "Installing Visual Studio 2012"
New-Item -ItemType directory -Path C:\AutoInstallLogs
cd C:\SharePoint\Software\VisualStudio2012
.\vs_ultimate.exe /full /noweb /quiet /ProductKey XXXXXXXYYYYZZZZJJDJDJ /Log C:\AutoInstallLogs\VS2012.txt
Start-Sleep -Seconds 240
$path = "C:\AutoInstallLogs"
$y = gci $path |where{!($_.psiscontainer)}|sort -desc lastwritetime|select -first 1
$a = Get-Date
$timespan = New-TimeSpan -Start $y.lastwritetime -End $a
while ($timespan.Minutes -lt 5)
{
Start-Sleep -Seconds 120
$y = gci $path |where{!($_.psiscontainer)}|sort -desc lastwritetime|select -first 1
$a = Get-Date
$timespan = New-TimeSpan -Start $y.lastwritetime -End $a
}
Write-Host "Visual Studio 2012 Installation Done"

It's probably not the best or cleanest way... however it works perfectly! Here is the rest of the script:

Write-Host "Installing Microsoft Office Developer Tools for Visual Studio 2012"
C:\SharePoint\Software\OfficeToolsForVS2012RTW\WebPlatformInstaller_amd64_en-US.msi /q
Start-Sleep -s 120
C:\SharePoint\Software\OfficeToolsForVS2012RTW\bin\WebpiCmd.exe /install /products:OfficeToolsForVS2012RTW /XML:C:\SharePoint\Software\OfficeToolsForVS2012RTW\feeds\latest\webproductlist.xml /AcceptEula

Write-Host "Installing NotePad++"
cd C:\SharePoint\Software\NotePad++
.\npp.6.5.Installer.exe /S
Start-Sleep -s 120

Write-Host "Installing Goolge Chrome"
Cd C:\SharePoint\Software\Chrome
Msiexec /q /I GoogleChromeStandaloneEnterprise.msi
Start-Sleep -s 120

Write-Host "Installing FireFox"
cd C:\SharePoint\Software\FireFox
.\ffsetup.exe -ms
Start-Sleep -s 120

Write-Host "Installing SharePoint Designer 2013"
cd C:\SharePoint\Software\SPDesigner
.\setup.exe /adminfile updates\adminfile.msp
Start-Sleep -s 200

Write-Host "Copying standalone programs"
Copy-Item C:\SharePoint\Software\StandAlone\* C:\Users\sp_admin\Desktop
Write-Host "DONE"

I know there weren't many images in this part as in the other one, so here are some to give you an idea what it should look like at the end:

Hope you enjoyed and head over to Part 7 (19-11-2013) which is the final Summary and a 1h30 long video of how your installation will look like!

Share this post with your followers on twitter:

Leave  a comment and don’t forget to like us on Facebook here and to follow me on Google+ here and on Twitter here  for the latest news and technical articles on SharePoint.  Also, don’t forget to check out SharePoint Community.Net for more great SharePoint Content

No ratings yet.

Please rate this

Introduction

Creating a SharePoint Development Virtual Machine is something you might have to do quite a few times as a Developer. Even if it’s a pretty easy process, on a slow machine it can easily kill 4-5 hours of your day only to install SQL, SharePoint, Visual Studio and all the others tools you might need to get started. What if you could just script it so it’s all done automatically while you go take coffee, chat on SharePoint Community or whatever else you enjoy doing? In this tutorial we will learn how to build a script that we will keep using for as long as you keep developing on SharePoint 2013. The tutorial will be split in a few sections since in order to keep them focused and short, and at the end they will all be published in a downloadable PDF. I strongly encourage you to not only copy the scripts, but actually read the blog posts of why I did them like this and there are some parts where you will need to work as well!

Sections:

  1. Introduction & Prerequisites & Creating the Domain and Service Accounts
  2. Installing software prerequisites + SQL
  3. Installing SharePoint 2013
  4. Installing Visual Studio 2012 and Optional Software
  5. Basic Optimizing and Summary
  6. Advanced Optimizing of the scripts! (You are here)
  7. An eBook Guide of the 6 sections and a video! (19/11/2013)

Basic Optimizing

As the title says, this part of the tutorial is really just BASIC optimizing. All the “cool” and advanced stuff will be done in the next part, however if you don’t mind doing a minimum of manual Work, you can stop here! All our scripts are now ready, however look at the following screenshot and what do you see?

SharePoint 2013 Development Environment Tutorial

That’s right… a bunch of scripts that aren’t really in order or descriptive! Now, if you give this like that to a developer, chances are he might run the scripts in incorrect order and have lots of errors. Let’s fix that a bit!

A lot better! However, I still don’t find it clean enough + the sp2013serviceaccounts.ps1 script is there with no number? Let’s move the “sp2013serviceaccounts.ps1” file and the XML folder into a new folder under “C:\SharePoint\SP\ServiceAccounts”

We also have to change the “createaccounts.ps1” script to now represent the new path. Your new script will now be this:

cd c:\SharePoint\sp\serviceaccounts
.\sp2013serviceaccounts.ps1 -Level high -SPOU &amp;quot;SP Service Accounts&amp;quot; -SQLOU &amp;quot;SQL Service Accounts&amp;quot; -SQLLevel high -OptionalAccounts $true

The Next thing that I find really not cool is the random “sxs” folder. All the other folders have a descriptive and logical name, except the sxs one. Luckily, under “C:\SharePoint\SP\2013\SharePoint\PrerequisiteInstallerFiles\” there is another “sxs” folder that is used for the same thing by AutoSPInstaller (if we didn’t do it before). Let’s move the “SXS” folder from the “C:\SharePoint” to “C:\SharePoint\SP\2013\SharePoint\PrerequisiteInstallerFiles\”

We Now also have to change the “prereqsandfeatures.ps1” script to show the new path! So, change the “Add .Net Framework” section part to show this command;

#Add .Net FrameWork
Import-Module ServerManager
DISM.exe /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:&amp;quot;C:\SharePoint\SP\2013\SharePoint\PrerequisiteInstallerFiles\sxs&amp;quot;

We are now left with a clean, professional folder that is ready to install you a SharePoint 2013 Development Environment with minimal input!

Next, we see that number 8 and 9 are done by the same user, one after the other and PowerShell can simply queue them… so let’s combine them and change the name to 8. Installtools.ps1. The insides will be something like this:

#Name: installtools.ps1
#Purpose: Installs Microsoft Office Developer Tools for Visual Studio 2012 &amp;amp; Other Software
Write-Host &amp;quot;Installing Microsoft Office Developer Tools for Visual Studio 2012&amp;quot;
C:\SharePoint\Software\OfficeToolsForVS2012RTW\WebPlatformInstaller_amd64_en-US.msi /q
Start-Sleep -s 120
C:\SharePoint\Software\OfficeToolsForVS2012RTW\bin\WebpiCmd.exe /install /products:OfficeToolsForVS2012RTW /XML:C:\SharePoint\Software\OfficeToolsForVS2012RTW\feeds\latest\webproductlist.xml /AcceptEula
Write-Host &amp;quot;Installing NotePad++&amp;quot;
cd C:\SharePoint\Software\NotePad++
.\npp.6.5.Installer.exe /S
Start-Sleep -s 120
Write-Host &amp;quot;Installing Goolge Chrome&amp;quot;
Cd C:\SharePoint\Software\Chrome
Msiexec /q /I GoogleChromeStandaloneEnterprise.msi
Start-Sleep -s 120
Write-Host &amp;quot;Installing FireFox&amp;quot;
cd C:\SharePoint\Software\FireFox
.\ffsetup.exe -ms
Start-Sleep -s 120
Write-Host &amp;quot;Installing SharePoint Designer 2013&amp;quot;
cd C:\SharePoint\Software\SPDesigner
.\setup.exe /adminfile updates\adminfile.msp
Start-Sleep -s 200
Write-Host &amp;quot;Copying standalone programs&amp;quot;
Copy-Item C:\SharePoint\Software\StandAlone\* C:\Users\sp_admin\Desktop
Write-Host &amp;quot;DONE&amp;quot;

That’s it for basic optimizing! If you want to go further in automating your Development Machine, make sure you go to Part 6 (Advanced Optimizing of the scripts! (12/11/2013)

Summary

Five Blog Posts and about 7000 words later, we now got what we wanted … all the scripts to create a SharePoint 2013 Development machine as well as all the sources that you can put on a network Share and every developer in your company can use! At the end, look at all the programs we can now install automatically!

I really hope this was useful for you and you enjoyed not only copying the scripts from a blog post, but also learn the steps and understand why we ran those scripts and the configurations we did. If you are satisfied with the level of automation that we got, you can back up this gold mine on a network share, create an Instructions Manual on how to run it for yourself or your developers and stop wasting time installing SharePoint 2013 Development Virtual Machines! If you are more of a PowerShell fan and want to achieve ultimate automation, check out the next section which will show you how to do so!

Share this post with your followers on twitter:

Leave  a comment and don’t forget to like us on Facebook here and to follow me on Google+ here and on Twitter here  for the latest news and technical articles on SharePoint.  Also, don’t forget to check out SharePoint Community.Net for more great SharePoint Content

No ratings yet.

Please rate this

Unless you were on vacation for the past three weeks, by now you know that SharePoint 2010 Service Pack 2 is out and ready to be installed! If you’re looking for the announcement, or download links, check out this post: SharePoint 2010 Service Pack 2 Released . This article will be focused on some questions I got from SharePointers from SharePoint-Community.Net and also from friends… How do I patch my SharePoint 2010 farm the right way? Let’s start with some SharePoint Myth Buster action!

Install SharePoint 2010 Service Pack 2 the right way by Vlad Catrinescu

Myth 1: I need to apply both SharePoint Foundation SP2 and SharePoint Server SP2

That is not true! In SharePoint 2007 and until August 2011, you had to do this, but it is not true anymore! Here is the Best Practice quotation from the official technet article:

The packaging of cumulative updates changed as of August 31, 2011. […]As a result of the new packaging, it is no longer necessary to install the SharePoint Foundation cumulative update and then  install the SharePoint Server cumulative update.

You can read the full paragraph here: http://technet.microsoft.com/en-ca/sharepoint/ff800847.aspx#LatestUpdates

Conclusion : If you have SharePoint Server 2010, you only need to install the SharePoint Server Service Pack!

Myth 2: If I have SharePoint Server 2010 in English and X Language Pack, I need to install the Service Pack 2 in English and Service pack 2 in X language.

This Myth is also BUSTED. You only need to install the SharePoint Service Pack in the language of the original installation, then install each Language Pack Service Pack in the languages deployed to the farm. For example, if the farm is installed with en-US, and you have installed the French Language Pack, simply install the SharePoint Service Pack 2 from the English download, and the French Service Pack 2 from the Language Pack download (Service Pack 2 for Microsoft 2010 Server Language Pack).

Myth 3: I need to test Service Pack 2 in my test farm before installing it in production

You NEVER install any update (Windows, CU, PU, SP, etc..) in any SharePoint Environment without testing it in a Test Farm. You have been warned!

Myth 4: Since the Service Pack 2 came out in July, and June 2013 CU came out.. in June, Service Pack 2 is the latest available build.

False! June 2013 is a post-Service Pack 2 release (though it does not require SP2). Furthermore, you can’t install June 2013 CU over Service Pack 2 due to patch detection logic errors in the June 2013 CU. Official Microsoft Recommendation? Wait for the August 2013 CU!

How to Install SharePoint 2010 Service Pack 2

Now that our Myth Busting is done, let’s get to business and see what steps we need to take to properly install Service Pack 2 on your SharePoint 2010 Farm. For the sake of the article, let’s suppose you have a super SharePoint 2010 farm with 1 APP server, and 2 Front Ends (WFE). Furthermore, you also have Office Web Apps and the French Language Pack. Here is a small diagram stolen from blog.sharepointedutech.com

1. Install SharePoint Server 2010 Service Pack 2 on all of the SharePoint servers in the farm. The installation of the binaries can be done in parallel, or sequentially.

2. Install the Office Web Apps 2010 Service Pack 2 on all of the SharePoint servers in the farm.

3. Install the French Language Pack Service Pack 2 for SharePoint 2010 on all of the SharePoint servers in the farm. When downloading Language Packs, make sure to select the appropriate language from the drop down and wait until the page appears in the desired language before clicking the Download button

PS: If you have Project Server 2010, make sure you read this post from the Microsoft Project Support Blog: http://blogs.technet.com/b/projectsupport/archive/2013/07/23/project-2010-and-project-server-2010-service-pack-2-sp2-released.aspx

4. Now that the binaries are installed on all the servers, it’s time to go to the more stressful part which is running the SharePoint 2010 Configuration Wizard. On any one of the SharePoint servers, start and run the “SharePoint 2010 Configuration Wizard” as an administrator. In the Configuration Wizard, it may ask you if you want to change anything. At this time, do not change anything, simply click next, next, and next. If you cheated in any of the previous steps, you will have an error in this step!.

5. After the Configuration Wizard is done running on the first server, run it on the next SharePoint server in the farm! Repeat Step #5 until all SharePoint servers are upgraded.

6. Time to test everything!

You are done and successfully installed SharePoint Server 2010 Service Pack 2 using the best practices from Microsoft!

I also want to give a huge thanks to Trevor Seward, SharePoint MVP,  for reviewing this post to make sure every step is done according to Microsoft’s Best Practices.

Share this post with your followers on twitter:

timthumb

Leave  a comment and don’t forget to like us on Facebook here and to follow me on Google+ here and on Twitter here  for the latest news and technical articles on SharePoint.  Also, don’t forget to check out SharePoint Community.Net for more great SharePoint Content!

No ratings yet.

Please rate this

I am glad to announce the release of the first version of The ultimate SharePoint 2013 Certification Guide on my Blog!  The Guide has been out since June 4th, however it was exclusive to  SharePoint Community Members.  This guide is aimed at anyone who is considering studying for SharePoint Certifications either to improve their knowledge or to validate existing knowledge about SharePoint.

This guide covers both certification options for all roles on both the Business and Technical side. To achieve technical certifications Microsoft offers several exams and certification options. For the “Business side” (Business Analysts, PMs, architects, end-users, power-users) Microsoft currently only offer the MOS (Microsoft Office Specialist) certification path. However, we have also included a section in the guide that covers the Salem certifications.

In this Guide, you will find graphical summaries of the exams you need to take in order to achieve your desired Certification as well as the Information, Costs, and Benefits of each one!

Share this post with your followers on twitter by clicking this cool bird right under here

tweet-this


Leave  a comment and don’t forget to like us on Facebook here and to follow me on Google+ here and on Twitter here  for the latest news and technical articles on SharePoint.  Also, don’t forget to check SharePoint-Community.net

No ratings yet.

Please rate this

Hello Everyone, For the past few weeks I was writing a Whitepaper about maximizing SQL 2012 Performance for SharePoint 2013. It’s  been reviewed by 4 great guys , and after being exclusive to SharePoint-Community.net for one week, I release it to the public!

If you want to see the interesting results I got with the modifications suggested in  this WhitePaper, you can read about them on SharePoint-Community.Net

Read the abstract or download the Whitepaper Directly  here!

Abstact
As a SharePoint Consultant I get to see dozens of SharePoint farms every year, and one of the most common complaints I get from clients – is that SharePoint is slow. A lot of people think that SharePoint is slow because the SharePoint servers are lacking resources or, simply, because SharePoint is a slow product. Although resources allocated to the SharePoint servers (e.g. Web Front Ends and App servers) are important, not a lot of people realize that SharePoint performance is directly related to the database, SQL Server. In fact, 94% of SharePoint data is stored in SQL.

In this whitepaper, we will explore many options on how to optimize SQL Server 2012 for SharePoint 2013.  Here is a high level overview of what we intend to explore.
 
Plan before you install
In this section we will review important best practices on how to format your disks, as well as how to plan where databases, logs and your Temp DB will be located.  Furthermore, depending on the purpose of your SharePoint 2013 Farm, we will determine which databases are most important.

How to install SQL Server 2012
In this section we will discuss what changes during installation can impact SQL 2012 Server performance and explain the reasons behind them. For example, did you know SharePoint 2013 uses a different collation than the default SQL one?
 
Post installation changes
In this section we will examine the changes required immediately after you have installed SQL 2012. This will ensure that we have the correct settings from the outset. We will cover everything from Initial DB size to Fill Factor to Instant File Initialization.
 How to keep it performing well for the years to come
Now that you installed SharePoint 2013, Web Applications are starting to be created, content is added. Unfortunately, if you want to keep your SharePoint fast and your users happy, your job is not done. In this section we will make a list of things you need to check and modify, together with a schedule.  Luckily, since we made things right in the Post Installation changes, you won’t have to do them very often.

Leave  a comment and don’t forget to like us on Facebook here and to follow me on Google+ here and on Twitter here  for the latest news and technical articles on SharePoint.  Also, don’t forget to check the SharePoint Community Partners list for other great SharePoint Sites, and vote for my blog if you like my content!

No ratings yet.

Please rate this

As you have probably seen lately, I am releasing a lot of step by step guides to configure Service Applications in SharePoint 2013!  The final objective is to have all Step By Step guides for every Service Application in SharePoint 2013 and have a fully featured farm!

This guide is a step by step guide with Screenshots to create and configure a Managed Metadata Service Application in SharePoint 2013 as well as a Content Type Hub. It’s a really easy tutorial that should take maximum 30 minutes to complete!

I embedded the PDF with Scribd, however if you want to download it, there will be a link at the bottom of the post

Past Guides:

SharePoint 2013 Service Accounts Best Practices! 
Step By Step Guide to configure the “Replicating directory changes” for SharePoint 2010 and 2013

Future Guides

Creating a User Profile Application & MySites
Configuring SharePoint Search Topology
Configure an environment for apps for  SharePoint 2013
Configure Machine Translation Services  SharePoint 2013

If you have any ideas for other Guides or need help with something, leave it in the comments! It might help more people than you think.

Leave  a comment and don’t forget to like us on Facebook here and to follow me on Google+ here and on Twitter here  for the latest news and technical articles on SharePoint.  Also, don’t forget to check the SharePoint Community Partners list for other great SharePoint Sites, and vote for my blog if you like my content!

No ratings yet.

Please rate this

Several weeks ago I did a post about SharePoint 2013 Service accounts Best practices titled : SharePoint 2013 Service Accounts Best Practices! Is there a golden solution for all farms?.  The post talked about how important Service Accounts were in the installation of SharePoint 2013 because if they are not set up correctly  they can open big security holes in your organization or give you problems down the road.

The article also suggested that you cannot have only one set of Service accounts for every scenario, since not all  scenarios require the same security (ex: a development  environment does not require same security as the production one). So, I suggested three sets of service accounts for different deployment scenarios of SharePoint 2013, however I got some feedback that my choices and the accounts weren’t explained in detail.

This post will go over all the three sets of service accounts, explaining the difference between the sets and also what every account does!

NOTE: This sets only cover the basic installation and configuration of SharePoint 2013 and SQL.  Other Service accounts will be needed for some Service Applications (Ex: Excel, Visio, Performance Point, etc)

NOTE: For SharePoint 2016, check out this blog post: https://absolute-sharepoint.com/2017/03/sharepoint-2016-service-accounts-recommendations.html 

SharePoint 2013 Service Accounts – Low Security Option

Summary

The Low security option is of course the one with the least accounts possible to install SharePoint in a proper manner. It uses only 1 SQL account that will be the SQL administrator and also run the services, and 5 SharePoint accounts: The Farm Administrator, the Web Application pool account, the SharePoint Service Application Pool account  the Crawl account and the User Profile Synchronization account. More details under each section

For the SQL Server

Name Description Local Rights Domain Rights
SQL_Admin The SQL Server service account is used to run SQL Server. It is the service account for the following SQL Server services: MSSQLSERVER SQLSERVERAGENT. SQL Admin on the SQL Server Local Administrator on the SQL Server Domain User

Explanation

As Stated previously, in the Low Security Option, we only use one Service Account for our SQL Server.  This account needs to be a Local Administrator on the SQL server in order to be able to install SQL. We will also run the SQL AGENT and the Database Engine services with this account.  This the account that will have the full power on your SQL server and you will use it to grant rights to your SP_Farm(more details to follow)

For the SharePoint Server

Name Description Local Rights Domain Rights
SP_Farm The server farm account is used to perform the following tasks:

-Setup
-SharePoint Products Configuration Wizard
-Configure and manage the server farm.
-Act as the application pool identity for the SharePoint Central Administration Web site.
-Run the Microsoft SharePoint Foundation Workflow Timer Service.
Local Administrator on all the SharePoint Servers. SecurityAdmin and DB_Creator rights on the SQL Instance Domain User
SP_Pool The Pool account is used to run the Web Application Pools None Domain User
SP_Services The Services Account is used to run the Service Application Pool None Domain User
SP_Crawl The Default Content Access Account for the Search Service Application None Domain User
SP_UserProfiles The User Profile Synchronization Account None Replicate Directory Changes permission on the domain. Guide: http://bit.ly/TSE7xs

Explanation

The Low Security Option uses the minimum amount of accounts while also keeping a level of security.  Here is the account breakdown:
SP_Farm is your main SharePoint account in this configuration. It needs to have Local Administrator rights to be able to install SharePoint Server and also the Securityadmin and DBcreator roles on the SQL Server to create the configuration and other databases.  This account will be your main Farm Administrator and also run the Timer Service and the web application for Central Administration use to access the SharePoint content database
SP_Pool  is a domain account used for application pool identity.. ex: When you create a Web Application, and you create a pool for it, you select this account!

SP_Services is a domain account used for the Service Applications Pools.  ex: When you create a Managed Metadata Service application and create a pool for it, you select this account!

SP_Crawl is used within the Search Service Application  to crawl content. The Search Service Application will automatically grant this account read access on all Web Applications. It will also run the SharePoint Windows Search Service.

SP_UserProfiles is the account used for the User Profile Synchronization between your Service Application and your Active Directory. This account does not need any local rights, however you need to give it Replicate Directory Changes rights on the Active Directory in order to allow the synchronization

SharePoint 2013 Service Accounts – Medium Security Option (Sweet Spot)

Summary

The Medium Security option is the Sweet Spot of a SharePoint installation. It uses slightly more accounts than the Low Security Option however it provides a huge security improvement. By giving less rights to each account you limit the possible damage in case an account gets hacked  and also follow Microsoft’s recommendation of installing SharePoint 2013 with  least-privilege administration. More details on the changes under every section!

For the SQL Server

Name Description Local Rights Domain Rights
SQL_Admin SQL Admin on the SQL Server. Used to Install the SQL Server. Local Administrator on the SQL Server Domain User
SQL_Services It is the service account for the following SQL Server services: MSSQLSERVER SQLSERVERAGENT. None Domain User

Explanation

The difference between the Low Security and the Medium Security option for the SQL is that we now use two different accounts :The SQL_Admin and the SQL_Services. The big security improvement is that the account running the Agent and Database Engine services is not a local administrator anymore. Here is the account breakdown:
SQL_Admin: This will be your main SQL Administrator!. It needs Local Administrator rights in order to install the SQL server.
SQL_Services: This account does not have any local rights, it is only used to run the SQL Agent and Database Engine windows services.

For the SharePoint Server

Name Description Local Rights Domain Rights
SP_Farm The server farm account is used to perform the following tasks:

-Configure and manage the server farm.
-Act as the application pool identity for the SharePoint Central Administration Web site.
-Run the Microsoft SharePoint Foundation Workflow Timer Service.
SecurityAdmin and DB_Creator rights on the SQL Instance Domain User
SP_Admin The server farm account is used to perform the following tasks:

-Setup
-SharePoint Products Configuration Wizard
Local Administrator on all the SharePoint Servers. SecurityAdmin and DB_Creator rights on the SQL Instance Domain User
SP_Pool The Pool account is used to run the Web Application Pools None Domain User
SP_Services The Services Account is used to run the Service Application Pool None Domain User
SP_Crawl The Default Content Access Account for the Search Service Application None Domain User
SP_Search Service Account to run the SharePoint Search “Windows Service” None Domain User
SP_UserProfiles The User Profile Synchronization Account None Replicate Directory Changes permission on the domain. Guide: http://bit.ly/TSE7xs

Explanation

In the Medium Security option we increase the security by adding two new accounts: The SP_Admin and the SP_Search. Instead of giving all the Farm Administration power to the SP_Farm account, the SP_Admin will be the one that installs and configures SharePoint 2013 and have the local administrator rights, while the SP_Farm will only run the services and connect to the database. Furthermore, instead of letting the SP_Crawl account run both the Windows Service and have FULL-READ rights on all the web applications, the SP_Search will now run the Windows Service. Here is the breakdown of the accounts:

SP_Farm is a domain account that the SharePoint Timer service and the web application for Central Administration use to access the SharePoint content database. This account does not need to be a local administrator. The SharePoint configuration wizard grants the proper minimal privilege in the back-end SQL Server database.The minimum SQL Server privilege configuration is membership in the roles securityadmin and dbcreator.

SP_admin is a domain account you use to install and configure the farm. It is the account used to run the SharePoint Configuration Wizard  for SharePoint 2013.The SPAdmin account is the only account that requires local Administrator rights. To configure the SPAdmin account in a minimum privilege scenario, it should be a member of the roles securityadmin and dbcreator on the SQL server.

SP_Pool  is a domain account used for application pool identity.. ex: When you create a Web Application, and you create a pool for it, you select this account!

SP_Services is a domain account used for the Service Applications Pools.  ex: When you create a Managed Metadata Service application and create a pool for it, you select this account!

SP_Crawl is used within the Search Service Application  to crawl content. The Search Service Application will automatically grant this account read access on all Web Applications.

SP_Search Is used to run the SharePoint Windows Search Service.

SP_UserProfiles is the account used for the User Profile Synchronization between your Service Application and your Active Directory. This account does not need any local rights, however you need to give it Replicate Directory Changes rights on the Active Directory in order to allow the synchronization.

SharePoint 2013 Service Accounts – High Security Option

Summary

The High Security Option is the ones that provides the best security and of course the most Service Accounts. This only ads a small amount of extra security to the farm, however that extra security might be needed in some scenarios

For the SQL Server

Name Description Local Rights Domain Rights
SQL_Admin SQL Admin on the SQL Server. Used to Install the SQL Server. Local Administrator on the SQL Server Domain User
SQL_AGENT It is the service account for the following SQL Server services: SQL SERVER AGENT. None Domain User
SQL_ENGINE It is the service account for the following SQL Server services: Database Engine. None Domain User

Explanation

The difference between the Medium Security and High Security Option is that we now have a separate account for each of the two base services: SQL_Agent and Database Engine.  Nothing changes for the SQL_Admin

SQL_Admin: This will be your main SQL Administrator!. It needs Local Administrator rights in order to install the SQL server.
SQL_Agent: This account does not have any local rights, it is only used to run the SQL Agent Windows Service

SQL_Engine: This account does not have any local rights, it is only used to run the Database Engine windows service.

For the SharePoint Server

Name Description Local Rights Domain Rights
SP_Farm The server farm account is used to perform the following tasks:

-Configure and manage the server farm.
-Act as the application pool identity for the SharePoint Central Administration Web site.
-Run the Microsoft SharePoint Foundation Workflow Timer Service.
SecurityAdmin and DB_Creator rights on the SQL Instance Domain User
SP_Admin The server farm account is used to perform the following tasks:

-Setup
-SharePoint Products Configuration Wizard
Local Administrator on all the SharePoint Servers. SecurityAdmin and DB_Creator rights on the SQL Instance Domain User
SP_Pool The Pool account is used to run the Web Application Pools None Domain User
SP_Services The Services Account is used to run the Service Application Pool None Domain User
SP_Crawl The Default Content Access Account for the Search Service Application None Domain User
SP_Search Service Account to run the SharePoint Search “Windows Service” None Domain User
Sp_MySitePool Used for the My Sites Web Application None Domain User
SP_UserProfiles The User Profile Synchronization Account None Replicate Directory Changes permission on the domain. Guide: http://bit.ly/TSE7xs

Explanation

The only difference between the Medium security and the High Security option is that we now have a separate account for the Web Application Pool hosting the ‘My Sites’  since it has a different security policy than the other Web Applications .  I will only give the details for the new account in the breakdown:

SP_MySitePool  is a domain account used for the My Sites Web Application Pool Identity. It’s very similar to the SP_Pool, however it is only used for the My Sites Web Application.

Sources

http://technet.microsoft.com/en-us/library/cc678863.aspx

Edit (19/08/2013):

The SP_Farm account needs to be in the Local Administrators during, and only during the User Profile Provisioning!

Also, you can create those Service Accounts automatically with PowerShell using the SharePoint 2013 Service Account Creator project on CodePlex: https://sp2013serviceaccount.codeplex.com/

Download

You can download all the information here in PDF format on my SkyDrive here: http://1drv.ms/1p6tLcv 

I think that this post gives all the information necessary for SharePoint 2013 Service Accounts for the years to come, and don’t forget that this post only covers the basic Service Accounts needed for SharePoint 2013 and that other Service Accounts will be needed for some Service Application (ex: Excel Unattended Service, Visio, etc )

If you have any questions or comments please do not hesitate to post a comment, because your opinions will only make this post better!

Leave a comment and don’t forget to like the Absolute SharePoint Blog Page   on Facebook and to follow me on Twitter here  for the latest news and technical articles on SharePoint.  I am also a Pluralsight author, and you can view all the courses I created on my author page.
4.94/5 (33)

Please rate this