Is this list "Everything" in PowerShell?
Soooo…. it’s time for me to start looking at updating my various training materials (books, videos, courses, whatnot) for v4.
I’m going to, with at least some of these, take an all-versions approach. I’ll teach what’s in v2, then cover what v3 added, then cover v4, etc. It’ll be easier to maintain over the upcoming years.
For right now, I’m trying to assemble an organized topic list of “everything” the shell does. Now, I need to wrap that in an important caveat: I’m aiming at admins. Not developers. I’m not saying devs aren’t a great audience, but for this project I need to constrain my scope to just the admin audience. I’m also focused mainly on what the shell does _natively, _with only a few diversions into external or underlying technologies. Those are fixed caveats for this project - no exceptions.
Right now I"m kind of chunking the list into what I feel can be taught (by me) in 20-30 minutes, or a book chapter, or something like that. This isn’t necessarily how the material will be presented - this is just me organizing my thoughts so as to not miss important stuff.
So, given the list below, what do you feel is missing?
(Numbers are major topics; letters are basically my mental notes about what the topic might include that I might otherwise forget; like I said, this isn’t meant to be a real book outline - it’s just a topic list)
PowerShell Core
- Series Introduction and Lab Setup
- Windows PowerShell Introduction and Requirements
- Finding and Discovering Commands
a. Importing modules and snapins - Interpreting Command Help
- Running Commands
- Running External Commands: Tips and Tricks
a. $Lastexitcode - Working with PSProviders and PSDrives
- Variables, Strings, Hashtables, and Core Operators
a. Double quote tricks, subexpressions
b. Here-strings
c. Escapes
d. Variable types
e. Arrays
f. Math operators - Regular Expression Basics
a. Basic regex language
b. ““Match
c. Select-String - Learning the Pipeline: Exporting and Converting Data
- Understanding Objects in PowerShell
- Core Commands: Selecting, Sorting, Meauring, and More
- How the PowerShell Pipeline Works
- Formatting Command Output
- Comparison Operators and Filtering
- Advanced Operators
- Setting Default Values for Command Parameters
- Enumerating Objects in the Pipeline
a. Working with object methods - Advanced Date and String Manipulation
- Soup to Nuts: Completing a New Task
PowerShell Remoting - PowerShell Remoting Basics
- Persistent Remoting: PSSessions
- Implicit Remoting: Using Commands on Another Computer
- Advanced Remoting: Passing Data and Working with Output
- Advanced Remoting: Crossing Domain Boundaries
- Advanced Remoting: Custom Session Configurations
- Web Remoting: PowerShell Web Access
WMI and CIM - WMI and CIM: WMI, Docs, and the Repository
- WMI and CIM: Using WMI to Commands Query Data
- WMI and CIM: Using CIM Commands to Query Data
- WMI and CIM: Filtering and WMI Query Language
- WMI and CIM: Associations
- WMI and CIM: Working with CIM Sessions
- WMI and CIM: Executing Instance Methods
Jobs - Background Job Basics: Local, WMI, and Remoting Jobs
- Scheduled Background Jobs
Scripting in PowerShell - PowerShell Script Security
- Prompting for Input, Producing Output
- Creating Basic Parameterized Scripts
- PowerShell Scripting: Logical Constructs
- PowerShell Scripting: Looping Constructs
a. Break and Continue - PowerShell Scripting: Basic Functions, Filters, and Pipeline Functions
- PowerShell Scripting: Best Practices
a. Line breaking
b. Splatting
c. Formatting
d. Source Control
e. Etc. - PowerShell Scripting: From Command to Script to Function to Module
- PowerShell Scripting: Scope
- PowerShell Scripting: Combining Data from Multiple Sources
a. Ordered hashtables
Advanced Functions (“Script Cmdlets”) - Advanced Functions: Adding Help
- Advanced Functions: Parameter Attributes
- Advanced Functions: Pipeline Input
- Advanced Functions: Parameter Sets
Advanced Scripting Techniques - Creating Private Utility Functions and Preference Variables
- Adding Error Capturing and Handling to a Function
- Advanced Error Handling
a. Variety of error capturing options
b. Catching multiple exceptions
c. Etc. - Error Handling the Old Way: Trap
- Debugging Techniques
- Creating Custom Formatting Views
- Creating Custom Type Extensions
- Working with SQL Server (and other) Databases
- Working with XML Data Files
- Supporting ““WhatIf and ““Confirm in Functions
- Troubleshooting and Tracing the Pipeline
- Using Object Hierarchies for Complex Output
- Creating a Proxy Function
PowerShell in the Field - From the Field: Enhanced HTML Reporting
- From the Field: Trend Analysis Reporting
- From the Field: Scraping HTML Pages
PowerShell Workflow - Introduction to PowerShell Workflow
Desired State Configuration - Desired State Configuration: The Basics
- Desired State Configuration: Configuration Scripts
- Desired State Configuration: Writing Resources
- Globalizing a Function or Script
- Discovering and Using COM Objects
- Discovering and Using .NET Classes and Instances
Writing Scripts for Other People - Controller Scripts: Automating Business Processes
- Controller Scripts: A Menu of Tools
- Creating a GUI Tool: The GUI
- Creating a GUI Tool: The Code
- Creating a GUI Tool: The Output
- Creating a GUI Tool: Using Data Tables
Advanced Core Techniques, Tricks, and Tips - Using Type Accelerators
a. [ADSI]
b. [XML]
c. [VOID]
d. where they"™re documented - The Big Gotchas in PowerShell
a. (from the ebook list) - Fun with Profiles
a. Profiles and hosts
b. Prompt
c. Colors
d. Get a credential - Random Tips and Tricks
a. Redirection changing pipelines
b. $$
c. $?
d. Dot sourcing
Related Articles
Iron Scripter: Learn PowerShell through code challenges
Hello, friends! Today I want to talk about the Iron Scripter code challenges and the accompanying website. The challenges are excellent for practicing challenging concepts. What’s that you say? Not familiar with Iron Scripter? Let’s get you up to speed. Iron Scripter: A brief history lesson The Iron Scripter website is part of the PowerShell.org family and provides material for the Iron Scripter challenge that takes place at PowerShell Summit each year.
A Peculiar Parse
One of the best enhancements to Powershell was the inclusion of custom classes in v5. We originally wrote scripts, then we wrote cmdlets, followed by modules, and now we’ve graduated, with Class. I recently decided I wanted to write some code that would build a website. What better way to do that than by creating a class just for me? That’s rhetorical by the way. My early class code looked like this:
We Need Your Help.
We need your help.
As you may have heard, we’re launching a new “OnRamp” track at PowerShell + DevOps Global Summit 2019. Limited to 40 students, this will be a hands-on class designed to bootstrap someone into the technology and our community. There’s a whole brochure about it!
We’re also offering a number of free-ride scholarships designed to cover admission, air, and hotel, to help increase the diversity of our field and community right at the top of the funnel. Half of our scholarships will be awarded to individuals from groups that are traditionally underrepresented in IT, and that’s where we need your help.
We need to get the word out to potential applicants so that they know to apply!