Video Content
Translate
Saturday, January 25, 2014
Move logging of the operating system drive and right size SharePoint 2013 intranet portal
Here are your
steps and you have to do them on each server in the farm:
- Make sure the server is resourced at 32 GB and at least 2 quad core processors and 100 GB for the drive storing the logs (e.g. not the C:\) and 300 GB for the SharePoint drive and 500 GB if Drive is housing the search index. (e.g. 4vCPU assuming the server has quad core processors, the C:\ sharePoint drive stores index, iis etc) Microsoft recommends turning on Publishing infrastructure and resourcing your servers at 32GB each, see this post: http://technet.microsoft.com/en-us/library/ff758652.aspx,
- Turn on publishing infrastructure
Go to your run
bar on the server and run msinfo32, take note of the “Installed Physical Memory”
and the “Page file space”. The page file
space should be at lease 1.5x the installed physical memory. So if you have 32 Gb installed memory
(recommended for publishing infra…) then you need page file to be set at 49152
MB (32GB x 1.5 x 1024 MB/GB)
Use sysdm.cpl to change the size of your paging file
1. click advanced tab > Performance Settings... > advanced tab > Change...> Select a non system drive and increase the custom size accordingly
Microsoft makes a caveat saying “Therefore, supplement this guidance with
additional testing on your own hardware in your own environment. If your
planned design and workload resembles the environment described in this
article, you can use this article to draw conclusions about how to scale your
environment” I say that because I've seen only 16 GB and only 4 vCPU
allocated to each web front end, run a minimal load (under 1000 users) without issues.
Here is a blog
post on how to turn on Publishing: http://anothersharepointblog.blogspot.com/2013/09/speed-up-that-slow-team-site-make-it.html
Making the drive that runs your Operating system have less writing will also improve your performance, a little because the servers will be writing logging to a separate set of spindles than the OS.
One way to do this is to move log files
to a different drive, they are in your 15 hive :
This post explains the process for SharePoint 2010 http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=304
just adjust for the 15 hive or move to a
completely different path. It is possible to
move them to E:\SharePointLogs, so where you see thispicture that says “Notice not a C” , the settings are e:\sharepointlogs vs E:\Program files\common files\microsoft shared\web server extensions\15\logs
Then the
powershell scripts that I ran was easier - -
Set-SPDiagnosticConfig
–LogLocation “E:\SharePointLogs”
And
Set-SPUsageService
–UsageLogLocation “E:\SharePointLogs”
Note: Make sure the folder exists on every front
end server in your farm before doing this
If you go the
route suggested by Todd Klindt, or if you use a different path for your logs, make sure the entire path is there first on all of your servers before you modify the settings via the gui, or via powerhsell
Here’s one way
to make the path if you don’t want to do it manually:
Open powershell
and type
New-item –Path “E:\Program
files\common files\microsoft shared\web server extensions\15\logs” –itemtype directory
Saturday, January 18, 2014
Avoiding the Confirm prompt in scripts
There are two ways you can suppress confirmation from a script or console:
1. Set the automatic variable to 'None' or 0 in your
$ConfirmPreference = 'None'
cd Variable:
then dir to see all the variables currently defined in your shell, the text above will change the behavior though, and then at the end of your script you could change it back to 'High'
2. Pass $false to the Cmdlet's -Confirm switch
... -confirm:$false
Windows PowerShell blog on this topic: http://blogs.msdn.com/b/powershell/archive/2006/12/15/confirmpreference.aspx
Windows PowerShell blog home: http://blogs.msdn.com/b/powershell/
1. Set the automatic variable to 'None' or 0 in your
$ConfirmPreference = 'None'
cd Variable:
then dir to see all the variables currently defined in your shell, the text above will change the behavior though, and then at the end of your script you could change it back to 'High'
2. Pass $false to the Cmdlet's -Confirm switch
... -confirm:$false
Windows PowerShell blog on this topic: http://blogs.msdn.com/b/powershell/archive/2006/12/15/confirmpreference.aspx
Windows PowerShell blog home: http://blogs.msdn.com/b/powershell/
Saturday, January 11, 2014
Customizing your PowerShell window colors
The information about the settings for your PowerShell's shell colors are stored in the object model at:
System.Management.Automation.Internal.Host.InternalHost and at
System.Management.Automation.Internal.Host.InternalHostRawUserInterface
under the PrivateData and RawUI Properties
you can see the various settings by typing
$host.PrivateData and pressing enter
PS C:\Users\Stacy> $host.PrivateData
ErrorForegroundColor : Red
ErrorBackgroundColor : Black
WarningForegroundColor : Yellow
WarningBackgroundColor : Black
DebugForegroundColor : Yellow
DebugBackgroundColor : Black
VerboseForegroundColor : Yellow
VerboseBackgroundColor : Black
ProgressForegroundColor : Yellow
ProgressBackgroundColor : DarkCyan
Or by typing $host.UI.RawUI
ForegroundColor: DarkYellow
BackgroundColor: Black
CursorPosition: 0,70
WindowPosition : 0,21
CursorSize: 25
BufferSize: 120,3000
WindowSize: 120,50
MaxWindowSize: 120,84
MaxPhysicalWindowSize: 274,84
KeyAvailable: False
WindowTitle : Windows PowerShell
Now if you don't care for the red error text and would rather see it in green, type this
(get-host).PrivateData.ErrorForegroundColor = 'Green'
You also could have used Get-Host alias $host, like this:
$host.PrivateData.ErrorForegroundColor = 'Green'
Either way, powershell will just prompt back to normal, it will seem like nothing happened. You can verify that it worked by typing this
$host.PrivateData.ErrorForegroundColor = Green
without the single quotes and including Green.
It will result in an error, the error text will be Green with a black Error background color.
If you want to see information about the User Interface
$host.UI.RawUI | gm
If you wanted to change the background color of your current shell to black:
$host.ui.rawUi.backgroundcolor = 'Black'
press enter
cls
press enter
If you want your shell to always open up with a black background, you could create a folder in your my documents folder and name this new folder, WindowsPowerShell. Then create a .ps1 file and include these two lines of code:
$host.ui.rawUi.backgroundcolor = 'Black'
cls
This channel, by Don Jones, on YouTube has really, quick and easy PowerShell tutorials on the above information and more: https://www.youtube.com/playlist?list=PL6D474E721138865A
System.Management.Automation.Internal.Host.InternalHost and at
System.Management.Automation.Internal.Host.InternalHostRawUserInterface
under the PrivateData and RawUI Properties
you can see the various settings by typing
$host.PrivateData and pressing enter
PS C:\Users\Stacy> $host.PrivateData
ErrorForegroundColor : Red
ErrorBackgroundColor : Black
WarningForegroundColor : Yellow
WarningBackgroundColor : Black
DebugForegroundColor : Yellow
DebugBackgroundColor : Black
VerboseForegroundColor : Yellow
VerboseBackgroundColor : Black
ProgressForegroundColor : Yellow
ProgressBackgroundColor : DarkCyan
Or by typing $host.UI.RawUI
ForegroundColor: DarkYellow
BackgroundColor: Black
CursorPosition: 0,70
WindowPosition : 0,21
CursorSize: 25
BufferSize: 120,3000
WindowSize: 120,50
MaxWindowSize: 120,84
MaxPhysicalWindowSize: 274,84
KeyAvailable: False
WindowTitle : Windows PowerShell
Now if you don't care for the red error text and would rather see it in green, type this
(get-host).PrivateData.ErrorForegroundColor = 'Green'
You also could have used Get-Host alias $host, like this:
$host.PrivateData.ErrorForegroundColor = 'Green'
Either way, powershell will just prompt back to normal, it will seem like nothing happened. You can verify that it worked by typing this
$host.PrivateData.ErrorForegroundColor = Green
without the single quotes and including Green.
It will result in an error, the error text will be Green with a black Error background color.
If you want to see information about the User Interface
$host.UI.RawUI | gm
If you wanted to change the background color of your current shell to black:
$host.ui.rawUi.backgroundcolor = 'Black'
press enter
cls
press enter
If you want your shell to always open up with a black background, you could create a folder in your my documents folder and name this new folder, WindowsPowerShell. Then create a .ps1 file and include these two lines of code:
$host.ui.rawUi.backgroundcolor = 'Black'
cls
This channel, by Don Jones, on YouTube has really, quick and easy PowerShell tutorials on the above information and more: https://www.youtube.com/playlist?list=PL6D474E721138865A
Sunday, January 5, 2014
Backing up a SharePoint 2010 farm
There are a lot of good scripts out there to use for backing up your SharePoint. This one is one of my favorites:
http://spfarmbackup.codeplex.com/
Just download it, unzip it, create a folder to store your backups, share that folder complete the Params.xml and you're about ready to go!
Read this detailed instruction guide written by the scripts author for step-by-step instructions: http://www.darrenmarsden.com/file.axd?file=2013%2f1%2fPreparing+for+%26+Configuring+the+SharePoint+Farm+Backup+Script.pdf
Here is another, and probably the best script for backing up your SharePoint Farm. It is written by John Ferringer, a SharePoint Guru - http://gallery.technet.microsoft.com/scriptcenter/9b99c435-8831-4c9e-a70b-1f13158ef22a
If the Ferringer solution or the codeplex solution above seems a bit to daunting, you can copy and paste the powerhsell from this blog: http://bradcote.wordpress.com/2012/05/02/powershell-script-to-backup-site-collections/ into a .ps1 file and then set it up to run as a scheduled task using credentials that have Shell admin access and full control over the shared network location where the backups will be stored.
You'll need to share a folder for the script to write into. Here is the powershell script from bradcote with a few additional notes
# Backup all site collections in the farm, placing them in
# a directory on a shared location
# Note - Does not backup the /train site collection
# adds the SharePoint cmdlets to your powershell and effectively turns it into the SharePoint
#Management Shell
Add-PsSnapin Microsoft.SharePoint.PowerShell
# Take care of the disposable objects to prevent memory leak.
Start-SPAssignment -Global
# This is the backup path - must be shared with account that is executing the script and the
# farm account
$backupLocation="\\\SharePointBackups"
# Remove all that backup folders created > 7 days ago
get-childitem $backupLocation |
where {$_.Lastwritetime -lt (date).adddays(-7)} |
remove-item -recurse -Confirm:$false
# Get current date for use in log file and format it to avoid
# invalid characters such as "/" and ":"
$today=Get-Date -format "MM-dd-yyyy HH.mm.ss"
# Create a folder in the backup location with todays date (sortable)
$todayFolder = $backupLocation + '\' + $((get-date).toString('MM-dd-yyyy'))
$logFile="$todayFolder\BackupLog.log"
md $todayFolder
# Does not backup the /train site collection
# or the temporary web ap site collection on port 15702
# Disregard this, or use it, depending on whether you have a /train site collection, etc.
foreach ($site in get-spsite -limit all |
where-object -FilterScript {$_.url -notlike "*/train*"} |
where-object -FilterScript {$_.url -notlike "*15702"}) {
write-Host Start backing up $site to $todayFolder
try {
# Create a new backup file and name it based on current date.
# If you want to create only 1 backup file and overwrite it
# each time the backup is run, you can replace "$today.bak"
# with your desired file name.
$pathName = ($todayFolder + '\' + $($site.ID) + '.bak')
write-Host 'Backing up ' $site ' GUID = ' $($site.ID)
# This farm does not have Enterprise SQL Server, so snapshots
# cannot be used. This requires that the sites belocked for
# update during the backup, so this should be run after hours
Backup-SPSite -Identity $site -Path $pathName -EV Err
-EA "SilentlyContinue"
write-Host Backup succeeded.
# Write success message to the log file
write "$today $site GUID =
$($site.ID) successfully backed up.">>logFile
} catch {
write-Host Backup failed. See $logFile for more information.
# Write error message to the log file
# change the logFile to some other name if you want, e.g. BackupHistory.txt
$e = $Err[0].ToString()
write "$today $site Error: $e">>logFile
}
}
Stop-SPAssignment -Global
Remove-PsSnapin Microsoft.sharepoint.powershell
write-Host "Finished script."
This blog has another script that you can use, also an easier to use version:
http://www.mysharepointadventures.com/2012/05/powershell-script-to-backup-farm-configuration-and-service-applications/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Make sure to update these variables:
#Variables
$logfile = "SPFarm-Backup-" + $(Get-Date -Format dd-MM-yy) + ".log"
$ConfigDB = "SP_Config"
$DBServer = "server"
$BackupConfigFolder = "\\server\SharePoint\Backup\Config"
$BackupSAFolder = "\\server\SharePoint\Backup\ServiceApp"
$AdminEmail = <a href="mailto:admin@sharepoint.com">admin@sharepoint.com</a>
$MailServer = "mail.sharepoint.com"
$FromAddress = <a href="mailto:sharepoint.notifications@sharepoint.com">sharepoint.notifications
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Microsoft TechNet - http://technet.microsoft.com/en-us/library/ee428316.aspx - Backing up a Farm in SharePoint 2013
Petri blog - backup and restore advice - Good Read http://www.petri.co.il/how-to-backup-restore-sharepoint-2013.htm
John Ferringer on backups - http://mycentraladmin.wordpress.com/2011/07/11/use-powershell-to-back-up-your-sharepoint-farm/
Microsoft's scripting guy defers to John Ferringer - http://blogs.technet.com/b/heyscriptingguy/archive/2011/06/22/use-powershell-to-back-up-your-sharepoint-farm.aspx - same here
Cheers,
Stacy
http://spfarmbackup.codeplex.com/
Just download it, unzip it, create a folder to store your backups, share that folder complete the Params.xml and you're about ready to go!
Read this detailed instruction guide written by the scripts author for step-by-step instructions: http://www.darrenmarsden.com/file.axd?file=2013%2f1%2fPreparing+for+%26+Configuring+the+SharePoint+Farm+Backup+Script.pdf
Here is another, and probably the best script for backing up your SharePoint Farm. It is written by John Ferringer, a SharePoint Guru - http://gallery.technet.microsoft.com/scriptcenter/9b99c435-8831-4c9e-a70b-1f13158ef22a
If the Ferringer solution or the codeplex solution above seems a bit to daunting, you can copy and paste the powerhsell from this blog: http://bradcote.wordpress.com/2012/05/02/powershell-script-to-backup-site-collections/ into a .ps1 file and then set it up to run as a scheduled task using credentials that have Shell admin access and full control over the shared network location where the backups will be stored.
You'll need to share a folder for the script to write into. Here is the powershell script from bradcote with a few additional notes
# Backup all site collections in the farm, placing them in
# a directory on a shared location
# Note - Does not backup the /train site collection
# adds the SharePoint cmdlets to your powershell and effectively turns it into the SharePoint
#Management Shell
Add-PsSnapin Microsoft.SharePoint.PowerShell
# Take care of the disposable objects to prevent memory leak.
Start-SPAssignment -Global
# This is the backup path - must be shared with account that is executing the script and the
# farm account
$backupLocation="\\\SharePointBackups"
# Remove all that backup folders created > 7 days ago
get-childitem $backupLocation |
where {$_.Lastwritetime -lt (date).adddays(-7)} |
remove-item -recurse -Confirm:$false
# Get current date for use in log file and format it to avoid
# invalid characters such as "/" and ":"
$today=Get-Date -format "MM-dd-yyyy HH.mm.ss"
# Create a folder in the backup location with todays date (sortable)
$todayFolder = $backupLocation + '\' + $((get-date).toString('MM-dd-yyyy'))
$logFile="$todayFolder\BackupLog.log"
md $todayFolder
# Does not backup the /train site collection
# or the temporary web ap site collection on port 15702
# Disregard this, or use it, depending on whether you have a /train site collection, etc.
foreach ($site in get-spsite -limit all |
where-object -FilterScript {$_.url -notlike "*/train*"} |
where-object -FilterScript {$_.url -notlike "*15702"}) {
write-Host Start backing up $site to $todayFolder
try {
# Create a new backup file and name it based on current date.
# If you want to create only 1 backup file and overwrite it
# each time the backup is run, you can replace "$today.bak"
# with your desired file name.
$pathName = ($todayFolder + '\' + $($site.ID) + '.bak')
write-Host 'Backing up ' $site ' GUID = ' $($site.ID)
# This farm does not have Enterprise SQL Server, so snapshots
# cannot be used. This requires that the sites belocked for
# update during the backup, so this should be run after hours
Backup-SPSite -Identity $site -Path $pathName -EV Err
-EA "SilentlyContinue"
write-Host Backup succeeded.
# Write success message to the log file
write "$today $site GUID =
$($site.ID) successfully backed up.">>logFile
} catch {
write-Host Backup failed. See $logFile for more information.
# Write error message to the log file
# change the logFile to some other name if you want, e.g. BackupHistory.txt
$e = $Err[0].ToString()
write "$today $site Error: $e">>logFile
}
}
Stop-SPAssignment -Global
Remove-PsSnapin Microsoft.sharepoint.powershell
write-Host "Finished script."
This blog has another script that you can use, also an easier to use version:
http://www.mysharepointadventures.com/2012/05/powershell-script-to-backup-farm-configuration-and-service-applications/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Make sure to update these variables:
#Variables
$logfile = "SPFarm-Backup-" + $(Get-Date -Format dd-MM-yy) + ".log"
$ConfigDB = "SP_Config"
$DBServer = "server"
$BackupConfigFolder = "\\server\SharePoint\Backup\Config"
$BackupSAFolder = "\\server\SharePoint\Backup\ServiceApp"
$AdminEmail = <a href="mailto:admin@sharepoint.com">admin@sharepoint.com</a>
$MailServer = "mail.sharepoint.com"
$FromAddress = <a href="mailto:sharepoint.notifications@sharepoint.com">sharepoint.notifications
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Microsoft TechNet - http://technet.microsoft.com/en-us/library/ee428316.aspx - Backing up a Farm in SharePoint 2013
Petri blog - backup and restore advice - Good Read http://www.petri.co.il/how-to-backup-restore-sharepoint-2013.htm
John Ferringer on backups - http://mycentraladmin.wordpress.com/2011/07/11/use-powershell-to-back-up-your-sharepoint-farm/
Microsoft's scripting guy defers to John Ferringer - http://blogs.technet.com/b/heyscriptingguy/archive/2011/06/22/use-powershell-to-back-up-your-sharepoint-farm.aspx - same here
Cheers,
Stacy
Subscribe to:
Posts (Atom)
Popular Posts
-
When you're migrating sites using export-spweb and import -spweb , you might receive an error message on the import, when reviewing th...
-
Here are a couple ways to copy content around in SharePoint: Backup-SPSite and Restore-SPSite and Export-SPWeb and Import-SPW...
-
Log onto each additional server that you wish to join into the farm Open the ”SharePoint 2010 Management Shell” administratively (righ...
-
Let's say you go to provision a Project Web App via managed service applications, project server server application, and it fails. Ther...
-
Configuring User Profile Synchronization Service Applications for SharePoint 2010 or SharePoint 2013This post assumes you've already installed the SharePoint Binaries (Grey Wizard), and that you are not using the Farm Config Wizard (Wh...
-
If you ever run into a situation where your farm suddenly fails to create the web application on all front end web servers, in other words i...
-
Sorry to be blogurgitating this week. Here's a really good technet site with a load of virtual labs: SharePoint Server 2010 In...
-
When the need to list out the members of an active directory group arises, say management asks, who are the members of this group, and you d...
-
Once a web application has been extended into a zone, the option to choose that zone disappears from the drop down, off the extend web appli...
-
The steps below turn your team site into a team site that is capable of using publishing features and capabilities. But all they really do,...