Wednesday, April 13, 2016

SharePoint 2016 Installation Guide - Step by Step

SharePoint 2016 is in RTM finally with all new features. Lets walk-through SharePoint 2016 installation process step by step:

System Requirements: What's my Server Farm Configuration?
Here is my SharePoint 2016 farm's server configuration (Hardware/software).
  • Windows Server 2012 R2 Standard as Server Operating system and SQL Server 2014 Standard SP1 as my SQL Server instance. 
  • All my servers running with 24 GB of RAM (minimum requirement: 16 GB. For single server installation: 24 GB) and Quad core processors. (64 bit of course!) and 120 GB in system drive and 250 GB as secondary drive (Min: 80 GB for system drive and 100 GB for applications).
Service Accounts:
  • Crescent\SP16_Setup - Setup  account used for installation. You must manually assign Member of Local Administrator group on all SharePoint Servers and SQL server and SysAdmin role at SQL Server instance. (In fact, it just needs: DBcreator & SecurityAdmin server roles and DBO rights on each SharePoint Databases).
  • Crescent\SP16_Farm - Farm account / Database access account. Necessary rights will be automatically granted on the SQL Server instance when you run SharePoint products configuration wizard.
Whats new in SharePoint 2016 Installation?
Its pretty much same as SharePoint 2013 installation, except the "Server Role" selection page. MinRole is introduced newly in SharePoint 2016.

