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

Apache Server Tutorial
Apache Server TutorialApache Server Tutorial
Apache Server TutorialJagat Kothari
 
Network Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with AnsibleNetwork Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with AnsibleAPNIC
 
Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Ahmed El-Arabawy
 
dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxdominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxUlrich Krause
 
Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansibleOmid Vahdaty
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationSuresh Kumar
 
An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShellDale Lane
 
Basic unix commands
Basic unix commandsBasic unix commands
Basic unix commandsswtjerin4u
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder
 
Basic commands of linux
Basic commands of linuxBasic commands of linux
Basic commands of linuxshravan saini
 
Some basic unix commands
Some basic unix commandsSome basic unix commands
Some basic unix commandsaaj_sarkar06
 
Complete Guide for Linux shell programming
Complete Guide for Linux shell programmingComplete Guide for Linux shell programming
Complete Guide for Linux shell programmingsudhir singh yadav
 
Shell Scripting in Linux
Shell Scripting in LinuxShell Scripting in Linux
Shell Scripting in LinuxAnu Chaudhry
 

Mais procurados (20)

Apache Server Tutorial
Apache Server TutorialApache Server Tutorial
Apache Server Tutorial
 
Network Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with AnsibleNetwork Automation (NetDevOps) with Ansible
Network Automation (NetDevOps) with Ansible
 
Linux basic commands
Linux basic commandsLinux basic commands
Linux basic commands
 
Ansible
AnsibleAnsible
Ansible
 
Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts)
 
Ansible
AnsibleAnsible
Ansible
 
Ex200
Ex200Ex200
Ex200
 
dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxdominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptx
 
Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansible
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShell
 
Basic unix commands
Basic unix commandsBasic unix commands
Basic unix commands
 
Oracle ASM Training
Oracle ASM TrainingOracle ASM Training
Oracle ASM Training
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools short
 
Basic commands of linux
Basic commands of linuxBasic commands of linux
Basic commands of linux
 
Some basic unix commands
Some basic unix commandsSome basic unix commands
Some basic unix commands
 
Complete Guide for Linux shell programming
Complete Guide for Linux shell programmingComplete Guide for Linux shell programming
Complete Guide for Linux shell programming
 
Automating with Ansible
Automating with AnsibleAutomating with Ansible
Automating with Ansible
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Shell Scripting in Linux
Shell Scripting in LinuxShell Scripting in Linux
Shell Scripting in Linux
 

Semelhante a Introduction to PowerShell

PowerShell for SharePoint Developers
PowerShell for SharePoint DevelopersPowerShell for SharePoint Developers
PowerShell for SharePoint DevelopersBoulos Dib
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetAchieve Internet
 
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 Eviljaredhaight
 
Power shell training
Power shell trainingPower shell training
Power shell trainingDavid Brabant
 
Powershell Seminar @ ITWorx CuttingEdge Club
Powershell Seminar @ ITWorx CuttingEdge ClubPowershell Seminar @ ITWorx CuttingEdge Club
Powershell Seminar @ ITWorx CuttingEdge ClubEssam Salah
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with PuppetAlessandro Franceschi
 
NIIT ISAS Q5 Report - Windows PowerShell
NIIT ISAS Q5 Report - Windows PowerShellNIIT ISAS Q5 Report - Windows PowerShell
NIIT ISAS Q5 Report - Windows PowerShellPhan Hien
 
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 PowershellSharePoint 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 PowershellSharePoint Saturday NY
 
RichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile DevicesRichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile DevicesPavol Pitoňák
 
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 2010Binh Nguyen
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidenceJohn Congdon
 
Ansible new paradigms for orchestration
Ansible new paradigms for orchestrationAnsible new paradigms for orchestration
Ansible new paradigms for orchestrationPaolo Tonin
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operationsgrim_radical
 
PowerShell 101
PowerShell 101PowerShell 101
PowerShell 101Thomas Lee
 
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 laterHaehnchen
 
NZ Code Camp 2011 PowerShell + SharePoint
NZ Code Camp 2011 PowerShell + SharePointNZ Code Camp 2011 PowerShell + SharePoint
NZ Code Camp 2011 PowerShell + SharePointNick Hadlee
 
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)Fabrice Bernhard
 
Powershell Tech Ed2009
Powershell Tech Ed2009Powershell Tech Ed2009
Powershell Tech Ed2009rsnarayanan
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to KubernetesPaul Czarkowski
 

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
 
Power shell training
Power shell trainingPower shell training
Power shell training
 
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
 

Último

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Último (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

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