View
60
Download
0
Category
Preview:
Citation preview
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’
Recommended