powershell for the anxious itpro

33
A Journey down the rabbit hole PowerShell for the Anxious ITPro: Jason Himmelstein, SharePoint MVP Office 365 Advisory Services Manager @sharepointlhorn http://www.sharepointlonghorn.com

Upload: jason-himmelstein

Post on 18-Aug-2015

260 views

Category:

Technology


0 download

TRANSCRIPT

A Journey down the rabbit hole

PowerShell for the Anxious ITPro:

Jason Himmelstein, SharePoint MVPOffice 365 Advisory Services Manager@sharepointlhornhttp://www.sharepointlonghorn.com

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

Jason’s contact & vitals• SharePoint Server MVP • Office 365 Advisory Services Manager• SharePoint Community Leadership Board, Chair

• Blog: www.sharepointlonghorn.com • Twitter: @sharepointlhorn • LinkedIn: www.linkedin.com/in/jasonhimmelstein• SlideShare: http://www.slideshare.net/jasonhimmelstein• Email: [email protected]

• Author of Developing Business Intelligence Apps for SharePoint– http://bit.ly/SharePointBI

If we are lucky, there *might* be a Big Seb sighting….

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• Introduction

• What is it?

• History

• The Why

• Core principles

• Do's & Do not's

• Practical application

• Functional Explanation

• Wrap up

Agenda

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• Do as I say not as I do

• Ask questions

• Be patient!

• Pray to the demo & Cloud gods

Rules for today

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

•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?

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• 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

What is it?

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• 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

History

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• 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 Why

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

•The "hardware"• PowerShell Console vs PowerShell ISE

•The terminology

• Shell• Command-lets - "cmdlets"• Variables• Pipeline• Scripts• Functions• Modules

The Basics

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• 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

cmdlets

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• 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 

12

Modules

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• Instances of classes•Have properties and methods

13

Objects

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

•Properties and Methods of an object– Properties – what an object is

– Methods – what you can do with the object

14

Members

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

•Chain of object processing•Output becomes input

15

PipeLine

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

•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

Functional Explanation

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

•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’s

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• 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

The Do Not’s

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• Comment

– #

• Add

– +

• Equal

– =

– -eq

• Not Equal

– !

– -ne

– -not

19

PowerShell Syntax

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• ()– 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

20

Bracketology

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

Simple Hard Demos

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• Why Run-As Administrator

• How to configure icon settings

22

Run-as Administrator

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• Using PowerShell to add a server to a farm

• Writing your own scripts using functions

23

Add-Server2Farm

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

24

PowerShell vs PowerShell ISE

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• PowerShell vs PowerShell ISE

• Methods– Start-transcript

– PowerShell Profiles

25

Transcription

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

Creation script– New folders

– New files • .ps1

• .bat

– Adds content to files

– Adds shortcut to the All Users Startup folder

26

PowerShell Profiles

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

Questions & Answers

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

• Jason’s info– http://www.sharepointlonghorn.com

[email protected]

– @sharepointlhorn

• Seb Matthews– http://sebmatthews.net

• Jason’s GitHub repo– http://www.github.com/jasonhimmelstein

• The Scripting Guy– http://blogs.technet.com/b/heyscriptingguy/

Handy information

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

Blog: www.sharepointlonghorn.com

Twitter: @sharepointlhorn

LinkedIn: www.linkedin.com/in/jasonhimmelstein

SlideShare: http://www.slideshare.net/jasonhimmelstein

Email: [email protected]

Contact me

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

Terms for you can Google with Bing later

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

•members•objects•pipelines•verb-noun•dot sourcing•parsing

Core Principles

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

•Shell•cmdlets*•Blocks/regions•Scripts•Functions•Modules*•Profiles

Core principles (i)

Rackspace Company Confidential. Distribution is in violation of any Non-Disclosure Agreement on File.www.rackspace.com

•Objects* •Members*•Pipelines*•Verb-Noun•Dot sourcing•Parsing•Providers

Core principles (ii)