This is a Sample Template that you can work in without

Download Report

Transcript This is a Sample Template that you can work in without

PowerShell for the Anxious ITPro:
Jason Himmelstein, MVP
Senior Technical Director, SharePoint
@sharepointlhorn
me
Blog: www.sharepointlonghorn.com
Twitter: @sharepointlhorn
LinkedIn: www.linkedin.com/in/jasonhimmelstein
SlideShare: http://www.slideshare.net/jasonhimmelstein
Email: [email protected]
Agenda
•
•
•
•
•
•
•
•
•
Introduction
What is it?
History
The Why
Core principles
Do's & Do not's
Practical application
Functional Explanation
Wrap up
Rules for today 
•
•
•
•
Do as I say not as I do
Ask questions
Be patient!
Pray to the demo & Cloud gods
What is it?
•
It isn't:
– Fire and forget
– A packaged executable
– Developer-centric
– Too hard for an ITPro
•
It is:
– Command line environment
– Microsoft technology holistic
– A swiss army knife with a chain saw
– The future of ITPro's world
What is it?
•
Windows PowerShell is Microsoft's task automation framework, consisting of a command-line shell and associated scripting language built
on .NET Framework. PowerShell provides full access to COM and WMI, enabling administrators to perform administrative tasks on both
local and remote Windows systems.
– Definition from Wikipedia
•
What is it really
– PowerShell is an object-based, not text-based, command-line interface for Microsoft Technologies
• What does that mean:
– Results in PowerShell can be acted upon, not just read from
History
•
•
•
•
•
•
•
•
•
Started internally at Microsoft in 2002
Demo'ed at PDC in 2003 - early stage
Private beta
Public Beta in June 2005
April 2006 changed the name to PowerShell
PowerShell v1 for RTW on Nov 14 2006
PowerShell v2 was released in Aug 2009 as a part of Win7 & Server 2008 R2
PowerShell v3 was released as a part of Win8 & Server 2012
PowerShell v4 is coming as a part of Server 2012 R2
The Why
•
Why did Microsoft create PowerShell & move more to a PowerShell world than a GUI world?
•
What is it used for:
– Deployment
– Configuration
– Management
– Administration
– Development
The Basics
•
The "hardware"
• PowerShell Console vs PowerShell ISE
•
The terminology
• Shell
• Command-lets - "cmdlets"
• Variables
• Pipeline
• Scripts
• Functions
• Modules
cmdlets
•
•
•
•
•
Main building block of PowerShell
Mini Commands that perform one action
Actually .NET Classes that can easily be created if new functionality is required
The output of one cmdlet can be piped into further cmdlets
Equality test with expressions such as –eq –lt –match
Modules
•
•
•
•
11
Script
– A script module is a file (.psm1) that contains any valid Windows PowerShell code.
Binary
– A binary module is a .NET Framework assembly (.dll) that contains compiled code.
Manifest
– A module manifest is a Windows PowerShell data file (.psd1) that describes the contents of a module and determines how a
module is processed.
Dynamic
– A dynamic module is a module that does not persist to disk.
• created using New-Module, intended to be short-lived and cannot be accessed by Get-Module
Objects
•
•
12
Instances of classes
Have properties and methods
Members
•
13
Properties and Methods of an object
– Properties – what an object is
– Methods – what you can do with the object
PipeLine
•
•
14
Chain of object processing
Output becomes input
Functional Explanation
•
Get-verb
– Gets approved Windows PowerShell verbs
•
Get-member
– Listing the Properties and Methods of a Command or Object
•
Get-history
– If you didn’t start transcript, you can still review your history before closing your Shell or ISE window
The Do’s
•
•
•
•
•
•
•
Use variables
Only one thing at a time
Comment your scripts
Create scripts using an ISE\IDE, execute in shell
Dispose of your objects \ code
Test before using in Production
Write re-usable scripts
The Do Not’s
•
•
•
•
•
Vary your variables
Hard code your scripts
Take code from the internet or vendor & just RUN in your environment
Assume that code is not harmful… it is.
Run your code in an IDE\ISE and expect everything to work
PowerShell Syntax
•
•
•
•
18
Comment
– #
Add
– +
Equal
– =
– -eq
Not Equal
– !
– -ne
– -not
Bracketology
•
•
•
19
()
{}
[]
–
Curved brackets (Parenthesis) are used for required options, compulsory arguments, or control structures
–
–
Curly brackets are used for block expression within a command block
Used to open a code block
–
–
Square Brackets are used to denote optional elements or parameters
Also used for math functions
Simple Hard Demos
Run-as Administrator
21
•
Why Run-As Administrator
•
How to configure icon settings
Add-Server2Farm
22
•
Using PowerShell to add a server to a farm
•
Writing your own scripts using functions
PowerShell vs PowerShell ISE
23
Transcription
24
•
PowerShell vs PowerShell ISE
•
Methods
– Start-transcript
– PowerShell Profiles
PowerShell Profiles
Creation script
– New folders
– New files
• .ps1
• .bat
– Adds content to files
– Adds shortcut to the All Users Startup folder
25
Easy to Medium Demos
Wicked Hard Demos
Questions &
Answers
Handy information
Jason’s info
•
– http://blog.sharepointlonghorn.com
– [email protected]
– @sharepointlhorn
•
Seb Matthews
–
•
SharePoSH Virtual Users Group
–
•
http://www.shareposh.com/
PowerShell.org
–
•
http://sebmatthews.com
http://www.powershell.org
The Scripting Guy
–
http://blogs.technet.com/b/heyscriptingguy/
me
Blog: www.sharepointlonghorn.com
Twitter: @sharepointlhorn
LinkedIn: www.linkedin.com/in/jasonhimmelstein
SlideShare: http://www.slideshare.net/jasonhimmelstein
Email: [email protected]
Terms for you can Google with Bing later
Core Principles
•
•
•
•
•
•
members
objects
pipelines
verb-noun
dot sourcing
parsing
Core principles (i)
•
•
•
•
•
•
•
Shell
cmdlets*
Blocks/regions
Scripts
Functions
Modules*
Profiles
Core principles (ii)
•
•
•
•
•
•
•
Objects*
Members*
Pipelines*
Verb-Noun
Dot sourcing
Parsing
Providers