
Discover how to turn one-liners into advanced PowerShell functions, leverage rest APIs and the .NET framework, apply desired state configuration and just enough administration, and implement error handling and debugging.
Move from one-liners to scripts and functions in PowerShell by turning a test net connection into a reusable tool that checks ping and ports with robust handling.
Parameterize your scripts to remove hard coded values, using the built-in args automatic variable to collect a collection of values and a foreach loop to process each item.
Explore how PowerShell functions evolve from one-liners to advanced tools, embracing the Unix philosophy of building reusable components that do one thing well, with pipeline input and efficient command binding.
Add verbose output in advanced functions to reveal additional details via write-verbose, leveraging common parameters and command binding; control visibility with the verbose parameter or $VerbosePreference.
parameterize scripts with named parameters, Perram and Parum blocks, command binding, and the args variable to accept runtime values and multi-value computer names or ports.
Explore how parameter blocks in PowerShell validate input with default values and mandatory attributes. Learn to prompt for missing values, manage multi-valued parameters, and stack attributes for readability.
Explore mandatory parameters in scripts and advanced functions, use optional help messages, and apply aliases to map computer name to host or server name in commands like test net.
Learn how PowerShell treats parameters as positional, use parameter set names to define mutually exclusive inputs, and leverage bound parameters to handle computer name or IP address.
Explore parameter validation attributes in PowerShell, focusing on null and not null checks, allowing empty values, and distinguishing these from mandatory and default parameters.
Apply validate count, validate length, and validate range to constrain parameter inputs, using computer name lists and day of month values, including limits 1–10, 1–15, 1–31, and 64 items.
Learn to use validate pattern and validate script in PowerShell, with regular expressions for computer names and IPs, and scripts to verify password last set dates and scan Active Directory.
Explore validate set and enum in PowerShell by enforcing a finite list of parameter values, using predefined lists, interactive selection, and simple enum patterns for server names and port options.
Discover how dynamic parameters populate validation sets by querying Active Directory or other sources to supply computer names, enabling context-driven command behavior in PowerShell advanced functions.
Explore PowerShell scope from global to script to child scopes, learn how variables and functions resolve across levels, and use dot sourcing and module exports to share tools.
Package PowerShell functions into a script module by saving them as a psm1 file in standard module paths, then load automatically and refresh changes with import-module -Force.
Discover how to create a PowerShell module manifest (.psm1) to declare dependencies, export public functions, and reference needed assemblies, host versions, and formats; test and refine manifests before publishing.
Publish internal PowerShell modules packaged with a module manifest to a trusted file-share repository, then manage their lifecycle with find-module, install-module, and update-module after registering the repository.
Explore how PowerShell pipeline binding works by value and by property name, with examples using test-netconnection and CSV data to bind computer-name and port automatically.
Add pipeline input to advanced functions by configuring the parameter block, then use a process block to handle each item efficiently, with or without pipeline input.
Explore best practices for outputting to the PowerShell pipeline by producing a single kind of raw object, using hash tables and a dot net object, and avoiding in-tool formatting.
Learn how to add what-if and confirm support to commands, declare should process and impact rating, and guard potentially dangerous operations such as register repository.
Discover how the dot net framework integrates with Paracel, PowerShell's role, explore classes, namespaces, properties, and methods, and learn to invoke methods to extend Paracel functionality.
Discover how to use static members of a .NET class without instantiation, calling static methods such as round and properties like PI on the math class, in Paracel.
Create and manipulate dot net objects with constructors, the new object command, and type casting. Explore overloads and enumerations, including console colors and security protocol types.
Learn to add dotnet framework types to a PowerShell session with add-type and update type data to extend Active Directory computer objects with a computer name property for pipeline input.
Explore the challenges of parsing raw HTML with PowerShell's invoke web request and regex, and learn why REST APIs offer a robust, long-term solution for accessing web data.
Explore rest api concepts, including stateless http communication, authentication with cookies and json web tokens, and data formats like xml or json for structured web service interactions.
Use invoke-restmethod to query REST APIs from PowerShell. Handle URI, headers, and API keys, plus JSON or XML payloads, with real-world examples from GitHub and open weather map API.
Use PowerShell's Invoke-RestMethod to interact with Microsoft Graph and Intune rest APIs, including authentication tokens and response handling.
Controller scripts act as wrappers that orchestrate single-purpose PowerShell tools, gather input, and format output for end-to-end tasks like on-premises to Azure AD provisioning.
Use the requires statement at the top of scripts to enforce module availability, minimum Paracel version, and run as administrator, with modules loaded on demand.
Learn interactive input and feedback in PowerShell with Read-Host, Write-Host, and Write-Progress; collect user input securely as secure-string for credentials and design clear prompts.
Create a PowerShell menu driven by the switch construct, using here-strings and a do loop to display processes, services, and hotfixes, with color changes and an exit option.
Explore building graphical user interfaces for PowerShell tools using WinForms and WPF, with hands-on examples like calendar forms, and free form builders such as posh gooey, to create admin-friendly interfaces.
Learn to convert pipeline objects into HTML reports with PowerShell using ConvertTo-HTML, embed images with base64, apply CSS styles, and save polished service reports for online and offline machines.
assemble multi-section reports by using html fragments and convert to html, combining BIOS data and services into a single document with headers and pre content.
Explore error types in PowerShell—syntax, logic, and runtime errors—and the default non terminating behavior. Learn to control execution with error action preference: continue, silently continue, inquire, and stop.
Read error messages to gain feedback, using line numbers and underlines to locate issues, and use private data to change the console's color scheme to highlight errors.
Learn how to trap errors in PowerShell with try, catch, and finally, keeping try blocks small and using WMI to read the registry for release IDs and product names.
Explore adding for-each enumeration in PowerShell to minimize work in each try block, trap errors with stop, and handle one system at a time for precise troubleshooting.
Learn how to handle PowerShell errors with multiple catch blocks, targeting specific dot net exception types, using distinct catch blocks and a final default catch for all other errors.
Explore how PowerShell's try, catch, and finally blocks work together. Always run the finally block to ensure resources are freed and cleanup occurs, even if a return or exit happens.
Capture error details with the automatic air variable and dollar underscore in catch blocks, then log to CSV using a write to log function and a log it switch.
Use write-debug to pause execution and inspect variables during PowerShell scripts. Name parameters like log data and log path to fix issues and improve debugging with right debug.
Utilize breakpoints in the PowerShell console to pause execution, inspect variables, and step through code line by line, with commands to set breakpoints on lines, commands, or variables.
Learn to debug and step through a PowerShell script in the ISE using breakpoints, hover variables, and F11 and F9, while tracing a Have I Been Pwned password check.
Explore how XML preserves hierarchical data such as user and group memberships, addressing CSV limitations when exporting and importing structured PowerShell data.
Import xml content and cast it to an xml document object model, then navigate and search with xpath using select single node and select nodes.
Modify an XML document with a PowerShell function, navigating nodes and updating SIS Info with serial number, version, and last boot time, backing up the original and saving to Assaye-New.xml.
Json provides a lightweight alternative to xml for web services, and you learn to convert to json and from json in PowerShell, while inspecting Azure templates.
Master powerful text parsing with regular expressions in PowerShell, learning patterns, anchors, quantifiers, character classes, escapes, and practical examples like log and computer name matching.
Explore how the PowerShell regex match operator evaluates patterns against strings, using anchors, quantifiers, character classes, and escapes to validate emails, digits, spaces, and boundaries.
Convert non structured text to PowerShell objects with ConvertFrom-String using regex and templates. Parse netstat output into objects with local address, foreign address, state, and protocol, then filter and sort.
Learn how to manipulate strings in Windows PowerShell using Convert-String and regular expression groupings to reformat names as last name, first name.
Explore desired state configuration, a lightweight dev ops platform for Windows and Linux. See how declarative DSC resources describe and enforce system state across environments with code and pipelines.
Master the PowerShell DSC module to manage endpoints with commands like get dsc configuration, get dsc local configuration manager, get dsc resource, test configuration, and update dsc configuration.
The local configuration manager (lcm) is the Windows agent for desired state configuration that applies configs via pull or push, monitors drift, and enforces the approved state.
Learn to configure the local configuration manager with DSC meta configuration, decoration, and node settings to push MOF files to multiple endpoints and adjust configuration mode, frequency, and refresh.
DSC resources, packaged as modules, perform the actual work in configurations—copying, deleting, and creating files. Explore them with Get-DSCResource and Find-DSCResource, and consider custom or script resources for declarative deployments.
Write DSC scripts by using configuration blocks and node sections, deploying file server and data duplication roles with the Windows feature resource, in a declarative, non-imperative style.
Parameterize PowerShell configurations, separate configuration data from logic with a hash table, and apply node-specific settings to systems with matching roles using all nodes.
Push DSC configurations to endpoints with start-dscconfiguration, targeting a collection of files and computers, using foreground and verbose options, and learn idempotence and push versus pull for scalable deployment.
Explore the pull model for desired state configuration and compare it with push, then learn how on-premises pull servers and Azure automation enable centralized configuration and resource distribution.
Explore partial configurations in Windows Management Framework five, showing how to split DSC configurations into pieces and stitch them at the endpoint, with devops implications and conflicts.
Configure and integrate desired state configuration with Azure Automation, onboarding on-premises and cloud systems, manage pull and push configurations, and monitor compliance via dashboards.
Explore just enough administration (JEA) and Paracel to create temporary virtual accounts for privileged tasks via PowerShell remoting, reducing identity exposure and enabling granular command control.
Define and deploy JEA role capability files in PowerShell, detailing visible commands, parameters, functions, scripts, and variables, within a module’s role capabilities subfolder.
Learn to create a JEA session configuration file, map roles to identities with required groups, enforce restricted language mode, and implement just-in-time access for secure remote PowerShell sessions.
Register a JEA session configuration on a remote system, map role capabilities to credentials, and use invoke command for scalable deployment via desired state configuration and access to approved commands.
Deploy Geia configurations across endpoints using Desired State Configuration with the Geia DSC module, including roll capabilities and session configuration, and ensure proper registration.
This Intellezy course, taught by Shawn Stugart, builds on existing PowerShell 5.1 skills and course and focuses on tool building to automate administrative tasks. Students will learn core scripting skills such as building advanced functions, creating script modules, writing controller scripts, and error handling and debugging. Working beyond native PowerShell commands, students will be introduced to technologies and concepts to support custom tool building such as .NET Framework, ReST API, XML and JSON, Desired State Configuration (DSC), Just Enough Administration (JEA), and parallelization.
With nearly 10,000 training videos available for desktop applications, technical concepts, and business skills that comprise hundreds of courses, Intellezy has many of the videos and courses you and your workforce needs to stay relevent and take your skills to the next level. Our video content is engaging and offers assessments that can be used to test knowledge levels pre and/or post course. Our training content is also frequently refreshed to keep current with changes in the software. This ensures you and your employees get the most up-to-date information and techniques for success. And, because our video development is in-house, we can adapt quickly and create custom content for a more exclusive approach to software and computer system roll-outs.
Like most of our courses, closed caption subtitles are available for this course in: Arabic, English, Simplified Chinese, German, Russian, Portuguese (Brazil), Japanese, Spanish (Latin America), Hindi, and French.