• Like

PowerShell: Automation for Everyone

  • 320 views
Uploaded on

Intergen's Solution Architect and Microsoft MVP Gavin Barron presented "PowerShell: Automation for everyone" during the MVP CompCamp 2014, a worldwide event ran during the weekend of 22-23 March …

Intergen's Solution Architect and Microsoft MVP Gavin Barron presented "PowerShell: Automation for everyone" during the MVP CompCamp 2014, a worldwide event ran during the weekend of 22-23 March 2014.

Gavin's blog: http://gavinb.net/

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
320
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
14
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Gavin Barron, Solution Architect March 22, 2014 ComCamp Auckland PowerShell: Automation for Everyone
  • 2. The only five commands you need Rules for writing scripts Demos Intro Wrap up Our agenda
  • 3. PowerShell: Automation for Everyone | 3  SharePoint Server MVP  Developer  Skier  http://gavinb.net  @gavinbarron  gavin.barron@intergen.co.nz Gavin Barron Solution Architect Your presenter
  • 4. PowerShell: Automation for Everyone | 4 Why Automate?  Repeatability  Reliability  Save time?  Eliminate boring manual tasks
  • 5. PowerShell: Automation for Everyone | 5 Why PowerShell?  Product specific cmdlets  Able to run .NET code  Hooks into WMI/COM  Object pipeline  Readable scripts
  • 6. The only five commands you need
  • 7. Your Awesome Presentation Title {Segoe UI 12 pt.} Get-Command
  • 8. Your Awesome Presentation Title {Segoe UI 12 pt.} Get-Help
  • 9. Your Awesome Presentation Title {Segoe UI 12 pt.} Get-Member
  • 10. Your Awesome Presentation Title {Segoe UI 12 pt.} Where-Object
  • 11. Your Awesome Presentation Title {Segoe UI 12 pt.} ForEach-Object
  • 12. Demos
  • 13. Your Awesome Presentation Title {Segoe UI 12 pt.} Find the command you need
  • 14. Your Awesome Presentation Title {Segoe UI 12 pt.} Simple Pipeline Use
  • 15. PowerShell: Automation for Everyone | 15 File renaming in .bat @echo off for /f "delims=" %%a in ('dir /b *.txt') do call :dot "%%a" pause goto :EOF :dot set "var=%~n1" set "var=%var:.=_%" echo ren %1 "%var%%~x1"
  • 16. Rules for writing scripts
  • 17. PowerShell: Automation for Everyone | 17 Consider error cases  What should you do when it goes pear shaped?  Default behaviour is Ignore and Continue  $ErrorActionPreference  -ErrorAction  try{} catch{}
  • 18. PowerShell: Automation for Everyone | 18 Consider your outputs  Write-Host  Write-Output  Write-Progress  Add-Content  Out-File
  • 19. PowerShell: Automation for Everyone | 19 Have style!  Use a coding convention  Naming  Casing  Bracing  Avoid aliases  Be Consistent!
  • 20. PowerShell: Automation for Everyone | 20 Leverage functions for re-use  Small tasks  Compose a script from functions  Functions are highly reusable  Cmdlet Binding Attribute  Parameters Attribute  Default Values
  • 21. PowerShell: Automation for Everyone | 21 Use configuration files $file =[xml] (Get-ChildItem $constantsFilePath) $root = "setup-config" $ConstantsNodeList = $file.$root.Constants foreach($property in $ConstantsNodeList.Property) { $key= $property.Key $value=$property.Value $webApp.Properties.Add($key,$value) } $webApp.Update()
  • 22. Your Awesome Presentation Title {Segoe UI 12 pt.} Script Examples
  • 23. Wrap up
  • 24. Your Awesome Presentation Title {Segoe UI 12 pt.} Start scripting, it’s easy!
  • 25. PowerShell: Automation for Everyone | 25 Handy resources  http://blogs.technet.com/b/heyscriptingguy  http://gallery.technet.microsoft.com/scriptcenter  http://social.technet.microsoft.com/Forums/scriptcenter/en- US/home?forum=ITCG  http://ss64.com/ps/  http://ss64.com/ps/syntax.html
  • 26. Any questions?
  • 27. Email: gavin.barron@intergen.co.nz Blog: http://gavinb.net Twitter: @gavinbarron Thank you