SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction Robert Reiz
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to AnsibleKnoldus Inc.
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansiblesriram_rajan
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationSuresh Kumar
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationJohn Lynch
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with AnsibleRayed Alrashed
 
PowerShell Technical Overview
PowerShell Technical OverviewPowerShell Technical Overview
PowerShell Technical Overviewallandcp
 
Powershell Training
Powershell TrainingPowershell Training
Powershell TrainingFahad Noaman
 
An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShellDale Lane
 
Configuring global infrastructure in terraform
Configuring global infrastructure in terraformConfiguring global infrastructure in terraform
Configuring global infrastructure in terraformSANGGI CHOI
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansibleKhizer Naeem
 
Openstack zun,virtual kubelet
Openstack zun,virtual kubeletOpenstack zun,virtual kubelet
Openstack zun,virtual kubeletChanyeol yoon
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basicsManav Prasad
 
Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansibleGeorge Shuklin
 
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화OpenStack Korea Community
 

Was ist angesagt? (20)

Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
ansible why ?
ansible why ?ansible why ?
ansible why ?
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Ansible - Introduction
Ansible - IntroductionAnsible - Introduction
Ansible - Introduction
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansible
 
Ansible
AnsibleAnsible
Ansible
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with Ansible
 
PowerShell Technical Overview
PowerShell Technical OverviewPowerShell Technical Overview
PowerShell Technical Overview
 
Powershell Training
Powershell TrainingPowershell Training
Powershell Training
 
Ansible
AnsibleAnsible
Ansible
 
An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShell
 
Configuring global infrastructure in terraform
Configuring global infrastructure in terraformConfiguring global infrastructure in terraform
Configuring global infrastructure in terraform
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
 
Openstack zun,virtual kubelet
Openstack zun,virtual kubeletOpenstack zun,virtual kubelet
Openstack zun,virtual kubelet
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basics
 
Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansible
 
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
 
Automating with Ansible
Automating with AnsibleAutomating with Ansible
Automating with Ansible
 

Ähnlich wie 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
 
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
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php PresentationAlan Pinstein
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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 productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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 BrazilV3cube
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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...apidays
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Kürzlich hochgeladen (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

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