SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShellDale Lane
 
Pwning the Enterprise With PowerShell
Pwning the Enterprise With PowerShellPwning the Enterprise With PowerShell
Pwning the Enterprise With PowerShellBeau Bullock
 
Basic commands of linux
Basic commands of linuxBasic commands of linux
Basic commands of linuxshravan saini
 
aclpwn - Active Directory ACL exploitation with BloodHound
aclpwn - Active Directory ACL exploitation with BloodHoundaclpwn - Active Directory ACL exploitation with BloodHound
aclpwn - Active Directory ACL exploitation with BloodHoundDirkjanMollema
 
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
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with AnsibleIvan Serdyuk
 
Linux command ppt
Linux command pptLinux command ppt
Linux command pptkalyanineve
 
Easiest way to start with Shell scripting
Easiest way to start with Shell scriptingEasiest way to start with Shell scripting
Easiest way to start with Shell scriptingAkshay Siwal
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with AnsibleRayed Alrashed
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basicsManav Prasad
 
Linux Basic Commands
Linux Basic CommandsLinux Basic Commands
Linux Basic CommandsHanan Nmr
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scriptingvceder
 
Deep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeDeep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeAjeet Singh Raina
 

Tendances (20)

An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShell
 
PowerShell-1
PowerShell-1PowerShell-1
PowerShell-1
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Pwning the Enterprise With PowerShell
Pwning the Enterprise With PowerShellPwning the Enterprise With PowerShell
Pwning the Enterprise With PowerShell
 
Basic commands of linux
Basic commands of linuxBasic commands of linux
Basic commands of linux
 
Installing Aix
Installing AixInstalling Aix
Installing Aix
 
Network automation (NetDevOps) with Ansible
Network automation (NetDevOps) with AnsibleNetwork automation (NetDevOps) with Ansible
Network automation (NetDevOps) with Ansible
 
aclpwn - Active Directory ACL exploitation with BloodHound
aclpwn - Active Directory ACL exploitation with BloodHoundaclpwn - Active Directory ACL exploitation with BloodHound
aclpwn - Active Directory ACL exploitation with BloodHound
 
Complete Guide for Linux shell programming
Complete Guide for Linux shell programmingComplete Guide for Linux shell programming
Complete Guide for Linux shell programming
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with Ansible
 
Linux command ppt
Linux command pptLinux command ppt
Linux command ppt
 
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell ScriptingLinux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
 
Easiest way to start with Shell scripting
Easiest way to start with Shell scriptingEasiest way to start with Shell scripting
Easiest way to start with Shell scripting
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with Ansible
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basics
 
Linux commands
Linux commandsLinux commands
Linux commands
 
Linux Basic Commands
Linux Basic CommandsLinux Basic Commands
Linux Basic Commands
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scripting
 
Deep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeDeep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm Mode
 
ansible why ?
ansible why ?ansible why ?
ansible why ?
 

Similaire à 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
 

Similaire à 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
 

Dernier

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
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 Takeoffsammart93
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
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 FresherRemote DBA Services
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - 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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Dernier (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - 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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

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