SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Boulos Dib
September 21, 2011
   Independent Consultant – Napeague Inc.
   Software Development since 1983
   Few Facts (@boulosdib)
     First Personal Computer 1980 – TRS-80 III
     First Z80 based product (EPROM based Protocol Adpator – 1984)
     First Commercial PC-DOS product (Telex on PCs – 1985)
     Started 16-bit Windows Development using Win 3.1
     Developed on: 8080/Z80, 68xxx, PDP/RSX,VAX-VMS and x86/x64
      (C/C++/C#)
     Worked with PowerShell since Monad (2006)
     Worked with SharePoint since STS (2003)
     More facts
      ▪ Favorite sport – Windsurfing 
      ▪ Favorite hobby – Playing my sunburst Fender Stratocaster+ guitar.
      ▪ Favorite guitar players
         ▪ Wes Montgomery, Larry Carlton and Ritchie Blackmore (Deep Purple, Rainbow)
   Overview of PowerShell
   Introduction to PowerShell Scripting
    Language
   Tools
   Script Authoring
   SharePoint Management Console
   SharePoint CmdLets
   NYC Code Camp
     I will be presenting on LightSwitch and Silverlight
        at the NYC Code Camp 6 (Autumn 2011)
       Saturday October 1st
       Pace University
       Registration Still Open
       http://CodeCampNyc.org
   Interactive Command Shell
   Programmatic (Script) Execution
    Environment
   Dynamic Scripting Language
   Extensible (CmdLets, .Net etc…)
   Hosted (i.e. NuGet)
   Management tool for Servers
“A shell is the piece of software that lets you access the
functionality provided by the operating system. “
Bruce Payette - Co-Designer and Implementer of the
PowerShell language.
   Example
       Windows Explorer
       Command.com
       Cmd.exe
       Bash (Unix)
       PowerShell
   Interactive Environment with .Net
   Automation Tool
   Easy to use
   Available on all Windows SKUs starting with
    XP SP2 and Windows 2003
   Management tool for Servers

   Productivity Gains – One Liner
Source:Wikipedia
   Common Parameters
       -Verbose
       -Debug
       -WarningAction
       -WarningVariable
       -ErrorAction
       -ErrorVariable
       -OutVariable
       -OutBuffer

   Risk Mitigation Parameters (certainly critical in a production environment)
       What-If
       -Confirm

   Wildcard support.
       All names and parameter value can support wildcard.
   Pipeline
       Much more about this later.
   Command vs. Expression mode parsing
     Echo 1+1
     1+1
   Everything returns a value
     “String”
   Variable
     $ Prefix
     i.e. $var = “Hello Sharepoint”
   Type System
     All .Net types as well as Custom Types
   Help
   Get-Help (or -? Following any command)
   Get-Help about_<<anyname>>
   Get-Help –Examples
   Get-Help –Full
   High level task oriented abstraction
   Verb-XXNoun
     Verbs: Get, Set, New, Write, Read
     Nouns: Drive, Variable, Provider, Site, Collection
   Get-Verb
   Predefined Commands
   When Starting Remember these:
     Get-Help
     Get-Member
     Get-Command
   Get-Help
     As it says, it helps!!!
   Get-Command
     Get information about what can be invoked
   Get-Member
     Show what can be done with an object
   Get-Module
     Show packages of commands
   GetType
     Discover details about an object’s type information.
   Compare
   Foreach
   Group
   Measure
   Select
   Sort
   Tee
   Where
   PowerShell ISE
     Simple Editor and Debugger
   PowerGUI
     Administrative Console
     PowerGUI Editor
     Powerpacks – a number to choose from.
   Visual Studio
   Notepad
   Out-Host
   Out-Null
   Out-Printer
   Out-String
   Out-GridView
   The best part about PowerShell
     Output of one CmdLet is Input into next CmdLet
      in pipeline.
     Uses the Pipe operator |
     Output and Input are objects, not text like
      traditional shells.
     Example
      ▪ Get-Command | Get-Member
      ▪ Get-Process | Out-GridView
   Case-Insensitive
   Variables: begin with $ (i.e. $a = “test”)
   Script Blocks using {}
   Array $a = 1,2,3
     $a[1]
   Hashtable
     $h = @{a=1; b=2}
   Scope – Functions and Script Blocks
   Security Context aware
   Remoting - WSMan
   If then else
     If ($a –eq “test”) { “It’s a test”} else {“Not”}
   While loop and Do While loop
     $i = 1; While ($i –lt 10) {$i++}
     $i =5; do {$i} while (--$i)
   For loop
     for ($i=0; $i –lt 10; $i++) { “5 * $i is $(5 * $i)” }
   Foreach loop
     Foreach ($i in 1..10) {“`$i is $i”}
   Foreach CmdLet
     1..10 | ForEach-Object {“begin”} {$_ * 2} {“end”}
   Where Cmdlet
     1..10 | Where-Object {$_ -gt 4 -and $_ -lt 10}
   Arithmetic Operators
     +*-/%
   Assignment Operators
     =, +=, -=, *=, /=, %=
   Get-Location and SetLocation
   Copy-Item
   Remove-Item
   Move-Item
   Rename-Item
   Set-Item
   New-Item
   Get-Content
   Pretty much the same as CMD
     > replace file
     >> Append to file
     2> File is replaced with error messages
     2>> Error text is appended to file
     2>&1 Error messages are written to output pipe
   A module is a package that contains Windows
    PowerShell commands, such as cmdlets,
    providers, functions, variables, and aliases
   Need to create module folder
     new-item -type directory -path
     $homeDocumentsWindowsPowerShell
     Modules
   Copy the module to the Modules folder.
   Start using a module (import-module etc…)
   Standard Providers
     Windows PowerShell providers are Microsoft .NET Framework-based
        programs that make the data in a specialized data store available in
        Windows PowerShell so that you can view and manage it

   Get-PSProvider | Select -Property Name
       WSMan -
       Alias
       Environment
       FileSystem
       Function
       Registry
       Variable
       Certificate
   Get-PSDrive
   New-PSDrive
     New-PSDrive -Name Y -PSProvider
      FileSystem -Root c:temp
   Remove-PSDrive
     Remove-PSDrive
   Try a non-disk PSDrive like cert: Dir Cert:
 A Script file is a text file with .ps1 extension
  containing one or more PowerShell command
 A Script is a simple mechanism to re-use
  functionality.
 To run a script on a remote computer, use the
  Invoke-Command and provide remote computer
  name as a parameter.
 Scripts can accept parameters.
 To run a script in the current session, we Dot-
  Source the . .Script1.ps1
 We can Scope Local or Global.
   Single Line: #
   Multi Line:
     <#
     #>


   Comments can be used to automatically
    generate help
   A function is a script block containing list of
    statements
   function small_files ($size = 1kB) {
       Get-ChildItem c:Temp | where { $_.length -lt $size -and
    !$_.PSIsContainer}
   }
   small_files
   To control how a function uses the pipeline, you
    use Begin, Process and End.
   function pipelineFunc {
       process {"The value is: $_"}
    }
    1,2,3 | pipelineFunc
   Advanced functions allow you to write CmdLets
    using scripts instead of compiled code.
   try
   {
         $wc = new-object System.Net.WebClient
         $wc.DownloadFile("http://www.contoso.com/MyDoc.doc","c:MyDoc.doc")
   }
   catch [System.Net.WebException],[System.IO.IOException]
   {
       "unable to download MyDoc.doc from http://www.contoso.com."
   }
   catch
   {
       "An error occurred that could not be resolved."
   }
      Sharepoint Management Shell
      Need to execute Add-SPShellAdmin in order
       to acquire permissions to run PowerShell on
       Sharepoint

                                                             Member of Farm
                               Member of Administrators
Farm component                                               Administrators SharePoint   Full Control on backup folder
                               group on the local computer
                                                             group
Farm                           Yes                           No                          Yes
Service application            Yes                           No                          Yes
Content database               Yes                           No                          Yes
Site collection                No                            Yes                         Yes
Site, list, document library   Yes                           No                          Yes

Source: MSDN
   Get-Command -Noun SP*
   (Get-Command –Name *-SP* -
    CommandType cmdLet).Count
    $Host.Runspace.ThreadOptions =
    "ReuseThread"

   Get-SPAssignment –Global
     $spWeb = Get-SPWeb -Identity $url
     $spWeb.TreeViewEnabled = $True
     $spWeb.Update()
   Stop-SPAssignment –Global
   Windows Powershell Blog
     http://blogs.msdn.com/b/powershell/
   Doug Finke – MVP (Also ShowUI)
     http://dougfinke.com/blog/
   PowerShell Magazine
     http://www.powershellmagazine.com/
   Jim Christopher MVP (Check out StudioShell)
     http://www.beefycode.com/
   Tome Tanasovski MVP/Author – NYC PowerShell
    User Group
     http://powertoe.wordpress.com/
   Productivity
     PowerGUI
      http://PowerGUI.org
     PowerTab
      http://powertab.codeplex.com/
     Community Extensions
      http://pscx.codeplex.com
     Quest ActiveRoles Management Shell
      http://www.quest.com/powershell/activeroles-server.aspx

   UI
     ShowUI (WPF) – http://showui.codeplex.com
Tool                             Url
PowerGUI                         http://PowerGUI.org/
PowerTab                         http://powertab.codeplex.com/
Community Extensions             http://pscx.codeplex.com/
Quest ActiveRoles                http://www.quest.com/powershell/activeroles-
                                 server.aspx/
ShowUI                           http://showui.codeplex.com/
Windows Automation Snaping for   http://wasp.codeplex.com/
Powershell
   NuGet
     http://nuget.org/
     http://nuget.codeplex.com/


   StudioShell
     http://studioshell.codeplex.com/
   PowerShell in Action                 Windows PowerShell 2.0 Bible
   Bruce Payette                        By Thomas Lee, Karl Mitschke, Mark
   “The book from the authority on       E. Schill, and Tome Tanasovski
    PowerShell”                          http://powertoe.wordpress.com/
   Automating Microsoft SharePoint          PowerShell for Microsoft Sharepoint
    2010 Administration with Windows          2010 Administrators.
    PowerShell 2.0
   Gary Lapointe & Shannon Bray           Niklas Goude & Mattias Karlsson
   http://blog.falchionconsulting.com/    http://www.powershell.nu/
   Next session will be about PowerShell Scripts
    in the SharePoint Management Shell

   Contact:
     http://blog.boulosdib.com
     @boulosdib

Mais conteúdo relacionado

Mais procurados

ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
habib_786
 
Michael Bayer Introduction to SQLAlchemy @ Postgres Open
Michael Bayer Introduction to SQLAlchemy @ Postgres OpenMichael Bayer Introduction to SQLAlchemy @ Postgres Open
Michael Bayer Introduction to SQLAlchemy @ Postgres Open
PostgresOpen
 
Object-oriented Programming-with C#
Object-oriented Programming-with C#Object-oriented Programming-with C#
Object-oriented Programming-with C#
Doncho Minkov
 
Authentication
AuthenticationAuthentication
Authentication
soon
 
Powershell Training
Powershell TrainingPowershell Training
Powershell Training
Fahad Noaman
 

Mais procurados (20)

Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Microsoft Windows Server 2022 Overview
Microsoft Windows Server 2022 OverviewMicrosoft Windows Server 2022 Overview
Microsoft Windows Server 2022 Overview
 
Introduction to Visual Studio.NET
Introduction to Visual Studio.NETIntroduction to Visual Studio.NET
Introduction to Visual Studio.NET
 
Power shell training
Power shell trainingPower shell training
Power shell training
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Express js
Express jsExpress js
Express js
 
Michael Bayer Introduction to SQLAlchemy @ Postgres Open
Michael Bayer Introduction to SQLAlchemy @ Postgres OpenMichael Bayer Introduction to SQLAlchemy @ Postgres Open
Michael Bayer Introduction to SQLAlchemy @ Postgres Open
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Complete Guide for Linux shell programming
Complete Guide for Linux shell programmingComplete Guide for Linux shell programming
Complete Guide for Linux shell programming
 
Object-oriented Programming-with C#
Object-oriented Programming-with C#Object-oriented Programming-with C#
Object-oriented Programming-with C#
 
Php.ppt
Php.pptPhp.ppt
Php.ppt
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design Patterns
 
Authentication
AuthenticationAuthentication
Authentication
 
Getting Started with MySQL I
Getting Started with MySQL IGetting Started with MySQL I
Getting Started with MySQL I
 
Powershell Training
Powershell TrainingPowershell Training
Powershell Training
 
Php and MySQL
Php and MySQLPhp and MySQL
Php and MySQL
 
WCF
WCFWCF
WCF
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
 
Php mysql ppt
Php mysql pptPhp mysql ppt
Php mysql ppt
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 

Semelhante a Introduction to PowerShell

Brian Jackett: Managing SharePoint 2010 Farms with Powershell
Brian Jackett: Managing SharePoint 2010 Farms with PowershellBrian Jackett: Managing SharePoint 2010 Farms with Powershell
Brian Jackett: Managing SharePoint 2010 Farms with Powershell
SharePoint Saturday NY
 
Brian Jackett: Managing SharePoint 2010 Farms with Powershell
Brian Jackett: Managing SharePoint 2010 Farms with PowershellBrian Jackett: Managing SharePoint 2010 Farms with Powershell
Brian Jackett: Managing SharePoint 2010 Farms with Powershell
SharePoint Saturday NY
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
grim_radical
 
Powershell Tech Ed2009
Powershell Tech Ed2009Powershell Tech Ed2009
Powershell Tech Ed2009
rsnarayanan
 

Semelhante a Introduction to PowerShell (20)

PowerShell for SharePoint Developers
PowerShell for SharePoint DevelopersPowerShell for SharePoint Developers
PowerShell for SharePoint Developers
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
Get-Help: An intro to PowerShell and how to Use it for Evil
Get-Help: An intro to PowerShell and how to Use it for EvilGet-Help: An intro to PowerShell and how to Use it for Evil
Get-Help: An intro to PowerShell and how to Use it for Evil
 
Powershell Seminar @ ITWorx CuttingEdge Club
Powershell Seminar @ ITWorx CuttingEdge ClubPowershell Seminar @ ITWorx CuttingEdge Club
Powershell Seminar @ ITWorx CuttingEdge Club
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with Puppet
 
NIIT ISAS Q5 Report - Windows PowerShell
NIIT ISAS Q5 Report - Windows PowerShellNIIT ISAS Q5 Report - Windows PowerShell
NIIT ISAS Q5 Report - Windows PowerShell
 
Brian Jackett: Managing SharePoint 2010 Farms with Powershell
Brian Jackett: Managing SharePoint 2010 Farms with PowershellBrian Jackett: Managing SharePoint 2010 Farms with Powershell
Brian Jackett: Managing SharePoint 2010 Farms with Powershell
 
Brian Jackett: Managing SharePoint 2010 Farms with Powershell
Brian Jackett: Managing SharePoint 2010 Farms with PowershellBrian Jackett: Managing SharePoint 2010 Farms with Powershell
Brian Jackett: Managing SharePoint 2010 Farms with Powershell
 
RichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile DevicesRichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile Devices
 
Introduction to windows power shell in sharepoint 2010
Introduction to windows power shell in sharepoint 2010Introduction to windows power shell in sharepoint 2010
Introduction to windows power shell in sharepoint 2010
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidence
 
Ansible new paradigms for orchestration
Ansible new paradigms for orchestrationAnsible new paradigms for orchestration
Ansible new paradigms for orchestration
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
 
PowerShell 101
PowerShell 101PowerShell 101
PowerShell 101
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
 
NZ Code Camp 2011 PowerShell + SharePoint
NZ Code Camp 2011 PowerShell + SharePointNZ Code Camp 2011 PowerShell + SharePoint
NZ Code Camp 2011 PowerShell + SharePoint
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Powershell Tech Ed2009
Powershell Tech Ed2009Powershell Tech Ed2009
Powershell Tech Ed2009
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

Introduction to PowerShell

  • 2. Independent Consultant – Napeague Inc.  Software Development since 1983  Few Facts (@boulosdib)  First Personal Computer 1980 – TRS-80 III  First Z80 based product (EPROM based Protocol Adpator – 1984)  First Commercial PC-DOS product (Telex on PCs – 1985)  Started 16-bit Windows Development using Win 3.1  Developed on: 8080/Z80, 68xxx, PDP/RSX,VAX-VMS and x86/x64 (C/C++/C#)  Worked with PowerShell since Monad (2006)  Worked with SharePoint since STS (2003)  More facts ▪ Favorite sport – Windsurfing  ▪ Favorite hobby – Playing my sunburst Fender Stratocaster+ guitar. ▪ Favorite guitar players ▪ Wes Montgomery, Larry Carlton and Ritchie Blackmore (Deep Purple, Rainbow)
  • 3. Overview of PowerShell  Introduction to PowerShell Scripting Language  Tools  Script Authoring  SharePoint Management Console  SharePoint CmdLets
  • 4. NYC Code Camp  I will be presenting on LightSwitch and Silverlight at the NYC Code Camp 6 (Autumn 2011)  Saturday October 1st  Pace University  Registration Still Open  http://CodeCampNyc.org
  • 5. Interactive Command Shell  Programmatic (Script) Execution Environment  Dynamic Scripting Language  Extensible (CmdLets, .Net etc…)  Hosted (i.e. NuGet)  Management tool for Servers
  • 6. “A shell is the piece of software that lets you access the functionality provided by the operating system. “ Bruce Payette - Co-Designer and Implementer of the PowerShell language.  Example  Windows Explorer  Command.com  Cmd.exe  Bash (Unix)  PowerShell
  • 7. Interactive Environment with .Net  Automation Tool  Easy to use  Available on all Windows SKUs starting with XP SP2 and Windows 2003  Management tool for Servers  Productivity Gains – One Liner
  • 9. Common Parameters  -Verbose  -Debug  -WarningAction  -WarningVariable  -ErrorAction  -ErrorVariable  -OutVariable  -OutBuffer  Risk Mitigation Parameters (certainly critical in a production environment)  What-If  -Confirm  Wildcard support.  All names and parameter value can support wildcard.  Pipeline  Much more about this later.
  • 10. Command vs. Expression mode parsing  Echo 1+1  1+1  Everything returns a value  “String”  Variable  $ Prefix  i.e. $var = “Hello Sharepoint”  Type System  All .Net types as well as Custom Types
  • 11. Help  Get-Help (or -? Following any command)  Get-Help about_<<anyname>>  Get-Help –Examples  Get-Help –Full
  • 12. High level task oriented abstraction  Verb-XXNoun  Verbs: Get, Set, New, Write, Read  Nouns: Drive, Variable, Provider, Site, Collection  Get-Verb  Predefined Commands  When Starting Remember these:  Get-Help  Get-Member  Get-Command
  • 13. Get-Help  As it says, it helps!!!  Get-Command  Get information about what can be invoked  Get-Member  Show what can be done with an object  Get-Module  Show packages of commands  GetType  Discover details about an object’s type information.
  • 14. Compare  Foreach  Group  Measure  Select  Sort  Tee  Where
  • 15. PowerShell ISE  Simple Editor and Debugger  PowerGUI  Administrative Console  PowerGUI Editor  Powerpacks – a number to choose from.  Visual Studio  Notepad
  • 16. Out-Host  Out-Null  Out-Printer  Out-String  Out-GridView
  • 17. The best part about PowerShell  Output of one CmdLet is Input into next CmdLet in pipeline.  Uses the Pipe operator |  Output and Input are objects, not text like traditional shells.  Example ▪ Get-Command | Get-Member ▪ Get-Process | Out-GridView
  • 18. Case-Insensitive  Variables: begin with $ (i.e. $a = “test”)  Script Blocks using {}  Array $a = 1,2,3  $a[1]  Hashtable  $h = @{a=1; b=2}  Scope – Functions and Script Blocks  Security Context aware  Remoting - WSMan
  • 19. If then else  If ($a –eq “test”) { “It’s a test”} else {“Not”}  While loop and Do While loop  $i = 1; While ($i –lt 10) {$i++}  $i =5; do {$i} while (--$i)  For loop  for ($i=0; $i –lt 10; $i++) { “5 * $i is $(5 * $i)” }  Foreach loop  Foreach ($i in 1..10) {“`$i is $i”}
  • 20. Foreach CmdLet  1..10 | ForEach-Object {“begin”} {$_ * 2} {“end”}  Where Cmdlet  1..10 | Where-Object {$_ -gt 4 -and $_ -lt 10}
  • 21. Arithmetic Operators  +*-/%  Assignment Operators  =, +=, -=, *=, /=, %=
  • 22. Get-Location and SetLocation  Copy-Item  Remove-Item  Move-Item  Rename-Item  Set-Item  New-Item  Get-Content
  • 23. Pretty much the same as CMD  > replace file  >> Append to file  2> File is replaced with error messages  2>> Error text is appended to file  2>&1 Error messages are written to output pipe
  • 24. A module is a package that contains Windows PowerShell commands, such as cmdlets, providers, functions, variables, and aliases  Need to create module folder  new-item -type directory -path $homeDocumentsWindowsPowerShell Modules  Copy the module to the Modules folder.  Start using a module (import-module etc…)
  • 25. Standard Providers  Windows PowerShell providers are Microsoft .NET Framework-based programs that make the data in a specialized data store available in Windows PowerShell so that you can view and manage it  Get-PSProvider | Select -Property Name  WSMan -  Alias  Environment  FileSystem  Function  Registry  Variable  Certificate
  • 26. Get-PSDrive  New-PSDrive  New-PSDrive -Name Y -PSProvider FileSystem -Root c:temp  Remove-PSDrive  Remove-PSDrive  Try a non-disk PSDrive like cert: Dir Cert:
  • 27.  A Script file is a text file with .ps1 extension containing one or more PowerShell command  A Script is a simple mechanism to re-use functionality.  To run a script on a remote computer, use the Invoke-Command and provide remote computer name as a parameter.  Scripts can accept parameters.  To run a script in the current session, we Dot- Source the . .Script1.ps1  We can Scope Local or Global.
  • 28. Single Line: #  Multi Line:  <#  #>  Comments can be used to automatically generate help
  • 29. A function is a script block containing list of statements  function small_files ($size = 1kB) {  Get-ChildItem c:Temp | where { $_.length -lt $size -and !$_.PSIsContainer}  }  small_files  To control how a function uses the pipeline, you use Begin, Process and End.  function pipelineFunc {  process {"The value is: $_"} } 1,2,3 | pipelineFunc  Advanced functions allow you to write CmdLets using scripts instead of compiled code.
  • 30. try  {  $wc = new-object System.Net.WebClient  $wc.DownloadFile("http://www.contoso.com/MyDoc.doc","c:MyDoc.doc")  }  catch [System.Net.WebException],[System.IO.IOException]  {  "unable to download MyDoc.doc from http://www.contoso.com."  }  catch  {  "An error occurred that could not be resolved."  }
  • 31. Sharepoint Management Shell  Need to execute Add-SPShellAdmin in order to acquire permissions to run PowerShell on Sharepoint Member of Farm Member of Administrators Farm component Administrators SharePoint Full Control on backup folder group on the local computer group Farm Yes No Yes Service application Yes No Yes Content database Yes No Yes Site collection No Yes Yes Site, list, document library Yes No Yes Source: MSDN
  • 32. Get-Command -Noun SP*  (Get-Command –Name *-SP* - CommandType cmdLet).Count
  • 33. $Host.Runspace.ThreadOptions = "ReuseThread"  Get-SPAssignment –Global  $spWeb = Get-SPWeb -Identity $url  $spWeb.TreeViewEnabled = $True  $spWeb.Update()  Stop-SPAssignment –Global
  • 34. Windows Powershell Blog  http://blogs.msdn.com/b/powershell/  Doug Finke – MVP (Also ShowUI)  http://dougfinke.com/blog/  PowerShell Magazine  http://www.powershellmagazine.com/  Jim Christopher MVP (Check out StudioShell)  http://www.beefycode.com/  Tome Tanasovski MVP/Author – NYC PowerShell User Group  http://powertoe.wordpress.com/
  • 35. Productivity  PowerGUI http://PowerGUI.org  PowerTab http://powertab.codeplex.com/  Community Extensions http://pscx.codeplex.com  Quest ActiveRoles Management Shell http://www.quest.com/powershell/activeroles-server.aspx  UI  ShowUI (WPF) – http://showui.codeplex.com
  • 36. Tool Url PowerGUI http://PowerGUI.org/ PowerTab http://powertab.codeplex.com/ Community Extensions http://pscx.codeplex.com/ Quest ActiveRoles http://www.quest.com/powershell/activeroles- server.aspx/ ShowUI http://showui.codeplex.com/ Windows Automation Snaping for http://wasp.codeplex.com/ Powershell
  • 37. NuGet  http://nuget.org/  http://nuget.codeplex.com/  StudioShell  http://studioshell.codeplex.com/
  • 38. PowerShell in Action  Windows PowerShell 2.0 Bible  Bruce Payette  By Thomas Lee, Karl Mitschke, Mark  “The book from the authority on E. Schill, and Tome Tanasovski PowerShell”  http://powertoe.wordpress.com/
  • 39. Automating Microsoft SharePoint  PowerShell for Microsoft Sharepoint 2010 Administration with Windows 2010 Administrators. PowerShell 2.0  Gary Lapointe & Shannon Bray  Niklas Goude & Mattias Karlsson  http://blog.falchionconsulting.com/  http://www.powershell.nu/
  • 40. Next session will be about PowerShell Scripts in the SharePoint Management Shell  Contact:  http://blog.boulosdib.com  @boulosdib