Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Powershell and Windows Server: 27+ Hours Bootcamp with Labs
Role Play
Rating: 4.5 out of 5(284 ratings)
2,649 students

Powershell and Windows Server: 27+ Hours Bootcamp with Labs

Windows Server with Powershell: Learn Active Directory, DHCP, DNS, IIS, Powershell Fundamentals, Pipeline, WMI, CIM, etc
Created byVitalii Shumylo
Last updated 10/2026
English
EnglishFrench [Auto],

What you'll learn

  • Makeing up the Commands for Automation Administrative Tasks
  • Installing DNS Role with GUI/Powershell
  • Installing and Configuring the Web Server
  • Installing and Managing Active Directory
  • Managing, configuring and modifying User objects in AD
  • Managing, configuring and modifying Computer objects in AD
  • Managing, configuring and modifying Groups objects in AD
  • Managing the file system
  • Configuring the ISE|Console
  • Executing Commands by Using the Full Command Syntax
  • Working with PowerShell Pipeline
  • Selecting, Sorting and Measuring Objects
  • Converting, Exporting and Importing Objects
  • Filtering Objects out of the Pipeline
  • Managing PSProviders and PSDrives
  • Displaying and Sorting data in Lists, Tables etc.
  • Working with WMI or CIM
  • Working with Exchange Server
  • Installing and Configuring Nano Server
  • Working with DHCP Server

Course content

