1 / 21

Adding PowerShell To Your SharePoint Admin Tool Belt

Adding PowerShell To Your SharePoint Admin Tool Belt. Agenda. What is Windows PowerShell Windows PowerShell basics Windows PowerShell scripts for administrators Free stuff. Who is this Todd guy?. WSS MVP since 2006 Speaker, writer, consultant, closet developer

thora
Télécharger la présentation

Adding PowerShell To Your SharePoint Admin Tool Belt

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adding PowerShell To Your SharePoint Admin Tool Belt

  2. Agenda • What is Windows PowerShell • Windows PowerShell basics • Windows PowerShell scripts for administrators • Free stuff

  3. Who is this Todd guy? • WSS MVP since 2006 • Speaker, writer, consultant, closet developer • Personal Blogwww.toddklindt.com/blog • Company web sitewww.sharepoint911.com • E-mailtodd@sharepoint911.com • Twitter me! @toddklindt • http://www.toddklindt.com/Metavis

  4. Windows PowerShell Basics • cmdlets = verbs (actions) & nouns (objects) • Combine the two to build specific commands • Examples • Get-SPSite • Get = Verb • SPSite = Noun

  5. Getting the list of SharePoint cmdlets • Get a list of all commands: • Get-Command –noun sp* • Get help for a specific command: • Get-Help <cmdlet>

  6. Getting the list of SharePoint cmdlets • For more detailed help add the following parameters: • Get-Help <cmdlet> -full • Get-Help <cmdlet> -detailed

  7. DEMO • PowerShell Basics

  8. Scripting Syntax • Sample Script: • $password = Read-Host "What is the password for all accounts?" -assecurestring ; Get-Content usernames.txt | ForEach-Object {New-SPManagedAccount -password $password -username litwareinc\$_; Set-SPManagedAccount -identity $_ -autogenerate -confirm:$False}

  9. General PowerShell tips • It’s just a shell, spruce it up some • Color • Size • Run as Admin • Enable quick edit • Use the included ISE • Use a third party solution

  10. Remoting • Must be enabled on each server • Nothing much to do on the client • Two ways in • Enter-PSSession • Invoke-Command • Use Enable-PSRemoting to enable • Get-Help about_remoting • Watch out for security settings • Increase MaxMemoryPerShellMB

  11. Avoiding the Farm ConfigWizard • The Farm Config Wizard does some very bad things • Wise SharePoint admins avoid it • Use PowerShell to replicate its functionality • Steps • Managed accounts • Web applications • MySite host • Service application pool • State Service • Usage Service • The rest 

  12. Everyday tasks • Add-SPShellAdmin • Move-SPSite • Enable Developer Dashboard • Visual Upgrade • Troubleshooting • Master pages • Get database sizes

  13. Add-SPShellAdmin • Necessary for unprivileged accounts, since you’re not logging in as the Farm account, right? • Must specify databases to give access to • Gives permissions to an account • WSS_Admin_WPG on SharePoint servers • SharePoint_Shell_Access role on database • To run it account must have: • Security_Admin role SQL instance • db_owner role on database • Local admin on SharePoint server

  14. Move-SPSite • Used to move Site Collections between content databases • Everything ‘mergecontentdbs’ can do, this can do better • Mostly done on the SQL side • Databases must be attached to the same web application, and on the same SQL instance • Works great to get rid of Content databases with GUIDs

  15. Developer Dashboard • Can be enabled with STSADM, but that’s just embarrassing • More flexibility with PowerShell $dash = [Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings; $dash.DisplayLevel = 'OnDemand'; $dash.TraceEnabled = $true; $dash.Update()

  16. Visual Upgrade • Can be used to rapidly check or change status $db = Get-SPContentDatabase WSS_Content_SharePoint_2007 $db.Sites | Get-SPWeb -limit all | ForEach-Object {$_.UIversion = 4; $_.UIVersionConfigurationEnabled = $false; $_.update()} • Or $db = Get-SPContentDatabase WSS_Content_SharePoint_2007 $db.Sites | foreach-object {$_.VisualUpgradeWebs}

  17. Troubleshooting • Use New-SPLogFile immediately before and right after recreating a problem • Use Merge-SPLogFiles to collect trace logs from all servers in your farm • Use Get-SPLogEvent to get events • Can filter by a number of properties, like Correlation ID • Can point at alternate directory Get-SPLogEvent -StartTime (Get-Date).addminutes(-10) –Directory e:\logs | Where-Object {$_.correlation -eq "dc07834b-9982-4eaf-aacf-d62a6b398f87"}

  18. Master Pages • Can be used to set the master page $web = Get-SPWeb http://sharepoint $web.CustomMasterUrl = "/_catalogs/masterpage/nightandday.master" $web.MasterUrl = "/_catalogs/masterpage/nightandday.master" $web.Update()

  19. Database Information • Use Get-SPDatabase to get list of databases and their properties Get-SPDatabase | Sort-Object disksizerequired -desc | Format-Table Name, @{Label ="Size in MB"; Expression = {$_.disksizerequired/1MB}} Get-SPDatabase | ForEach-Object {$db=0} {$db +=$_.disksizerequired; $_.name + " - " + $_.disksizerequired/1MB} {Write-Host "`nTotal Storage (in MB) =" ("{0:n0}" -f ($db/1MB))}

  20. A short list of people that are smarter than me • Zach Rosenfield’s blog • http://sharepoint.microsoft.com/Blogs/zach • SPModule • http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=c57556ff-8df0-44fd-aba6-3df01b9f80ce • Gary Lapointe’s blog • http://blog.falchionconsulting.com • Document your farm with PowerShell • http://technet.microsoft.com/en-us/library/ff645391.aspx • PS Scripts • http://get-spscripts.com/

  21. Things I referenced • Determine database sizes in PowerShell • http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=193 • Using PowerShell to control Visual Upgrade • http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=173 • Remoting requirements for SharePoint 2010 • http://sharepoint.microsoft.com/blogs/zach/Lists/Posts/Post.aspx?ID=45 • Developer Dashboard • http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=189 • Master Pages • http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=226 • Good farm configuration script from another Todd • http://todd-carter.com/post/2010/04/26/The-Wizard-Likes-His-GUIDs.aspx • Use Move-SPSite • http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=233

More Related