powershell 101 - what is it and why should you care!

Post on 11-Apr-2017

60 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PowerShell 101What is it and why should YOU care?

Thomas LeePartner, PS Partnership@DoctorDNS on Twitter

Agenda

• What IS PowerShell?• What are Cmdlets, Objects and the Pipeline?• PowerShell in Windows and Windows Applications• Why PowerShell Matters to YOU• Questions

Who am I?

• 17-time MVP – many on PowerShell• PowerShell Pioneer

– Into PowerShell from the get-go (Oct 2003)• Author

– PowerShell 2.0 bible with another book in probress• Trainer• Admin for PowerShell group on Spiceworks

Why PowerShell?

• PowerShell is the future of Windows administration

• PowerShell makes your life easier• PowerShell magnifies your effort• Let me show you how and why!

But First - What IS PowerShell?

• Microsoft’s Strategic Task Automation Platform for IT Pros• It contains

–Shell – think Unix like in terms of usefulness–Scripting Language – with the power of Perl or Ruby –Extensible – bring on the community

Looking at PowerShell

Cmdlets Objects Pipeline

Community

Discovery

PowerShell Language Features

What are Cmdlets?

• A unit of functionality – much like a Linux command• Implemented as a .NET Class

– Get some with PowerShell/Windows– Buy some – e.g. /n Software’s NetCmdlets– Find some – leverage the community efforts– Build your own – use C# and VS

Cmdlets (continued)

• Cmdlets named with a Verb-Noun syntax– Verbs are standard to aid discovery

• Cmdlets can have aliases– Built in or add your own– Aliases do NOT include parameter aliasing

• Cmdlets come from PowerShell, Windows, apps

Cmdlets (continued)

• Cmdlets take parameters• All parameters have parameter names that begin

with a ‘-’ • Some parameter names can be omitted• Tab completion is your friend!• Cmdlets are discoverable

Get-Help, Get-Command

Cmdlets and Modules

• Cmdlets/Functions packaged into modules• Modules can be dynamically loaded• You can develop your own modules

What are Objects?

• A computer abstraction of a real life thing– A process– An AD User– A folder

• In PowerShell everything is an object

Objects (continued)

• Objects have occurrences you manage– The processes running on a computer– The users in an OU– The files in a folder

• Objects dramatically simplifies scripting

PowerShell Object Support

• PowerShell supports:– .NET objects– COM objects– WMI objects– Custom Objects

• Syntax and usage vary – similar, yet different

Objects in PowerShell

• Cmdlets produce and consume objects– E.g. Get-Process produces objects of the type System.Diagnostics.Process

• Objects are discoverable–Get-Member tells you the what an object contains

• Refer to MSDN documentation for more detail

What Is The Pipeline?

• The pipeline connects cmdlets– One cmdlet outputs objects– Next cmdlet uses them as input

• Pipeline is not a new concept– Came From Unix/Linux– PowerShell Pipes objects not text

Why This Design Matters

• Simple to use – far easier to compose• Powerful in operation - PowerShell (and .NET) do the

heavy lifting• Improves integration of functionality stacks

– OS/Application/PowerShell base/Community efforts/etc.

Discovery

• A key concept in PowerShell• What you know helps you learn more• PowerShell built to be discoverable

Key Discovery Cmdlets

• Get-Command – helps you to find cmdlet/function names

• Get-Help – gets you details on a specific cmdlets/function

• Get-Member – pipe your output to Get-Member to discover what it is

CmdletsPipelineObjectsDiscovery

Demo Time

PowerShell Community

• You never walk alone => PowerShell ecosystem– Product teams– Vendors

• Various ways to engage with the community– Blogs– Twitter– Spiceworks PowerShell forum

PowerShell Language

• PowerShell has a language• This is used to create scripts, script cmdlets, etc.• Syntax similar to C#• Language contains features from Unix/Linux and others• You need to know the language to write scripts

PowerShell ISE

• A richer development environment• Does colour coding of syntax• Good editing features• Extensible

PowerShell is Everywhere

• Core modules come with Windows• Additional modules come with Windows features• More module come with Windows apps• Even more modules come from the community

How Do I Get PowerShell?

• V3 Built into Win8, Server 2012• V4 Built into Win 8.1, Server 2012 R2• V5 in Windows 10• V5.1 in Win10 AU and Server 2016• V6.0 Alpha available

Getting Modules

• Some built-in• Some come with Server feature and/or RSAT tools• Some downloadable (e.g. Azure)• Some 3rd party commercial• Use PowerShellGet module to find and install more!

So Why Does PowerShell Matter?

• Because it’s everywhere!• It’s faster for repetitive tasks• It’s repeatable and auditable• Less prone to error• It’s easy (once you get past the learning curve)

PowerShell Is Not Universal!

• Windows has over 300 console applications that you use to administer and manage aspects of Windows

• Many of these have NO equivalent in PowerShell• Examples include:

– Certutil– Slmgr.vbs/Ospp.vbs– Wevtutil.exe

Learning PowerShell

• Books/blogs/forums• Microsoft and other training courses• Get your company to sponsor a class• Learn by doing

So What Next?

• First, remove cmd.exe from your system– Use PowerShell everywhere

• Use PowerShell for as much as you can– Ask questions on Spiceworks

• Master PowerShell– Advance your career

Summary

• If you are an IT Pro in the Windows space you need to either– Learn PowerShell– Learn how to smile when you say ‘would you like fries with

that burger’

top related