1 section • 330 lectures • 27h 18m total length
  • Course overview0:47
  • Overview of Part 11:14

    Discover the origins and purpose of Windows PowerShell, its system requirements, and how to open and configure the console host and ISE. Identify version information and common shell mistakes.

  • Powershell Overview2:03

    Explore Windows PowerShell as an object-oriented engine for administrative automation, usable as a CLI or hosted in GUI applications. Learn how commands—commandlets, functions, and workflows—build flexible, customizable automation.

  • Powershell Versions1:04

    Explore PowerShell versions from 1.0 to 5, including the Windows Management Framework and WinRM, noting backward compatibility and that PowerShell 5 is default on Windows Server 2016.

  • Get to know Two Host Applications2:30

    Learn about the two host applications for Windows PowerShell, the console and the ISE, and how each supports interactive use, scripting, and transcript capture.

  • What Version are You Using1:30

    Learn to determine your PowerShell version using the $PSVersionTable in Windows PowerShell, and run PowerShell.exe -version 2.0 to reveal the 2.0 version when needed.

  • Always Run the Shell as Administrator1:56

    Identify the correct Windows PowerShell host (64-bit or 32-bit) on your system, and always run the shell as administrator, checking for Administrator in the title.

  • Tips and Tricks2:42

    Master practical PowerShell tips for faster access, version checks, host settings, and customization, including psVersionTable, host variables with private data, and configuring PowerShell on the taskbar.

  • Configuring the Console0:23

    Configure the console by selecting a true type font, adjusting font size and colors, sizing the window and layout to avoid horizontal scrolling, and enabling Quick Edit for mouse copy-paste.

  • Configuring the Console (demo)2:48

    Configure the Windows PowerShell console by adjusting font and layout, practice copying and pasting text, use arrow keys and F7 for command history, and start a transcript with start-transcript.

  • Configuring the ISE2:20
  • Configuring the ISE (demo)2:06

    Open the Windows PowerShell ISE, arrange script and console panes, switch layouts from one above the other to side-by-side or single-pane views, adjust font size, and apply a presentation theme.

  • LAB 1 Exercise 12:03

    Configure Windows PowerShell console and ISE appearance and layout, then run as administrator, pin the icon, set font and colors, resize the window, and start a transcript on C drive.

  • LAB 1 Exercise 1 Answer Video3:09

    Configure the Windows PowerShell console as administrator, ensure 64-bit, pin to the taskbar, and adjust font, colors, and layout. Start a transcript to c:\temp\text1.txt to log commands.

  • LAB 1 Exercise 21:35
  • LAB 1 Exercise 2 Answer Video1:50

    Open the 64-bit Windows PowerShell ISE as administrator, use show script pane maximized and show command add-on to switch to a single-pane view, hide panes, and adjust the font size.

  • LAB Review1:15

    Compare the console and PowerShell ISE, noting the console supports transcripts and multi-line commands that the ISE lacks; adjust ISE colors to improve visibility of braces and punctuation.

  • Part 2 Overview1:54
  • Commands that Seem Familiar2:18

    Explore how Windows PowerShell uses familiar commands such as dir, ls, and cd, with aliases for get-childitem, and learn the syntax differences for accurate file management.

  • Learning Commands Syntax3:00

    Learn how to access Windows PowerShell help with get-help, help, and man, view content in console or ISE, use -showwindow and -example for examples, and obtain online or updatable help.

  • Viewing Help (demo)2:00

    Explore how to access command help in PowerShell, view dir and get-childitem with examples, online help, and floating window demos, including paged output, dash recurse switch, and show window.

  • Finding Commands7:30

    Discover how to find and use Windows PowerShell commands with get-command and get-help, and explore module discovery and auto-loading with examples like setting an IP address and listing mailboxes.

  • Finding Commands (demo)2:29

    Discover practical PowerShell techniques to locate commands, using help html to find html conversion, and get-command -verb new to list commands that create items. Explore finding commands for restarting a computer, filtering by ipv4, and reading event logs locally or remotely with a computer name parameter using wildcards.

  • Knowledge Check: Finding Commands7:38

    Explore how to discover and use PowerShell commands, including creating an IP address with new net ip address and retrieving mailboxes with get mailbox, via get command and wildcard searches.

  • Interpreting Help5:23

    Learn to interpret help file syntax to quickly uncover a command's capabilities, including two parameter sets, mandatory log-name, positional parameters, and full help.

  • Knowledge Check: Interpreting Help10:40

    Learn to read PowerShell help files, interpret syntax, and apply best practices by using mandatory and positional parameters, parameter sets, and full help outputs.

  • Updating Help2:32

    Discover how PowerShell uses online help hosted by Microsoft and how to fetch and save module help with update-help and save-help, including offline sources and language defaults.

  • Updating and saving help files5:07

    Master PowerShell's help system using get-help, get-command, and pipe. Learn to update and save help files across modules, configure UI culture, and apply group policy for the default source path.

  • Demo: Updating and saving help files11:30
  • About Files1:36
  • About Files (demo)1:44

    Discover how to navigate PowerShell help topics with wildcards, view about topics and aliases, and access event log and beep help through an interactive demo.

  • Knowledge Check: Getting Help9:06

    Learn how to access, update, and save PowerShell help with update-help, save-help, and about topics, ensuring up-to-date and offline documentation for installed modules.

  • Part 3 Overview0:45

    Learn to run PowerShell commands with full syntax, provide multiple values to a parameter, and use shortened syntax. Explore the show-command tool and execute commands that change system configuration.

  • Full Command Syntax3:50

    Master the full formal syntax of Windows PowerShell commands, including verb-noun names, dash-prefixed parameters, and tab-completion to verify syntax and avoid common mistakes.

  • Knowledge Check: Full Command Syntax10:30
  • Specifying Multiple Parameter Value3:15

    Discover how to specify multiple values for a PowerShell parameter using double square bracket notation, comma-separated lists, parasentical commands reading computers.txt with get-content, and passing a variable to the command.

  • Knowledge Check: Specifying Multiple Parameter Value10:44

    Explore passing multiple values to PowerShell parameters using comma separated lists and variables. Learn to use parenthetical commands and Get-Content for computers.txt with the computer name parameter.

  • Shortened Command Syntax2:16

    Explore shortened command syntax in Windows PowerShell, including aliases, positional parameters, and tab completion, and learn best practices to use full command and parameter names for readability.

  • Show-Command Command2:24

    Shows how to use show-command to display a graphical dialog box for a PowerShell command, listing parameter sets on tabs and enabling quick copying or running the command.

  • Commands that Modify the System3:22
  • Show-Command (demo)1:08

    Demonstrates using show-command to explore get-service parameters, fill values, and copy the command to the clipboard before pasting it into the Windows PowerShell console to run.

  • Commands that Modify the System (demo)2:48

    Demonstrates using what-if and confirm parameters and the confirmPreference variable to control stopping services and processes, suppress prompts, and verify changes with get-service and help.

  • Lab B: Finding and Running Basic Commands Tasks5:29

    Discover and run basic Windows PowerShell commands, learn about new PowerShell features, and use help and command discovery to complete administrative tasks in a hands-on lab.

  • Lab B Solution: Finding and Running Basic Commands6:26

    Discover and run basic Windows PowerShell commands to complete administrative tasks, exploring help and commands like Get Command, Resolve DNS Name, Setnet Adapter, and Enable PS Scheduled Task.

  • Module Review and Takeaways1:33

    Review common group policy issues, including script deployment failures caused by read permissions and security filtering. Learn how slow link handling and domain-level enforcement affect policy application.

  • Course overview0:59

    Explore the PowerShell pipeline, mastering how to select, sort, measure, convert, export, import, filter, and enumerate objects to use Windows PowerShell more effectively.

  • Part 1 Overview0:40

    Explore the Windows PowerShell pipeline in part one, learning to run multiple commands and describe pipeline output. Discover and display object members while understanding issues when commands yield object types.

  • Understanding the Pipeline. Part 1. Lesson 11:50
  • Understanding the Pipeline. Part 1. Lesson 21:23

    Explore how to chain commands in a pipeline, piping get-service output to outfile or redirecting with the greater-than operator to service-list.txt.

  • Understanding the Pipeline. Part 1. Lesson 32:05

    Learn how PowerShell outputs objects instead of text, with service objects exposing properties like name, display name, and status. Compare object-based pipelines to text-based shells and avoid brittle text parsing.

  • Understanding the Pipeline. Part 1. Lesson 42:36

    Examine the properties, methods, and events of PowerShell objects, and learn to use get-member to list members and type names, while understanding default property display and safety cautions.

  • Understanding the Pipeline. Part 1. Lesson 51:42

    Learn to run and pipe PowerShell commands, use Get-Service and Get-Process, explore Get-Member, and view outputs with Out-GridView, including inspecting object types and the max speed property of net-adapter.

  • Understanding the Pipeline. Part 1. Lesson 61:40

    Master how PowerShell pipelines handle multiple object kinds, such as fileInfo and directoryInfo, and use getMember without clutter.

  • Part 2 Overview0:31

    Learn to manipulate objects in the PowerShell pipeline by sorting, selecting, and measuring properties; display subsets, customize properties for display, and create custom properties for display.

  • Understanding the Pipeline. Part 2. Lesson 110:15
  • Understanding the Pipeline. Part 2. Lesson 28:01

    Learn how to use select-object to create calculated properties with hash tables, specifying label, name, and expression, using psitem, and format results (memory in MB) with dash f.

  • LAB 1. Understanding the Pipeline3:06

    Practice PowerShell to display current date, day of year, installed hotfix details, enabled firefall rules, and network neighbors and dns cache data, sorted by name and state.

  • LAB 1. Answers. Understanding the Pipeline4:26

    Use PowerShell lab 1 tasks to display day of year with get-date and list hotfixes with get-hotfix. Filter enabled firewall rules, network neighbors, and DNS cache with select-object and sort-object.

  • Part 3 Overview0:32
  • Understanding the Pipeline. Part 3. Lesson 18:45

    Explore how Windows PowerShell converts pipeline objects to HTML, CSV, or XML via convert-to and export, and how out-file writes pipeline output to external storage.

  • Understanding the Pipeline. Part 3. Lesson 25:04

    Understand importing as a two-step process that reads external data formats into PowerShell objects, preserving fidelity with csv and xml, and routes data through the pipeline for manipulation.

  • LAB 2. Understanding the Pipeline5:16

    Convert management data into HTML, CSV, XML, and pipe-delimited formats using PowerShell in Windows Server; generate and view process and event-log reports, including procreport.html, sysevents.csv, and services.xml.

  • LAB 2. Answers. Understanding the Pipeline5:52
  • Part 4 Overview0:44

    Learn to filter objects out of the PowerShell pipeline with flexible criteria, mastering major comparison operators and both basic and advanced syntax to optimize filtering performance.

  • Understanding the Pipeline. Part 4. Lesson 15:40

    Explore filtering in PowerShell by using the var-object syntax and a range of comparison operators, including case-insensitive and wildcard options, with practical examples like get service | var status-eq running.

  • Understanding the Pipeline. Part 4. Lesson 211:00

    Explore advanced PowerShell filter syntax, using $PSItem and $character underscore, with single or multiple criteria, and learn to optimize by filtering left in the pipeline.

  • Course Overview0:44

    Explore PowerShell pipeline basics and object enumeration in this course overview. Learn how Windows PowerShell passes objects between commands and the two techniques used to construct complex command lines.

  • Section 1 Overview0:32
  • Enumeration (ForEach-Object)8:47

    Explore enumeration in PowerShell with ForEach-Object, using basic and advanced syntax to run methods, access properties, and script blocks on objects, including examples like encrypting files and listing processes.

  • LAB 1. Enumerating Objects in the Pipeline2:54

    This lab 1 session guides you through PowerShell and Windows Server tasks, including enumerating certificates and their key algorithms, creating random numbers, and invoking WMI methods.

  • LAB 1 Answers. Enumerating Objects in the Pipeline2:34

    Enumerate certificates and their key algorithms using get-childitem sort recurse, get-member, and forEach getKeyAlgorithm; generate 100 random numbers with getRandom and setSeed; reboot using getWmiObject.

  • Section 2 Overview0:46

    Explore the first PowerShell pipeline technique, ByValue, and learn how commands receive input, pass data with ByDefault, override the pipeline with manual parameters, and use parenthetical commands.

  • Command Input is Only by Parameter6:36
  • Manual Parameters Override the Pipeline5:02

    Master how manually specifying a parameter stops pipeline input binding in PowerShell, and see examples with Get-Content, Get-Service, and Get-Process to illustrate pipeline binding versus parasyntical input.

  • Section 3 Overview0:35

    Explore the ByPropertyName technique for passing data in the Windows PowerShell pipeline, learn to display object properties, identify parameters that accept ByPropertyName input, and expand properties into simple values.

  • Changing to ByPropertyName5:03

    Explore how PowerShell switches from ByValue to ByPropertyName for pipeline input, inspect object properties, and import CSV data to create new AD users with ByPropertyName parameters.

  • Expanding Property Values6:35

    Expand property contents in PowerShell by using parenthetical commands and the expand-property option to extract strings from objects, enabling domain-wide commands like Get-Process or Get-Service with a computer name parameter.

  • LAB 2. Enumerating Objects in the Pipeline5:49

    Preview PowerShell pipeline behavior, predict command interactions, and write pipeline-enabled commands to enumerate services, query domain computers, and manage event logs without executing them.

  • LAB 2. Answers. Enumerating Objects in the Pipeline4:44

    Explore lab 2 tasks on PowerShell pipeline input, including displaying recent 50 system event log entries and using commands like GetService, GetContent, RestartComputer, TestConnection, and SetService with ByPropertyName and ByValue.

  • Course Overview0:44
  • PSProviders Section Overview0:35

    Learn to enumerate objects in the pipeline to work with one object at a time. Then explain the purpose of enumeration using basic syntax and advanced syntax.

  • What are Providers2:58

    PowerShell providers act as adapters that make external data stores resemble a disk drive within Windows PowerShell, enabling dynamic, folder-like items and properties managed with familiar commands, such as get-child-item.

  • Accessing Providers' Help and Capabilities. Demo3:32

    Learn to access and explore PowerShell providers in Windows Server, view capabilities with get-psprovider, load modules like Active Directory, and use provider help and transactions, filtering, and credentials.

  • PSDrives Section Overview0:47

    Explore PS drives and manage a file system by navigating a PS drive, creating and modifying items and item properties using a PS provider.

  • What are Drives8:22
  • Lab 1. Using PSDrives and PSProviders4:39

    Master PS drives and PS providers by creating items, mappings, and properties, then configure a registry key and run entries across hkey_current_user and hkey_local_machine, and adjust WSMan remoting settings.

  • Lab Answers 1. Using PSDrives and PSProviders3:12

    Explore configuring a PS environment with PSDrives and PSProviders, creating folders, PS drives, registry keys, and settings, and adjusting WS-Management settings using New-Item, New-PSDrive, and related cmdlets.

  • Using PSDrives and PSProviders Review1:00
  • Course Review and Takeaways2:41
  • Course Overview0:30

    Advance your PowerShell skills in this part two course, exploring how to enumerate objects in the pipeline and how Windows PowerShell passes objects between commands using two techniques.

  • Using Basic Formatting Section Overview0:39

    Enumerate objects in the pipeline to work with one object at a time using basic and advanced syntax.

  • Default Formatting. Wide Lists. Lists. Tables. Demo6:59
  • Using Advanced Formatting Section Overview0:42

    Master advanced formatting options in Windows PowerShell, including creating custom list entries and colons, sorting and grouping table output, and distinguishing between select object and format cmdlets.

  • Custom List Entries and Columns. Sorted and Grouped Tables. Select or Format?4:16

    Learn how PowerShell format commands use calculated properties and keys like N, E, and FormatString with select-object, and how formattable supports groupby, align, and widths for sorted or grouped output.

  • Redirecting Formatted Output Section Overview0:45
  • The Output of a Format Command3:52
  • Redirecting Formatted Output. Using Grid Views. Demos4:29
  • LAB 1. Formatting Output6:42
  • LAB 1 Answers. Formatting Output7:48

    Format command output in powershell to generate polished system information, process tables, tcp/ip routes, and file/event log reports, using calculated properties and redirection.

  • Course Review and Takeaways2:36

    Review course takeaways and lab review, noting sendMailMessage attachments, OutGridView for end-user output, and best practices for formatting versus reporting with SQL Server and SSRS.

  • Querying Management Information by Using WMI and CIM Course Overview0:58

    Explore PowerShell pipelines by enumerating objects and passing them between commands, and learn the two techniques PowerShell uses to transfer objects, enabling you to build more useful, complex commands.

  • Understanding WMI and CIM Section Overview0:49

    Discover how to enumerate objects in the PowerShell pipeline to work with one object at a time, using basic and advanced WMI and CIM syntax.

  • Architecture and Technologies8:06
  • The Repository. Finding Documentation. Demonstration.3:51

    Explore how the repository organizes namespaces and classes, how instances provide properties and methods, and how to locate online documentation for WMI and SIM using internet searches.

  • Querying Data by Using WMI and CIM Section Overview0:50

    Learn to work with PowerShell drives, navigate a PS Drive, and create or modify items and properties, with context on querying data using WMI and CIM.

  • Listing Namespaces, Classes. Demo8:35

    Learn to list WMI namespaces and classes with Windows PowerShell, including local and remote queries using root-simv2, get-wmiobject, and sorting, plus tab completion and sim versus win32 prefixes.

  • Querying Instances. Demo6:39
  • Remote Computers. Demo7:35

    Query remote computers with WMI and SIEM using -computername and -credential for connections. Create persistent SIEM sessions to improve performance when querying multiple classes.

  • Making Changes by Using WMI and CIM Section Overview0:36
  • Discovering and Finding Methods. Demo5:48

    Explore discovering and using methods on repository objects in PowerShell, using get-member to reveal the change method on service classes, and consult online documentation for required arguments.

  • Invoking Methods. Demo7:06
  • Lab: Working with WMI and CIM8:53

    Query management information across local and remote computers using WMI and CIM, then use SIEM commands to retrieve IP addresses, OS version, hardware, and services.

  • Lab Answers: Working with WMI and CIM9:42

    Build mastery of PowerShell and Windows Server labs by displaying the date, listing hotfixes, filtering firewall rules, enumerating network neighbors, and inspecting the DNS client cache with core cmdlets.

  • The Weekly Server Report: From Request to PowerShell Pipeline
  • Course Review and Takeaways5:02

    Review lab takeaways on WMI and SIEM, their protocol differences and remoting, common issues, and practical tips like using SIEM commands and PowerShell Scriptomatic.

  • Enabling Scripts on Your Machine. Setting Execution Policy8:15

    Explore Windows PowerShell execution policies—restricted, all-signed, remote-signed, and unrestricted—and learn how to check, change, and test policies using getExecutionPolicy, setExecutionPolicy, and registry edits.

  • Using Variables. Part 13:14

    Learn variables as temporary storage for objects and arrays, and how to create, manage, and use them for calculations in Windows PowerShell.

  • Using Set-Variable cmdlet and_Related Cmdlets10:47

    Master setting and manipulating variables in Windows PowerShell using set-variable and related cmdlets, including get-variable, clear-variable, and remove-variable, with scope, include/exclude, pass-through, and what-if options.

  • Using the read-host Cmdlet4:16

    Read inputs from the command line with the read-host cmdlet, using the prompt parameter and asSecureString to mask passwords, and see how password values become system.security.secureString objects within script scope.

  • Using the write-host Cmdlet6:43
  • Using Operators. Part 14:02

    Learn PowerShell operators, including arithmetic, assignment, comparison, logical, unary, and special operators, with practical examples and precedence rules for evaluating expressions.

  • Using Operators. Part 2. The Assignment Operators5:51
  • Using Operators. Part 4 Logical and Unary Operators4:54

    Discover how Windows PowerShell uses logical operators (and, or, not) and unary operators to test conditions, and see pre- and post-increment behavior with practical examples.

  • Parameterizing Changing Values8:46

    Test commands in the Windows PowerShell console with test values, then parameterize changing values using a param block and commandletbinding to fetch security event log entries.

  • Write-Verbose and Comment Based Help6:16
  • Lab 1. Moving from Command to Script6:25
  • Lab1 Answers: Moving from Command to Script3:31

    Learn to move from command to script in PowerShell by parameterizing disk queries, configuring execution policy, and building get diskinfo.ps1 with computer name and drive type parameters.

  • Wrapping a Script in a Function2:27
  • Demonstration: Testing the Function. Uderstanding Scopes1:35

    Explore how PowerShell scopes containerize shell elements, including global, script, and function scopes, and test a function inside a script by editing and running it.

  • Creating a Script Module2:49
  • Adding Debugging Breakpoints1:30

    Master PowerShell debugging by using write debug and the debug parameter, pause execution, suspend scripts, view variables, and rely on inline documentation to start debugging immediately.

  • Lab B Tasks: Moving from Script to Function to Module4:07

    Move the Lab B task from script to function to module by wrapping code in getDiskInfo, packaging as a script module, testing with localhost, and adding debugging breakpoints in MyTools.

  • Lab B Solution: Moving from Script to Function to Module9:36

    Exercise1-Task1.ps1


    <#

    .SYNOPSIS

    Retrieves disk space information.

    .DESCRIPTION

    Retrieves disk information from a single computer.

    .PARAMETER ComputerName

    The name of the computer to query.

    .PARAMETER DriveType

    The type of drive to query. Defaults to 3,

    representing local fixed disks.

    .EXAMPLE

    .\Get-DiskInfo -ComputerName localhost -Verbose

    #>

    [CmdletBinding()]

    Param(

        [Parameter(Mandatory=$True)][string]$ComputerName,

        [int]$DriveType = 3

    )


    Write-Verbose "Getting drive types of $DriveType from $ComputerName"


    Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=$DriveType" -ComputerName $ComputerName |

    Select-Object -Property @{n='DriveLetter';e={$PSItem.DeviceID}},

                            @{n='FreeSpace(MB)';e={"{0:N2}" -f ($PSItem.FreeSpace / 1MB)}},

                            @{n='Size(GB)';e={"{0:N2}" -f ($PSItem.Size / 1GB)}},

                            @{n='FreePercent';e={"{0:N2}%" -f ($PSItem.FreeSpace / $PSItem.Size * 100)}}


    Exercise1-Task2.ps1

    function Get-DiskInfo {

        <#

        .SYNOPSIS

        Retrieves disk space information.

        .DESCRIPTION

        Retrieves disk information from a single computer.

        .PARAMETER ComputerName

        The name of the computer to query.

        .PARAMETER DriveType

        The type of drive to query. Defaults to 3,

        representing local fixed disks.

        .EXAMPLE

        .\Get-DiskInfo -ComputerName localhost -Verbose

        #>

        [CmdletBinding()]

        Param(

            [Parameter(Mandatory=$True)][string]$ComputerName,

            [int]$DriveType = 3

        )


        Write-Verbose "Getting drive types of $DriveType from $ComputerName"


        Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=$DriveType" -ComputerName $ComputerName |

        Select-Object -Property @{n='DriveLetter';e={$PSItem.DeviceID}},

                                @{n='FreeSpace(MB)';e={"{0:N2}" -f ($PSItem.FreeSpace / 1MB)}},

                                @{n='Size(GB)';e={"{0:N2}" -f ($PSItem.Size / 1GB)}},

                                @{n='FreePercent';e={"{0:N2}%" -f ($PSItem.FreeSpace / $PSItem.Size * 100)}}

    }


    Exercise1-Task3.ps1

    function Get-DiskInfo {

        <#

        .SYNOPSIS

        Retrieves disk space information.

        .DESCRIPTION

        Retrieves disk information from a single computer.

        .PARAMETER ComputerName

        The name of the computer to query.

        .PARAMETER DriveType

        The type of drive to query. Defaults to 3,

        representing local fixed disks.

        .EXAMPLE

        .\Get-DiskInfo -ComputerName localhost -Verbose

        #>

        [CmdletBinding()]

        Param(

            [Parameter(Mandatory=$True)][string]$ComputerName,

            [int]$DriveType = 3

        )


        Write-Verbose "Getting drive types of $DriveType from $ComputerName"


        Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=$DriveType" -ComputerName $ComputerName |

        Select-Object -Property @{n='DriveLetter';e={$PSItem.DeviceID}},

                                @{n='FreeSpace(MB)';e={"{0:N2}" -f ($PSItem.FreeSpace / 1MB)}},

                                @{n='Size(GB)';e={"{0:N2}" -f ($PSItem.Size / 1GB)}},

                                @{n='FreePercent';e={"{0:N2}%" -f ($PSItem.FreeSpace / $PSItem.Size * 100)}}

    }


    Get-DiskInfo -ComputerName localhost


    Exercise2-Task1.ps1

    function Get-DiskInfo {

        <#

        .SYNOPSIS

        Retrieves disk space information.

        .DESCRIPTION

        Retrieves disk information from a single computer.

        .PARAMETER ComputerName

        The name of the computer to query.

        .PARAMETER DriveType

        The type of drive to query. Defaults to 3,

        representing local fixed disks.

        .EXAMPLE

        .\Get-DiskInfo -ComputerName localhost -Verbose

        #>

        [CmdletBinding()]

        Param(

            [Parameter(Mandatory=$True)][string]$ComputerName,

            [int]$DriveType = 3

        )


        Write-Verbose "Getting drive types of $DriveType from $ComputerName"


        Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=$DriveType" -ComputerName $ComputerName |

        Select-Object -Property @{n='DriveLetter';e={$PSItem.DeviceID}},

                                @{n='FreeSpace(MB)';e={"{0:N2}" -f ($PSItem.FreeSpace / 1MB)}},

                                @{n='Size(GB)';e={"{0:N2}" -f ($PSItem.Size / 1GB)}},

                                @{n='FreePercent';e={"{0:N2}%" -f ($PSItem.FreeSpace / $PSItem.Size * 100)}}

    }


    Get-DiskInfo -ComputerName localhost


    Exercise2-Task2.ps1

    function Get-DiskInfo {

        <#

        .SYNOPSIS

        Retrieves disk space information.

        .DESCRIPTION

        Retrieves disk information from a single computer.

        .PARAMETER ComputerName

        The name of the computer to query.

        .PARAMETER DriveType

        The type of drive to query. Defaults to 3,

        representing local fixed disks.

        .EXAMPLE

        .\Get-DiskInfo -ComputerName localhost -Verbose

        #>

        [CmdletBinding()]

        Param(

            [Parameter(Mandatory=$True)][string]$ComputerName,

            [int]$DriveType = 3

        )


        Write-Verbose "Getting drive types of $DriveType from $ComputerName"


        Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=$DriveType" -ComputerName $ComputerName |

        Select-Object -Property @{n='DriveLetter';e={$PSItem.DeviceID}},

                                @{n='FreeSpace(MB)';e={"{0:N2}" -f ($PSItem.FreeSpace / 1MB)}},

                                @{n='Size(GB)';e={"{0:N2}" -f ($PSItem.Size / 1GB)}},

                                @{n='FreePercent';e={"{0:N2}%" -f ($PSItem.FreeSpace / $PSItem.Size * 100)}}

    }


    Exercise3.ps1

    function Get-DiskInfo {

        <#

        .SYNOPSIS

        Retrieves disk space information.

        .DESCRIPTION

        Retrieves disk information from a single computer.

        .PARAMETER ComputerName

        The name of the computer to query.

        .PARAMETER DriveType

        The type of drive to query. Defaults to 3,

        representing local fixed disks.

        .EXAMPLE

        .\Get-DiskInfo -ComputerName localhost -Verbose

        #>

        [CmdletBinding()]

        Param(

            [Parameter(Mandatory=$True)][string]$ComputerName,

            [int]$DriveType = 3

        )


        Write-Verbose "Getting drive types of $DriveType from $ComputerName"



        Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=$DriveType" -ComputerName $ComputerName |

        Select-Object -Property @{n='DriveLetter';e={$PSItem.DeviceID}},

                                @{n='FreeSpace(MB)';e={"{0:N2}" -f ($PSItem.FreeSpace / 1MB)}},

                                @{n='Size(GB)';e={"{0:N2}" -f ($PSItem.Size / 1GB)}},

                                @{n='FreePercent';e={"{0:N2}%" -f ($PSItem.FreeSpace / $PSItem.Size * 100)}}

    }


    Exercise3-Task2.ps1

    function Get-DiskInfo {

        <#

        .SYNOPSIS

        Retrieves disk space information.

        .DESCRIPTION

        Retrieves disk information from a single computer.

        .PARAMETER ComputerName

        The name of the computer to query.

        .PARAMETER DriveType

        The type of drive to query. Defaults to 3,

        representing local fixed disks.

        .EXAMPLE

        .\Get-DiskInfo -ComputerName localhost -Verbose

        #>

        [CmdletBinding()]

        Param(

            [Parameter(Mandatory=$True)][string]$ComputerName,

            [int]$DriveType = 3

        )


        Write-Verbose "Getting drive types of $DriveType from $ComputerName"


        Write-Debug "About to query $computername"


        Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=$DriveType" -ComputerName $ComputerName |

        Select-Object -Property @{n='DriveLetter';e={$PSItem.DeviceID}},

                                @{n='FreeSpace(MB)';e={"{0:N2}" -f ($PSItem.FreeSpace / 1MB)}},

                                @{n='Size(GB)';e={"{0:N2}" -f ($PSItem.Size / 1GB)}},

                                @{n='FreePercent';e={"{0:N2}%" -f ($PSItem.FreeSpace / $PSItem.Size * 100)}}

    }



  • Understanding Error Actions3:34

    Understand terminating and non-terminating errors in PowerShell, and control flow with error action preference (continue, silently continue, enquire, stop) and the error action parameter to trap and handle errors.

  • Try...Catch Constructs2:08

    Master error handling in Windows PowerShell with try, catch, finally; learn how to use error action stop and optional finally, with multiple catch sections.

  • Logging Errors1:41

    Capture PowerShell errors with the built-in $error array (first item is most recent) and the $ev alias; $error is global, holds the most recent error, with optional file logging.

  • Demo: Error Actions, Using Try...Catch, Adding Error Logging1:31

    Explore PowerShell error handling with four error actions—continue, silently continue, inquire, and stop—alongside try, catch constructs and error logging using the error variable.

  • Lab C Tasks: Implementing Basic Error Handling2:53

    Develop basic error handling in PowerShell by adding robust error traps and verbose output to functions, tested through lab scenarios using Get-CIMInstance.

  • Lab C Solution: Implementing Basic Error Handling5:09

    Master basic error handling in Windows PowerShell by adding try and catch to functions, logging errors, and validating script behavior through tests and verbose output.

  • Lab C Review0:38

    Learn to add configurable error logging to a script by exposing a parameter for the log file name, providing a default, and emitting verbose notices in production environments.

  • Lesson 4: Using Basic Scripting Constructs1:37

    Learn three of Windows PowerShell's frequently used scripting constructs to empower beginners to automate processes with short scripts and reusable tools, using logical decisions, choices, and object enumeration loops.

  • The If Construct2:20

    Learn to use the if construct in PowerShell to make decisions, with a mandatory if section, conditions in parentheses, script blocks, and else if and else sections evaluated in order.

  • The Switch Construct2:51

    Master the switch construct: it matches a value against multiple possibilities, executes matching script blocks, and uses a default when no match. Use wildcard patterns and break to control matches.

  • The ForEach Construct2:17

    Demonstrates how the foreach construct enumerates a collection of objects one at a time, contrasts its syntax with foreach-object and its alias foreach, and shows readable script examples.

  • Demo: The If Construct, The ForEach Construct1:49

    Demonstrate the if construct by checking the drive type property and displaying a message accordingly. Enumerate four computer names, process one target at a time, and handle errors with GetCIMInstance.

  • The Clean-Up Script That Went Too Far: Making It Safe
  • PowerShell Remoting Overview and Architecture. Part 16:15

    Explore how PowerShell remoting enables secure, scalable remote server management via WS-Management and WinRM, with architecture components, configurations, and cross-version compatibility.

  • PowerShell Remoting Overview and Architecture. Part 28:07

    Learn the PowerShell remoting architecture, including http port 5985 with optional https 5986, endpoints, and the flow from remote command execution to XML serialization and deserialization.

  • Part 15:54

    Identify the target network adapter with get-netadapter and note its interface alias or index, then disable DHCP and apply static IPv4 and IPv6 settings with set-netipinterface and new-netipaddress.

  • Part 23:07

    Configure the first domain controller as DNS by setting DNS server addresses with set-dns-client-server-address using the interface alias. Rename the server to lab-dc1 and restart to prepare for forest deployment.

  • Part 38:12

    Install Active Directory Domain Services with install-windows-feature, including management tools, then use the ADDS deployment module to prepare, test prerequisites, and promote a server to a domain controller.

  • Part 46:42

    Deploy the first domain controller and root active directory domain services forest with Install-ADDSForest, using no dns on network, force, and optional safe-mode password; review domain and forest functional levels.

  • Part 16:40

    Configure DNS server and manage DNS zones with Windows PowerShell; learn about primary, secondary, and stop zones, Active Directory integrated primary zones, forward and reverse lookup, and zone files.

  • Part 25:00

    Create a reverse lookup zone with the network ID parameter, enabling Active Directory integrated replication across the forest and both secure and non-secure dynamic updates; export to a file.

  • Part 31:28

    Install active directory domain services and DNS server role on a new domain controller using server manager's graphical user interface, then promote it for testing and future secondary zones.

  • Part 42:08

    Add a domain controller to an existing contoso domain, configure dsrm in directory services restore mode, replicate from labdc1.contoso.com, set ad ds databases on ntfs, and complete the installation.

  • Part 55:36

    Demonstrates restoring a secondary DNS zone from a backup file, configuring master and secondary servers, and securing zone transfers with set-dns-server-primary-zone options.

  • Part 66:20

    Configure DNS stub zones and conditional forwarders to control name resolution. Assess security implications and implement stub zones, file-based or Active Directory integrated, to minimize exposure to named servers.

  • Part 715:39

    Master DNS zone delegation and core resource records with PowerShell, including add-dnsserver-zone-delegation and set-dnsserver-zone-delegation, and manage A, CNAME, MX, NS, and SRV records.

  • Part 18:57

    Learn to create and manage Active Directory users, groups, and OUs using Windows PowerShell, including creating users with new-adUser, assigning to groups with add-adGroupMember, and bulk imports via import-csv.

  • Part 28:44
  • Part 37:30

    Create and manage Active Directory organizational units with new-ad-organizational-unit, set display name and description, protect from accidental deletion, then move objects with move-ad-object after locating them with get-ad-user and get-ad-organizational-unit.

  • Part 49:30
  • Part 59:24
  • Part 111:30

    Master managing active directory objects by creating, modifying, enabling, disabling, moving, and deleting user and computer accounts using PowerShell cmdlets.

  • Part 27:02
  • Part 39:10

    Modify and manage Active Directory user accounts using PowerShell and GUI tools; learn bulk updates, view attributes with Get-ADUser, and use Set-ADUser to update description and other properties.

  • Part 40:53

    Use the add-adgroupmember cmdlet to grant James the same security groups as the administrator by enumerating the admin’s groups with get-aduser and adding James to each group.

  • Part 57:46

    Update office, home, and mobile numbers for multiple Active Directory users with PowerShell. Identify attributes, use csv data, and apply bulk updates with Set-ADUser.

  • Part 68:25

    Learn bulk enable and disable of Active Directory objects with enable-ad account and disable-ad account, using DN, GUID, SID, or sam account names. Move objects between OUs with move-ad-object.

  • Part 73:10

    Delete and manage Active Directory user accounts with remove-ad-user or remove-ad-object using the identity parameter, bypass prompts with -confirm:$false, and delete from a text file via get-content.

  • Part 110:42

    Manage computer objects in Active Directory with PowerShell by creating, modifying, enabling or disabling, and moving computer accounts using New-ADComputer, Set-ADComputer, and Move-ADObject, including prestaging for deployment.

  • Part 26:15

    Learn to manage Active Directory computer accounts by enabling, disabling, and deleting stale or offline objects with get-adcomputer, enable-adaccount, disable-adaccount, and remove-adcomputer, using last-logon-date and OU filters.

  • Part 113:50

    Learn to create and manage Active Directory security groups (domain-local, global, universal), search and modify groups with Get-ADGroup and Set-ADGroup, and manage group memberships including adding, removing, and deleting groups.

  • Part 27:30

    Learn to add members to security groups in Active Directory using get-adgroupmember and add-adgroupmember, including single, multiple, and OU-based additions, plus copying between groups and verifying in ADUC.

  • Part 35:07

    Add computer accounts to security groups by appending a dollar sign to the computer name, and use Get-ADComputer and add-adgroup member to automate grouping by name patterns.

  • Part 45:50

    Nest security groups in active directory by adding one group to another, and understand universal, global, and domain-local group scopes.

  • Part 512:40

    List security group members in Active Directory with Get-ADGroupMember, including nested groups, and export results to CSV. Remove members and delete groups with Remove-ADGroupMember and Remove-ADGroup from CSV.

  • The Microsoft Group Policy PowerShell Module5:10

    Discover the Microsoft Group Policy PowerShell module for GPO management, covering cmdlets like get gpo, backup gpo, new starter gpo, and invoke gp update, plus gpo link and inheritance concepts.

  • Demo The Microsoft Group Policy PowerShell Module3:38

    Learn to use the Microsoft group policy PowerShell module to retrieve and inspect GPOs with Get-GPO, connect to different domains or DCs, and modify GPO status via PowerShell.

  • Basic GPO Management With PowerShell5:29

    Learn to manage group policy objects with PowerShell, including creating, renaming, deleting, counting, and linking GPOs, plus setting permissions, backing up, restoring, and importing policies.

  • Demo Basic GPO Management With PowerShell5:29
  • Part 15:03

    Compare graphical server manager and powershell to install IIS on Windows Server, emphasizing minimal components to reduce attack surface, and using Get-WindowsFeature and Add-WindowsFeature for rapid web server deployment.

  • Part 23:27
  • Part 34:58

    Explore how websites act as file-server containers and learn to configure the default website and its sites and applications using IIS Manager and PowerShell.

  • Part 44:26

    Test the default website by loading it in a browser to verify the web server is running, and explore its files under inetpub/wwwroot using the web administration module in PowerShell.

  • Part 55:20

    Navigate the IIS folder structure with File Explorer or the Explore option in the IIS Manager, create a simple default webpage in inetpub/wwwroot with Notepad, and test with Internet Explorer.

  • Part 65:35

    Install ASP or ASP.NET components using PowerShell or Server Manager, create a dynamic ASP page displaying server variables, and configure default documents for testing across sites.

  • Part73:46
  • Part 83:30
  • Part 911:05

    Configure HTTP2 on IIS 10, test with an ASP.NET web app, and enable push and HPEG header compression. Verify browser support, and adjust logs and the duo-enabled registry setting.

  • Part 106:21
  • Part 117:54

    Connect to the nano server using enter-pssession, import the IIS administration module, and manage websites with PowerShell by creating a nano site and a nano site dot com on port 8080.

  • Part 1210:27

    Enable IIS remote management across Nano Server and Core Server using PowerShell remoting by installing the web-mgmt-service role, enabling and starting the WMSVC service, and configuring self-signed or trusted certificates.

  • Part 136:36
  • Part 11:18
  • Part 22:16
  • Part 33:28
  • Part 43:19

    Authorize dhcp servers in the domain controller with add dhcp server in dc, verify with get dhcp server in dc, and remove unwanted servers with remove dhcp server in dc.

  • Part 50:42

    Learn where DHCP files reside by default in Windows32 and System32, locate them with the DHCP asterisk, and inspect the DHCP database in the DHCP folder using dir and dhcp.mdb.

  • Part 60:56
  • Part 73:50

    Add a second DHCP server from one console, create a 10.20.scope from 10.20 to 10.40, exclude 10.20–10.25, set lease duration, router and DNS options, and activate later.

  • Part 86:18

    Adjust scope properties, including start and end IP addresses and duration, and configure scope options like time server, DNS servers, DNS domain, and router.

  • Part 95:21
  • Part 107:18

    Create and manage superscopes in dhcpserver by linking existing scopes, renaming, deactivating, and deleting, using PowerShell commands for superscopes with administrative privileges.

  • Part 112:45

    Explore dhcp scopes and server policies, then test a scope policy for mac address filtering. Create a test policy named project 1 to assign ip addresses to matching macs.

  • Part 124:16

    Master essential DHCP PowerShell commands, including get-command for the DHCP module and restarting the DHCP server. Use import CSV for reservations and backup or restore the DHCP server.

  • Lesson 10:47

    Explore fundamentals of PowerShell in Windows Server 2016, including overview and background, learning and finding commands, and running commands as part of a three-part bootcamp.

  • Lesson 21:14

    Explore the background and purpose of Windows PowerShell, learn its system requirements, and how to open, configure the two native Windows PowerShell hosting applications, and view version information.

  • Lesson 32:03

    Explore Windows PowerShell as an object-oriented engine for administrative automation, usable as a CLI or embedded in GUI apps, with commands like cmdlets, functions, and workflows.

  • Lesson 40:59
  • Lesson 52:26
  • Lesson 60:35
  • Lesson 71:56

    Select the appropriate PowerShell host for your OS, choosing 64-bit versions or the 32-bit x86 when needed, and run as administrator to confirm elevated credentials and Administrator in the title.

  • Lesson 80:23

    Configure the console for readability by choosing a true type font, adjusting the size and layout to avoid horizontal scrolling, and enabling quick edit mode for copy/paste.

  • Lesson 92:48

    Configure the PowerShell console, master copy-paste and history navigation with F7 and arrows, run as administrator, customize font and layout, and start transcript for session logging via Get-History.

  • Lesson 102:20

    Explore the PowerShell ISE, a graphical script editor with debugging and an interactive console. Learn to use its two-pane layout, dockable command pane, and customizable themes and snippets.

  • Lesson 112:06

    Open the Windows PowerShell ISE as administrator, then dock, undock, and close the command pane, adjust layout and font size, and change the theme via the Tools menu.

  • Lesson 121:54

    Learn to use the Windows PowerShell help system to discover commands, correct command syntax, and use aliases; practice finding commands through keyword searches and updating local help for lab readiness.

  • Lesson 131:09
  • Lesson 140:50

    Discover how Windows PowerShell provides in-product help with get-help, help, and man, including -showwindow and -example usage, and learn about -recurse, the get-child-item command, and online or updatable help.

  • Lesson 157:37

    Utilize PowerShell built-in help and get-command to discover commands, with module auto-loading paving on-demand access; use wildcard searches and get-module to explore verbs and noun prefixes.

  • Lesson 165:27
  • Lesson 172:32

    Learn how Windows PowerShell retrieves help through online services, updateable help, and local save options. Understand how update-help and save-help handle language defaults, internet requirements, and module scope.

  • Lesson 181:30

    Explore Windows PowerShell help files that cover scripting language concepts, operators, and global shell techniques, and learn to use help about, help topic, and wildcard patterns for lab-ready reference.

  • Lesson 190:45

    Learn to run PowerShell commands with full syntax, supply multiple parameter values, and use shortened command syntax, including the show command, to execute configuration changes.

  • Lesson 201:39

    Learn the full syntax of Windows PowerShell commands, including verb-noun forms, dash-prefixed parameters, and the role of tab completion and spacing for accurate usage.

  • Lesson 213:14
  • Lesson 222:12

    Discover how PowerShell supports aliases, positional parameters, and truncated parameter names, and why tab completion with full names improves readability and maintainability. Aliases like get-service and gsv illustrate shorter forms.

  • Lesson 230:43
  • Lesson 243:21

    Explore how windows powershell uses what-if and confirm to test and control command execution. Understand confirm impact levels and how $confirmPreference and $what -ifPreference govern prompts in a session.

  • Lesson 250:59
  • Lesson 260:40
  • Lesson 272:02

    PowerShell uses pipelines with vertical bars to pass output left to right between commands; the console shows only the last command's result and supports multi-line input via the grave accent.

  • Lesson 281:31

    Learn to chain get-service into pipelines in PowerShell, then use outfile to create service-list.txt or the greater-than symbol to write the same results to a file.

  • Lesson 292:21
  • Lesson 302:56

    Explore object members in Windows PowerShell, including properties, methods, and events; learn to list them with GetMember, inspect type names like System.ServiceProcess.ServiceController, and understand caveats with what-if and pipeline usage.

  • Lesson 311:49
  • Lesson 320:31

    Sort, select, and measure objects in the pipeline using PowerShell commands, learn to sort on a specified property, measure numeric properties, and display customized object views.

  • Lesson 3310:12
  • Lesson 347:57
  • Lesson 350:32

    Learn how Windows PowerShell converts data between formats, redirects output to files, and exports and imports objects to and from external storage.

  • Lesson 368:42

    Understand how PowerShell converts pipeline objects to HTML, CSV, or XML using convert-to and export, and how out-file writes data to files, not the pipeline.

  • Lesson 375:02
  • Lesson 380:44
  • Lesson 395:41

    Learn to filter PowerShell objects by property using comparison operators, with case-insensitive string tests and advanced operators like -like, -in, -contains, and -match, plus basic vs advanced syntax.

  • Lesson 4011:03
  • Introduction to PowerShell Key Concepts16:07
  • ISE-toolbar-screencast5:20
  • Using-help2:29

    Learn how to access and read PowerShell help for the rename computer command, using parameters such as computer name, remote rename, confirm, force, local credentials, and what-if with examples.

  • Using-help. Lesson25:11

    Learn to restart computers with the Restart-Computer command, use Get-Help and Get-ComputerInfo, and run local or remote restarts with examples including restarting multiple machines or as a job.

  • Save-Help2:27

    Learn to download and install current PowerShell help with update-help, observe daily limits, and save to a local destination with save-help-destination-path.

  • Turn-on-remoting-in-a-non-domain-environment6:18

    Enable PowerShell remoting in a non-domain environment by running the quickconfig command in an interactive PowerShell prompt, configure the network profile to private, and trust hosts to establish ps sessions.

  • Using-PS-Session7:13
  • Using-the-Best-Practice-Analyzer5:11

    Explore how the best practice analyzer (bpa) assesses Windows Server configurations against Microsoft best practices, reports violations, and guides fixes using module scans like Microsoft Windows file services.

  • Enabling-Disabling-Firewall-Profiles-and-Creating-Firewall-Rules6:22

    Manage Windows firewall by enabling or disabling domain, private, and public profiles with set-netfirewallprofile, preview changes with what-if, and create inbound program rules using new-netfirewallrule for Skype.

  • Finding-and-Installing-New-Roles-and-Features5:07

    Explore server roles and features with the server manager module, list installed items via get-windowsfeature, view features, and install telnet client with include all sub feature and include management tools.

  • dir.ls.get-children3:25

    Explore powershell directory navigation with dir, ls, and get-children, including reading registry access, paging results with more, and comparing set location and cd across paths.

  • PSDrive.NewItem.SetContent14:51
  • PipeLIneAndObejectsPropertiesAndMrthods10:45

    Explore PowerShell pipeline mechanics to chain commands like Get-Service, sort by status, and Select-Object; inspect properties, methods, and type name with Get-Member, and control services by stop and start.

  • PipeLIneAndObejectsPropertiesAndMrthods. Part28:45

    Master piping and working with service objects in PowerShell by exporting to CSV, importing CSV, and using get-member, select-object, and format-table to manipulate real objects rather than text.

  • WhereObject.SelectObject17:24

    Explore sorting, selecting, and filtering PowerShell drive objects, create a kilobyte size property, and inspect file and process attributes, including virtual memory size, via where-object and like patterns.

  • theory2-DNS11:33

    Explore recursive versus interactive DNS queries, forwarders, and zone types—primary, secondary, and stub—including AD-integrated zones and common DNS records like A and CNAME, plus essential troubleshooting tools.

  • theory1-DNS11:01

    Explore DNS in Windows Server, covering naming system, architecture, zone types including de-integrated zones, records, caching, forwarders, and resolver operations from root hints to authoritative servers.

  • demo1-installDNS7:19

    Explore how to remove and install the DNS role on Windows Server using server management tools and PowerShell, including Get-WindowsFeature, Remove-WindowsFeature, Install-WindowsFeature, and restart steps.

  • demo2-StartingDNSManager1:38
  • demo3-ForwardPrimarySecondaryZone-GUI.9:56
  • demo4-1-ReversePrimarySecondaryStubZone-CondForwarder5:39

    Create a primary forward lookup zone with powershell using add dns server primary zone for pstest1.local with forest replication and secure dynamic update, plus a file-based pstest2 zone.

  • Using Operators. Part 3 Comparison Operators3:50
  • demo4-2-ReversePrimarySecondaryStubZone-CondForwarder11:35

    Create and configure reverse lookup zones using both graphical interface and PowerShell, including primary and secondary zones, secure dynamic updates, and conditional forwarders in a forest replication setup.

  • Exploring Format-Wide3:53

    Explore format-wide in PowerShell to display a single property per object in a wide table, using autosize and column controls, and group by status after sorting.

  • Using Formatting Views4:30
  • Formatting Caveats5:47
  • Exploring Out-File8:35

    Discover how Out-File outputs PowerShell data to text files via file-path, with options like append, nonewline, width, and inputobject, plus redirection operators.

  • Exploring Out-String6:13

    Discover how Out-String converts PowerShell objects to strings, compare single-string output with the stream option that returns an array of strings, and why preserving objects matters.

  • Exploring Out-Printer2:56

    Use outprinter to send PowerShell output to a printer, choosing the default or a named printer like Microsoft Print to PDF, and format the data with format list before printing.

  • Exploring Out-Null7:22

    Explore how out-null hides command output by removing it from the pipeline, and compare methods like $null redirection and [void] casting for suppressing output in PowerShell.

  • Exploring Out-Gridview8:12
  • Group, Sort, Select, Measure Objects7:14

    Explore PowerShell object handling by grouping on username, sorting by status, and selecting properties from processes and services. Measure working set with sum and average, then view results with select-object.

  • Working with Objects4:41

    Combine PowerShell commands in the pipeline to retrieve and rank top memory-using processes, files, and event logs, then measure, group, and view results.

  • ForEach Object13:48

    Master the PowerShell pipeline with ForEach-Object, encrypting files per item, and building on-the-fly properties. Use group, measure, select, and parallel execution to manage remote servers and events.

  • Introduction0:30

    Understand how domain controllers authenticate users, the Global Catalog's effect on sign-in, and how DNS and SRV records support ADDS; consider GC placement in single domain environments and multi-domain scenarios.

  • What is Nano Server?7:57

    Prepare Windows Server 2016 with the Hyper-V role, mount installation media, and use PowerShell to generate a nano server image and vhdx, then deploy it via Hyper-V.

  • Overview of installing Nano Server6:06

    Complete nano server post-install tasks, join the server to the adatum domain, and enable Windows PowerShell remoting to configure settings, share files, and manage remoting sessions.

  • Demonstration: Installing Nano Server2:36

    Learn to configure nano server with PowerShell: check and install features using get-windows-feature and install-windows-feature. Use ps-session, get-net-ip-address, bcdedit-enum, and net share to verify networking and shares.

  • Demonstration: Completing post-installation tasks on Nano Server (Domain Join)4:48

    Enable remote management and add nano-srv1, then create an smb share named data and verify a web and file server on nano server with a simple html page.

  • Demonstration: Use Windows PowerShell to configure the settings of Nano Server3:53
  • Demonstration: Performing remote management on Nano Server8:31
  • Creating an IIS website on Nano Server with PowerShell7:54

    Master PowerShell for IIS on nano server: connect with enter-pssession, import the IIS administration module, create nano site dot com, and manage sites with start or stop commands.

  • Discovering PowerShell Commands3:23

    Explore PowerShell 7 with Windows Terminal using get-command to reveal commands and filter by type, verb, or noun. Use wildcards with disk-related commands and learn verbs with get-verb, including mount.

  • Working with Aliases2:22

    Discover aliases in PowerShell, where dir and ls map to getChildItem and gsv to getService, use getCommand and help to reveal targets, parameters, and how to create your own aliases.

  • Using PSReadline4:34

    Explore PS Readline features in PowerShell, including persistent history search with Ctrl+R, inline command predictions from history, and color customization using set PS Readline option and colors.

  • Objects in the Pipeline5:14

    Master the PowerShell pipeline by getting content from services.txt using get-content, piping to get-service and restart-service, and exporting to restart.txt with outfile and passthrough.

  • PowerShell's Format System9:14

    Explore PowerShell's format system, including out-default and out-host, and how format-table and format-list adapt output for strings and objects. Learn to inspect and customize format data.

  • Exploring Format-Table6:56

    Explore how to format output in PowerShell using Format-Table, including grouping, sorting, selecting properties, autosize, wrap, and header controls.

  • Exploring Format-List7:09
  • Part 114:04
  • Part 24:15

    Learn to manage mail-enabled contacts and mail-enabled users with the Exchange Management Shell, using new, enable, disable, and remove cmdlets, and update attributes with set-contact and set-user.

  • Part 35:10
  • Part 49:16

    Manage room and equipment mailboxes with the Exchange Management Shell or ISE, enable auto-accept for booking requests, use delegates, add custom resource properties, and convert mailboxes for efficient scheduling.

  • Part 68:20

    Bulk provision exchange mailboxes using CSV files in the Exchange Management Shell, creating mailboxes with name, alias, user principal name, and organizational unit, with secure passwords and forced password resets.

  • Part 65:24

    Discover how MailTips in Exchange 2010 alert users in Outlook and Outlook Web App, with per-organization and per-mailbox customization using setOrganizationConfig and setMailbox.

  • Part 78:11

    Learn to use recipient filters with the exchange management shell to create dynamic distribution groups, address lists, and email address policies with opas filtering syntax for exchange 2007 and later.

  • Part 86:10

    Use the setMailbox cmdlet with a hashTable of emailAddresses to add or remove addresses for Exchange 2016 recipient types (mailbox, distribution groups, contacts, public folders), including bulk updates.

  • Part 95:15

    Manage mailboxes with PowerShell in Exchange 2016, including moving, exporting, and searching mailboxes. Generate size reports with GetMailboxDatabase and GetMailboxStatistics, filtering by disconnect date, and export to csv.

  • Part 104:33

    Learn to generate mailbox reports in bulk using the Exchange Management Shell, filtering by when-mailbox-created with Get-Date and AddDays, and exporting results to CSV.

  • Part 1115:24

    Learn how Exchange uses move requests and the new move-request cmdlets to move mailboxes, monitor progress, perform bulk moves, and manage archives and reports.

  • Part 1213:17

    Discover how to automate mailbox import and export in Exchange 2010 with server-side cmdlets. Assign the MailboxImportExport role, configure a UNC file share, and monitor export tasks with GetMailboxExportRequest.

  • Part 138:06

    Delete mailbox items with Exchange's search-mailbox, assign mailbox import-export and mailbox search RBAC roles, and use KQL queries to target subjects.

  • Part 145:06

    Configure mailbox storage quotas in the Exchange Management Shell with setMailbox to enforce per-mailbox limits such as IssueWarningQuota, ProhibitSendQuota, and ProhibitSendReceiveQuota, overriding database defaults for Manager users via bulk commands.

  • Part 155:21

    Learn how to restore deleted mailbox items using single-item recovery, the Search Mailbox commandlet, dumpster-only searches, and the Exchange Management Shell with role assignments.

  • Part 163:16

    Retrieve distribution group membership using the exchange management shell, loop through groups, build a custom object with member, recipient type, and group properties, and export to csv.

  • Part 174:56

    Execute bulk operations by using GetContent and ImportCSV to load recipients from text and csv files, then pipe to ForEachObject to add each recipient to a distribution group with AddDistributionGroupMember.

  • Part 186:26
  • Part 194:36

    Learn to manage disabled Active Directory accounts in distribution groups with the Exchange Management Shell, using foreach loops, get-aduser, and exporting a csv of disabled members.

  • Part 207:07

    Configure distribution group naming policies in Exchange using set-organization-config, applying department and state attributes and blocking words, with a default OU. Override with ignore-naming-policy via new-distribution-group or set-distribution-group under RBAC.

  • Part 313:51

    Configure end-user distribution group membership with setDistributionGroup, adjusting memberJoinRestriction and memberDepartRestriction to open or closed, including approval workflows in Outlook and Outlook Web Access.

  • Part 224:18
  • Part 235:56

    Export address lists to CSVs using get-recipient and recipientFilter, select display name and database, and join multivalued SMTP addresses for a complete output.

  • Part 247:06

    Recap essential PowerShell commands for distribution groups, including creating groups, importing from CSV, and managing owners, visibility, and membership.

  • Part 2510:56

    Explore creating, mounting, renaming, and removing mailbox databases with the Exchange Management Shell cmdlets, and understand automatic mailbox distribution across databases.

  • Part 268:27

    Move databases and their log streams to a new location via the Exchange Management Shell using move-database-path, with confirm:false and force for automated offline dismount/remount.

  • Part 275:57

    Configure mailbox database storage limits with setMailboxDatabase to enforce issueWarningQuota, prohibitSendQuota, and prohibitSendReceiveQuota. Manage deleted item retention, mailbox retention, and retainDeletedItemsUntilBackup, with bulk updates via pipelines.

  • Part 284:25
  • Part 296:21

    Learn how to determine the total number of mailboxes in a mailbox database with PowerShell, using getMailboxDatabase with count property or MeasureObject, and produce per-database totals via SelectObject calculated properties.

  • Part 306:06

    Use PowerShell to generate mailbox database reports by calculating average mailbox size per database with getMailboxStatistics, forEach, measure-Object, and formatting with round, -f, and where-Object filtering.

  • Part 3113:59

    Create a database availability group with the New-DatabaseAvailabilityGroup cmdlet, configure an IP-less DAG, set a file share witness, and manage it via PowerShell or GUI.

  • Part 325:06

    Add mailbox servers to a database availability group with the add-database-availability-group-server cmdlet, verify supported Windows Server editions, CNO permissions, and optional automation with get-mailbox and get-exchange-server.

  • Part 3310:48

    Learn to manage Exchange dock networks with the Exchange Management Shell: view, modify, and remove networks; configure replication, MAPI versus replication networks, and encryption and compression settings.

  • Part 3413:03

    Explore adding and removing mailbox database copies with the Exchange Management Shell, monitor copy status, and automate multi-server dock deployments using the newDockMailboxDatabase PowerShell function.

  • Part 357:07
  • Windows Server Administration and PowerShell Comprehensive Practice Exam
  • Practice Test 2: PowerShell and Windows Server
  • Bonus Lecture: What to Learn Next0:17

