PowerShell is a task automation and configuration management platform that can help IT administrators more easily manage Windows systems. It contains cmdlets that perform tasks, works with objects to represent system components, and uses a pipeline to connect cmdlets. PowerShell is built on .NET and is extensible via modules. It supports discovering what cmdlets and objects can do via Get-Help and Get-Member. Desired State Configuration (DSC) allows defining and enforcing configurations using PowerShell. The presentation encourages administrators to learn PowerShell to more efficiently manage systems and tasks.
Nell’iperspazio con Rocket: il Framework Web di Rust!
2015 spice world_london_breakout
1. - 2015
Bringing Home The Bacon
An Introduction to Windows PowerShell
Thomas Lee
Partner, PS Partnership
@DoctorDNS on Twitter
Tfl on Spiceworks
2. - 2015
• What IS PowerShell?
• What are Cmdlets, Objects and The Pipeline?
• PowerShell in Windows and Windows
Applications
• Why PowerShell Matters to YOU
• Desired State Configuration
• Questions
3. - 2015
• PowerShell is the future of Windows administration
• PowerShell makes your life easier
• PowerShell magnifies your effort
• With PowerShell you have more time to enjoy and
consume bacon
• Let me show you how and why!
4. - 2015
• 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
• Based on .NET – Microsoft focused
6. - 2015
• A unit of functionality
• Implemented as a .NET Class
– Get some with PowerShell/Windows
– Buy some – eg /n Software’s NetCmdlets
– Find some – leverage the community efforts
– Build your own – use C# and VS
7. - 2015
• 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
8. - 2015
• Cmdlets take parameters
• All parameters have parameter names
– Begin with a ‘-’
• Some parameter names can be omitted
• Tab completion is your friend!
• Cmdlets are discoverable – Get-Help, Get-Command
9. - 2015
• Cmdlets/Functions packaged into modules
• Modules can be dynamically loaded
• You can develop your own modules
10. - 2015
• A computer abstraction of a real life thing
– A process
– A server
– An AD User
• In PowerShell everything is an object
11. - 2015
• 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
12. - 2015
• PowerShell supports:
– .NET objects
– COM objects
– WMI objects
– Custom Objects
• Syntax and usage vary – similar, yet different
13. - 2015
• 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
14. - 2015
• 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
15. - 2015
• 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
16. - 2015
• A key concept in PowerShell
• What you know helps you learn more
• PowerShell built to be discoverable
17. - 2015
• 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
19. - 2015
• You never walk alone => there is a HUGE PowerShell
ecosystem
– Spiceheads
– Product teams
– Vendors
• Various ways to engage with the community
– Spiceworks PowerShell Group
– Blogs
– Twitter
20. - 2015
• PowerShell has a language
• This is used to create scripts, script cmdlets, etc.
• Syntax similar to C#, et al
• Language contains features from Unix/Linux
and a bunch of others
• You need to know the language to write scripts
21. - 2015
• A richer environment
• Does colour coding of syntax
• Good editing features
• Extensible
22. - 2015
• Core modules come with Windows
• Additional modules come with Windows
features
• More module come with Windows apps
• Even more modules come from the community
23. - 2015
• V3 Built into Win8, Server 2012
• V4 Built into Win 8.1, Server 2012 R2
• V5 in Windows 10 and in beta
24. - 2015
• Some built in
• Some with Server feature and/or RSAT tools
• Some downloadable (eg Azure)
• Some 3rd party commercial
25. - 2015
• Version 5 is in beta
– Standalone
– As part of Windows 10 betas
• The best just got better
• Key new feature – more complete DSC
26. - 2015
• DSC – Desired State Configuration
• You define a configuration
– PowerShell DSC – Makes it so!
– PowerShell DSC – KEEPS it so!
27. - 2015
• Purpose:
– From a just installed domain joined server
– Add IIS, a web site, an application pool, a web
application and files to this Windows Server
– Ensure it stays configured
28. - 2015
• Today – DSC is a work in progress
– Only 12 fully released resources in V4
– Loads more being developed – some are stable
– Windows 10 will help, but Windows Server vNext
will have more
• DSC now open source and available on Linux
29. - 2015
• Because it’s everywhere!
• It’s faster for repetitive tasks
• It’s repeatable and auditable
• Less prone to error
30. - 2015
• Books/blogs/forums
• Microsoft and other training courses
• Cheap plug – come on my weekend
PowerShell PowerCamps – next one is in
October 24/25 in London
• Get your company to sponsor a class
31. - 2015
• First, remove cmd.exe from your system
– Use PowerShell everywhere
• Use PowerShell for as much as you can
– Ask questions on Spiceworks
• Master PowerShell
– And bring home the bacon
32. - 2015
• 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’