SharePoint 2016 Server installation steps at high level:
  1. Install SharePoint 2016 prerequisites
  2. Install SharePoint  Server 2016
  3. Run Products configuration wizard
    SharePoint 2016 Server Farm Topology:
    Here is my small server farm topology for SharePoint 2016 with three servers. All these servers joined to my domain: Crescent.com
    Where to start Installation? Start with your Application Server! Your Application server hosts SharePoint 2016 central administration site and other necessary service applications.

    Step 1: Install Prerequisites

    We need to install SharePoint 2016 prerequisites before installing SharePoint Server 2016. Login with Setup account and start your SharePoint Server 2016 installation by installing the prerequisites. Prerequisites installer will add all necessary server roles (Application Server Role, Web Server (IIS) Role) ,downloads and installs all necessary components for SharePoint 2016.
    • Mount the ISO on the drive, launch "default.hta" file (or prerequisiteinstaller.exe). You'll see the same old Splash screen! Click on "Install software prerequisites" link under "Install"
      sharepoint 2016 installation guide
    • Accept License agreement and click "Next" button
      sharepoint 2016 installation step by step
    • Wait for the installation to proceed
      sharepoint 2016 install instructions
    • Prerequisites installer takes some time and will prompt for restart. After restart, re-run the prerequisites again! Restart and resume back.
    • Wait for the installation completed message. Click on "Finish" button to complete prerequisites installation.
      sharepoint 2016 install standalone

    Step 2: SharePoint Server 2016 Installation

    • After completing prerequisites installation, run the splash.hta file again and click on "Install SharePoint Server". sharepoint 2016 installation steps
    • You'll be prompted to enter the product key. I've used the 180 day Trial key: NQGJR-63HC8-XCRQH-MYVCH-3J3QR
      how to install sharepoint 2016 step by step
    • Accept license agreement
      install sharepoint server 2016
    • Choose a file location: Choose a file location for SharePoint Server and Search server index. Make sure there is sufficient disk space on the selected drive. You can use your secondary drive to store search index files. Click on "Install Now" button to start the installation process.
    • Wait for installation to complete. The installation wizard takes few minutes to complete.
    • Once completed, You'll be taken to Run Configuration wizard page. Tick the "Run the SharePoint Products Configuration Wizard now" check box and click on Close.

    Step 3: Run SharePoint Products Configuration Wizard

    • You'll be presented with the "Welcome to SharePoint Products" wizard. Run SharePoint Products configuration wizard by clicking "Next" button.
    • Click Yes for products configuration wizard restart services confirmation
    • On Connect to a server farm, choose Create a new server farm. If you are already have an existing SharePoint farm created, you'll have to choose the option "connect to an existing server farm". We'll be selecting this when we run products configuration wizard on our WFE server.
    • Specify configuration database settings: Enter your Database server name and proposed SharePoint farm's configuration database names. Enter the Farm account which will be used for database access.
    • On Farm security settings page, enter the Passphrase. You'll need this when you need to join the new server to an existing SharePoint server farm.
    • Specify Server Role. There are six roles listed in this page. You can select whichever applicable to you. This is critical as in previous versions:  If you selected Single-Server Farm, then you can't scale out your SharePoint farm to Multi-Server environment! So if you plan to extend your farm to Multi-Server farm in future, make sure you have selected the Custom (MinRole) or Application server role. In my case, I've selected Application server role. Click on Next to proceed.
    • Enter the Port for SharePoint 2016 Central Administration site. Choose the authentication provider. Click Next to continue.
    • You'll see SharePoint products configuration wizard performing several tasks as in the below progress screen. Wait until all 10 installation tasks to complete.
    • Once completed, SharePoint products configuration wizard presents you the verify screen. You can click Back in case, you want to change any setting. Click Next to proceed.
    • Wait for the Configuration successful page. Click on "Finish" to complete SharePoint 2016 installation process.
    Once you click "Finish" button, you'll be taken to Initial Farm Configuration Wizard page in SharePoint 2016 Central Administration site.

    Repeat all these steps in your Web Front end Server. Choose "Front-End" Server role for Web Front end. Once done, you can proceed with creating web applications, Service applications and site collections.

    FAQ's and Known issues in SharePoint 2016 Installation:
    • Can I use a Single Server for SharePoint 2016 installation?
      Sure, You can use a single server. However, You need to have SQL Server 2014 installed on the server first! Unlike SharePoint 2013, SharePoint 2016 doesn't install SQL Server Express automatically as part of Single server mode.
    • Prerequisiteinstaller.exe: The system cannot find the drive specified
      This happens when you mount an ISO file and after server reboot, it doesn't get mounted automatically. Remedy is simple: Mount the ISO and run:Start "Launch SharePoint preparation tool" "E:\Prerequisiteinstaller.exe" /continue


    You might also like:
    SharePoint Usage Reports
    Usage reports, collaboration and audit for SharePoint.
    Document SharePoint Farm
    Automatically generate SharePoint documentation.
    *Sponsored


    Tuesday, March 15, 2016

    SharePoint 2016 RTM is Released!

    So the waiting period is over! SharePoint 2016 is in its RTM now!
    sharepoint 2016 RTM download

    Download SharePoint 2016 RTM Trial from here: https://www.microsoft.com/en-us/download/details.aspx?id=51493

    180 day Trial key: NQGJR-63HC8-XCRQH-MYVCH-3J3QR

    What's New: Fast Site Collection Creation, Durable Links, Hybrid Features, MinRoles, Large File support, etc.

    What's Lost: No more SharePoint Foundation, No Stand-alone Install Mode (with SQL Express), No FIM, etc.

    You might also like:
    SharePoint Usage Reports
    Usage reports, collaboration and audit for SharePoint.
    Document SharePoint Farm
    Automatically generate SharePoint documentation.
    *Sponsored


    Sunday, March 13, 2016

    The Database name located at the specified database server contains user-defined data.- Error in SharePoint Products Configuration Wizard

    Error:
    SharePoint Products Configuration Wizard:  
    The Database name located at the specified database server contains user-defined data. Databases must be empty before they can be used. Delete all of the tables, stored procedures, and other objects, or use a different database.
    The Database name located at the specified database server contains user-defined data

    Root cause:
    This is due to the fact, previous installation failed in between and left the SharePoint_Config database in SQL Server!

    Solution:
    Delete the SharePoint_Config database created by the previous installation!


    You might also like:
    SharePoint Usage Reports
    Usage reports, collaboration and audit for SharePoint.
    Document SharePoint Farm
    Automatically generate SharePoint documentation.
    *Sponsored


    Wednesday, March 9, 2016

    SharePoint Online: Export List Items to CSV using PowerShell

    Requirement: 
    Export SharePoint online list items to CSV file from client side.

    PowerShell script to Export SharePoint List Items to CSV from Client Side (CSOM):
    #Load SharePoint CSOM Assemblies
    Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
    Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
     
    ##Variables for Processing
    $SiteUrl = "https://crescent.sharepoint.com/sites/poc/"
    $ListName="Employee"
    $ExportFile ="c:\Scripts\ListRpt.csv"
    $UserName="Salaudeen@crescent.com"
    $Password ="Password goes here"
    
    #Setup Credentials to connect
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force))
    
    #Set up the context
    $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl) 
    $Context.Credentials = $credentials
     
    #Get the List
    $List = $Context.web.Lists.GetByTitle($ListName)
    
    #Get All List Items
    $Query = New-Object Microsoft.SharePoint.Client.CamlQuery
    $ListItems = $List.GetItems($Query)
    $context.Load($ListItems)
    $context.ExecuteQuery()
    
    #Array to Hold List Items 
    $ListItemCollection = @() 
    
    #Fetch each list item value to export to excel
     $ListItems |  foreach {
        $ExportItem = New-Object PSObject 
        $ExportItem | Add-Member -MemberType NoteProperty -name "Title" -value $_["Title"]
        $ExportItem | Add-Member -MemberType NoteProperty -Name "Department" -value $_["Department"]
      
        #Add the object with above properties to the Array
        $ListItemCollection += $ExportItem
     }
    #Export the result Array to CSV file
    $ListItemCollection | Export-CSV $ExportFile -NoTypeInformation 
    
    Write-host "List data Exported to CSV file successfully!"

    Related Posts:


    You might also like:
    SharePoint Usage Reports
    Usage reports, collaboration and audit for SharePoint.
    Document SharePoint Farm
    Automatically generate SharePoint documentation.
    *Sponsored


    Wednesday, March 2, 2016

    Copy Files Between Document Libraries in SharePoint using PowerShell

    Here is my PowerShell script to copy files between SharePoint document libraries:

    PowerShell Script to Copy a File from One Library to Another:
    Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
    
    #Variables for Processing
    $WebURL="https://portal.crescent.com/sites/Sales/"
    $SourceFile="https://portal.crescent.com/sites/Sales/TeamDocs/InvoiceTemp.xlsx"
    $TargetLibrary="Invoice Documents"
    
    #Get Objects
    $Web = Get-SPWeb $WebURL
    $SourceFile = $Web.GetFile($SourceFile)
    $TargetLibrary = $Web.GetFolder($TargetLibrary)
    
    #Copy the file into the Target library
    $File = $TargetLibrary.Files.Add($SourceFile.Name, $SourceFile.OpenBinary(), $true)
    
    #Copy Meta-Data
    $Item = $File.Item
    $item["Created"] = $SourceFile.TimeCreated.ToLocalTime()
    $item["Modified"] = $SourceFile.TimeLastModified.ToLocalTime()
    $item["Author"] = $SourceFile.Author
    $item["Editor"] = $SourceFile.ModifiedBy
    #Update
    $Item.UpdateOverwriteVersion()

    PowerShell Script to Copy All Files Between Document Libraries:
    Lets copy all files and folder from one library to another along with their meta-data (Excluding: the above!)
    sAdd-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
    
    #Custom Function to Copy Files from Source Folder to Target
    Function Copy-Files($SourceFolder, $TargetFolder)
    {
        write-host "Copying Files from:$($SourceFolder.URL) to $($TargetFolder.URL)"
        #Get Each File from the Source 
        $SourceFilesColl = $SourceFolder.Files
    
        #Iterate through each item from the source
        Foreach($SourceFile in $SourceFilesColl) 
        {
            #Copy File from the Source
            $NewFile = $TargetFolder.Files.Add($SourceFile.Name, $SourceFile.OpenBinary(),$True)
     
            #Copy Meta-Data from Source
            Foreach($Field in $SourceFile.Item.Fields)
            {
                If(!$Field.ReadOnlyField)
                {
                    if($NewFile.Item.Fields.ContainsField($Field.InternalName))
                    {
                        $NewFile.Item[$Field.InternalName] = $SourceFile.Item[$Field.InternalName]
                    }
                }
            }
            #Update
            $NewFile.Item.UpdateOverwriteVersion()
        
            Write-host "Copied File:"$SourceFile.Name
        }
        
        #Process SubFolders
        Foreach($SubFolder in $SourceFolder.SubFolders)
        {
            if($SubFolder.Name -ne "Forms")
            {
                #Check if Sub-Folder exists in the Target Library!
                $NewTargetFolder = $TargetFolder.ParentWeb.GetFolder($SubFolder.Name)
     
                if ($NewTargetFolder.Exists -eq $false)
                {
                    #Create a Folder
                    $NewTargetFolder = $TargetFolder.SubFolders.Add($SubFolder.Name)
                }
                #Call the function recursively
                Copy-Files $SubFolder $NewTargetFolder
            }
        }
    }
    
    #Variables for Processing
    $WebURL="http://portal.crescent.com/sites/sales/"
    $SourceLibrary ="Team Docs"
    $TargetLibrary = "Sales Documents"
    
    #Get Objects
    $Web = Get-SPWeb $WebURL
    $SourceFolder = $Web.GetFolder($SourceLibrary)
    $TargetFolder = $Web.GetFolder($TargetLibrary)
    
    #Call the Function to Copy All Files
    Copy-Files $SourceFolder $TargetFolder

    Copy Documents between Sites, Site Collections, Web Applications:
    How about copying between Sites? Well, just change the below lines in the script.
    #Variables for Processing
    $SourceWeb = "http://Your-Source-Web-URL"
    $TargetWeb = "http://Your-Target-Web-URL"
    
    $SourceLibrary ="Team Docs"
    $TargetLibrary = "Shared Documents"
    
    $SourceFolder = $Source.GetFolder($SourceLibrary)
    $TargetFolder = $TargetWeb.GetFolder($TargetLibrary)
    
    #Call the Function to Copy All Files
    Copy-Files $SourceFolder $TargetFolder


    You might also like:
    SharePoint Usage Reports
    Usage reports, collaboration and audit for SharePoint.
    Document SharePoint Farm
    Automatically generate SharePoint documentation.
    *Sponsored


    You might also like:

    Related Posts Plugin for WordPress, Blogger...