Requirements

  • Familiarity with general Windows and Microsoft server administration

Description

This course is aimed to IT Pros and is supposed to give the viewer the information they need to know to get started with Powershell and how to manage Windows Server 2016 with its help. 

The goal is to provide coverage of Powershell Fundamental tasks including topics like Active Directory, DNS, DHCP, IIS etc. 

The course is targeted to help to automate and script daily tasks. There are lots of live demonstrations how to use PowerShell commands and a Server's GUI. I hope it will help to do your job more efficiently. 

This course does not have a direct mapping to any exam. However, while there is not a standalone Windows PowerShell exam the topics are covered across all the individual Microsoft Certified Solutions Associate (MCSA) and Microsoft Certified Certified Solutions Expert (MCSE) exams. This course will help prepare you for Windows PowerShell related concepts and processes within those exams.

A Brief Contents of the Course:

  • Windows Server 2016 with PowerShell: Active Directory

  • Powershell and Active Directory Users, Computers, Groups

  • Powershell and DHCP

  • Powershell and DNS

  • Powershell and IIS

  • Powershell Fundamentals

  • Powershell with Pipeline

  • Powershell: Formatting Output

  • Powershell: PSProviders

  • Powershell: PSDrives

  • Using WMI and CIM

  • Powershell and Exchange Server

  • Powershell and Nano Server

  • Preparing for Scripting:

  • Using Variables

  • Using the write-host

  • Parameterizing Changing Values

  • Wrapping a Script in a Function

  • Creating a Script Module

  • Understanding Error Actions

  • Using Scripting Constructs

  • Much more...

Who this course is for:

  • IT Specialists
  • System Administrators
  • DevOps Technicians
  • IT Technicians
  • Junior IT Technicians