diff --git a/students/modules/OpNotes/assets/images/.gitkeep b/students/modules/00_OpNotes/assets/images/.gitkeep
similarity index 100%
rename from students/modules/OpNotes/assets/images/.gitkeep
rename to students/modules/00_OpNotes/assets/images/.gitkeep
diff --git a/students/modules/OpNotes/assets/images/cht.sh-01.png b/students/modules/00_OpNotes/assets/images/cht.sh-01.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/cht.sh-01.png
rename to students/modules/00_OpNotes/assets/images/cht.sh-01.png
diff --git a/students/modules/OpNotes/assets/images/git_01.png b/students/modules/00_OpNotes/assets/images/git_01.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_01.png
rename to students/modules/00_OpNotes/assets/images/git_01.png
diff --git a/students/modules/OpNotes/assets/images/git_02.png b/students/modules/00_OpNotes/assets/images/git_02.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_02.png
rename to students/modules/00_OpNotes/assets/images/git_02.png
diff --git a/students/modules/OpNotes/assets/images/git_03.png b/students/modules/00_OpNotes/assets/images/git_03.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_03.png
rename to students/modules/00_OpNotes/assets/images/git_03.png
diff --git a/students/modules/OpNotes/assets/images/git_04.png b/students/modules/00_OpNotes/assets/images/git_04.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_04.png
rename to students/modules/00_OpNotes/assets/images/git_04.png
diff --git a/students/modules/OpNotes/assets/images/git_05.png b/students/modules/00_OpNotes/assets/images/git_05.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_05.png
rename to students/modules/00_OpNotes/assets/images/git_05.png
diff --git a/students/modules/OpNotes/assets/images/git_06.png b/students/modules/00_OpNotes/assets/images/git_06.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_06.png
rename to students/modules/00_OpNotes/assets/images/git_06.png
diff --git a/students/modules/OpNotes/assets/images/git_07.png b/students/modules/00_OpNotes/assets/images/git_07.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_07.png
rename to students/modules/00_OpNotes/assets/images/git_07.png
diff --git a/students/modules/OpNotes/assets/images/git_08.png b/students/modules/00_OpNotes/assets/images/git_08.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_08.png
rename to students/modules/00_OpNotes/assets/images/git_08.png
diff --git a/students/modules/OpNotes/assets/images/git_09.png b/students/modules/00_OpNotes/assets/images/git_09.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_09.png
rename to students/modules/00_OpNotes/assets/images/git_09.png
diff --git a/students/modules/OpNotes/assets/images/git_10.png b/students/modules/00_OpNotes/assets/images/git_10.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_10.png
rename to students/modules/00_OpNotes/assets/images/git_10.png
diff --git a/students/modules/OpNotes/assets/images/git_11.png b/students/modules/00_OpNotes/assets/images/git_11.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_11.png
rename to students/modules/00_OpNotes/assets/images/git_11.png
diff --git a/students/modules/OpNotes/assets/images/git_12.png b/students/modules/00_OpNotes/assets/images/git_12.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_12.png
rename to students/modules/00_OpNotes/assets/images/git_12.png
diff --git a/students/modules/OpNotes/assets/images/git_13.png b/students/modules/00_OpNotes/assets/images/git_13.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_13.png
rename to students/modules/00_OpNotes/assets/images/git_13.png
diff --git a/students/modules/OpNotes/assets/images/git_14.png b/students/modules/00_OpNotes/assets/images/git_14.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_14.png
rename to students/modules/00_OpNotes/assets/images/git_14.png
diff --git a/students/modules/OpNotes/assets/images/git_15.png b/students/modules/00_OpNotes/assets/images/git_15.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_15.png
rename to students/modules/00_OpNotes/assets/images/git_15.png
diff --git a/students/modules/OpNotes/assets/images/git_16.png b/students/modules/00_OpNotes/assets/images/git_16.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_16.png
rename to students/modules/00_OpNotes/assets/images/git_16.png
diff --git a/students/modules/OpNotes/assets/images/git_17.png b/students/modules/00_OpNotes/assets/images/git_17.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_17.png
rename to students/modules/00_OpNotes/assets/images/git_17.png
diff --git a/students/modules/OpNotes/assets/images/git_workflow.png b/students/modules/00_OpNotes/assets/images/git_workflow.png
similarity index 100%
rename from students/modules/OpNotes/assets/images/git_workflow.png
rename to students/modules/00_OpNotes/assets/images/git_workflow.png
diff --git a/students/modules/OpNotes/examples/.gitkeep b/students/modules/00_OpNotes/examples/.gitkeep
similarity index 100%
rename from students/modules/OpNotes/examples/.gitkeep
rename to students/modules/00_OpNotes/examples/.gitkeep
diff --git a/students/modules/OpNotes/examples/os_modules_000_opnotes_examples_demo-cht.tty b/students/modules/00_OpNotes/examples/os_modules_000_opnotes_examples_demo-cht.tty
similarity index 100%
rename from students/modules/OpNotes/examples/os_modules_000_opnotes_examples_demo-cht.tty
rename to students/modules/00_OpNotes/examples/os_modules_000_opnotes_examples_demo-cht.tty
diff --git a/students/modules/OpNotes/nav.adoc b/students/modules/00_OpNotes/nav.adoc
similarity index 100%
rename from students/modules/OpNotes/nav.adoc
rename to students/modules/00_OpNotes/nav.adoc
diff --git a/students/modules/OpNotes/pages/.gitkeep b/students/modules/00_OpNotes/pages/.gitkeep
similarity index 100%
rename from students/modules/OpNotes/pages/.gitkeep
rename to students/modules/00_OpNotes/pages/.gitkeep
diff --git a/students/modules/OpNotes/pages/Google_fu.adoc b/students/modules/00_OpNotes/pages/Google_fu.adoc
similarity index 100%
rename from students/modules/OpNotes/pages/Google_fu.adoc
rename to students/modules/00_OpNotes/pages/Google_fu.adoc
diff --git a/students/modules/OpNotes/pages/OS_Day0_SG.adoc b/students/modules/00_OpNotes/pages/OS_Day0_SG.adoc
similarity index 100%
rename from students/modules/OpNotes/pages/OS_Day0_SG.adoc
rename to students/modules/00_OpNotes/pages/OS_Day0_SG.adoc
diff --git a/students/modules/OpNotes/pages/cht.adoc b/students/modules/00_OpNotes/pages/cht.adoc
similarity index 100%
rename from students/modules/OpNotes/pages/cht.adoc
rename to students/modules/00_OpNotes/pages/cht.adoc
diff --git a/students/modules/OpNotes/pages/git_about.adoc b/students/modules/00_OpNotes/pages/git_about.adoc
similarity index 100%
rename from students/modules/OpNotes/pages/git_about.adoc
rename to students/modules/00_OpNotes/pages/git_about.adoc
diff --git a/students/modules/OpNotes/pages/git_workflow_basics-brief.adoc b/students/modules/00_OpNotes/pages/git_workflow_basics-brief.adoc
similarity index 100%
rename from students/modules/OpNotes/pages/git_workflow_basics-brief.adoc
rename to students/modules/00_OpNotes/pages/git_workflow_basics-brief.adoc
diff --git a/students/modules/OpNotes/pages/git_workflow_basics_visual_.adoc b/students/modules/00_OpNotes/pages/git_workflow_basics_visual_.adoc
similarity index 100%
rename from students/modules/OpNotes/pages/git_workflow_basics_visual_.adoc
rename to students/modules/00_OpNotes/pages/git_workflow_basics_visual_.adoc
diff --git a/students/modules/01_PowerShell/.gitkeep b/students/modules/01_PowerShell/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/students/modules/01_PowerShell/assets/.gitkeep b/students/modules/01_PowerShell/assets/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/students/modules/01_PowerShell/assets/attachments/.gitkeep b/students/modules/01_PowerShell/assets/attachments/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc
--- /dev/null
+++ b/students/modules/01_PowerShell/assets/attachments/.gitkeep
@@ -0,0 +1 @@
+
diff --git a/students/modules/01_PowerShell/assets/attachments/PSPunctuationWallChart.pdf b/students/modules/01_PowerShell/assets/attachments/PSPunctuationWallChart.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..919d9e2b189f1c3fe7f5c665056ed3055fb9656e
Binary files /dev/null and b/students/modules/01_PowerShell/assets/attachments/PSPunctuationWallChart.pdf differ
diff --git a/students/modules/01_PowerShell/assets/attachments/WMI_CheatSheet_for_PS.pdf b/students/modules/01_PowerShell/assets/attachments/WMI_CheatSheet_for_PS.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..5e45134e2ecba63319b728e21aeabbbb6d9acbe2
Binary files /dev/null and b/students/modules/01_PowerShell/assets/attachments/WMI_CheatSheet_for_PS.pdf differ
diff --git a/students/modules/01_PowerShell/assets/attachments/powershell-basic-cheat-sheet.pdf b/students/modules/01_PowerShell/assets/attachments/powershell-basic-cheat-sheet.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..e7d47688d1765831f8718f52434e34afd10d709a
Binary files /dev/null and b/students/modules/01_PowerShell/assets/attachments/powershell-basic-cheat-sheet.pdf differ
diff --git a/students/modules/01_PowerShell/assets/images/.gitkeep b/students/modules/01_PowerShell/assets/images/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/students/modules/01_PowerShell/assets/videos/.gitkeep b/students/modules/01_PowerShell/assets/videos/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/students/modules/01_PowerShell/examples/.gitkeep b/students/modules/01_PowerShell/examples/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/students/modules/01_PowerShell/examples/basics.ps1 b/students/modules/01_PowerShell/examples/basics.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..0a69395f32ee8cfe4a5b5cfbb45d1604be2b358c
--- /dev/null
+++ b/students/modules/01_PowerShell/examples/basics.ps1
@@ -0,0 +1,61 @@
+#---- Setup
+    # Install
+    function Install-Chocolatey
+    {
+        if (!(get-command choco.exe -ErrorAction SilentlyContinue))
+            {
+                Set-ExecutionPolicy Bypass -Scope Process -Force; 
+                [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
+                iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
+            }
+    }
+
+#---- Get-Help:
+
+# !!! Most Important PowerShell Command !!!
+    $command = Get-ChildItem
+    get-help $command -Examples
+
+#---- Get-Command:
+
+    # Display all commands ending in the NOUN 'process'
+        Get-Command *process | Select-Object -First 10
+
+    # Display all commands ending in the VERB 'set'
+        Get-Command wait* | Select-Object -First 10
+
+#---- Get-Content
+
+#---- Get-ChildItem:
+
+    # Recursive ls and show hidden files
+        Get-ChildItem -Recurse -Force
+        Get-ChildItem -attributes hidden
+
+#---- Get-PSDrive: Gets the PowerShell
+
+    <#
+        The Get-PSDrive cmdlet gets the drives in the current session. You can get a particular drive or all drives in the session.
+        This cmdlet gets the following types of drives:
+        - Windows logical drives on the computer, including drives mapped to network shares.
+        - Drives exposed by Windows PowerShell providers (such as the Certificate:, Function:, and Alias: drives) 
+            and the HKLM: and HKCU: drives that are exposed by the Windows PowerShell Registry provider.
+        - Session-specified temporary drives and persistent mapped network drives that you create by using the New-PSDrive cmdlet.
+    #>
+    Get-PSDrive
+    # View Alias
+    Get-ChildItem Alias:\
+    # View Functions
+    Get-ChildItem Function:\
+    # View Registry Keys
+    Get-ChildItem HKCU:\
+
+#---- Starting and Killing processes
+
+    Start-Process calc
+    (Get-Process calculator*).kill()
+
+#---- In order to run scripts in PowerShell
+    
+    Get-ExecutionPolicy
+    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
diff --git a/students/modules/01_PowerShell/examples/objects.ps1 b/students/modules/01_PowerShell/examples/objects.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..d544d6819b588f4c3d7caf6c1dda2d1ff8938648
--- /dev/null
+++ b/students/modules/01_PowerShell/examples/objects.ps1
@@ -0,0 +1,89 @@
+# ---- SETUP STEPS ---- #
+    Set-Location $HOME
+    New-Item -ItemType Directory -Name class
+    Set-Location class
+    Write-Host "Hello World" > hello.txt
+    Write-Host "Some Code" > hello2.ps1
+    1..4 | ForEach-Object {Write-Output "Hello $_" > file$_.txt}
+
+#---- Object Types
+    # Returns INT32 Object
+        42 | Get-Member
+    # Returns Double Object
+        42.0 | Get-Member
+    # Returns STRING Object
+        "42" | Get-Member
+
+#---- Viewing object structure - Get-Member
+    
+    # Display all of the properties and methods of the 'Get-Process' PowerShell object.
+        Get-ChildItem | Get-Member
+    # Display only the properties of the 
+        Get-ChildItem | Get-Member -MemberType properties
+
+#---- Selecting parts of object - Select-Object
+    
+    # Show all the parts of the file 'hello.txt'
+        Get-ChildItem .\hello.txt | Select-Object *
+        Get-ChildItem .\hello.txt | Select-Object CreationTime, FullName, Length
+    # Show First X Items
+        Get-ChildItem | Select-Object -First 1
+    # Show Last X Items
+        Get-ChildItem | Select-Object -Last 2
+    # Show the Xth item (starting with index 0)
+        Get-ChildItem | Select-Object -Index 1
+
+#---- Removing objects from the pipeline - Where-Object
+    
+    # Display only the objects whose value is less then 3
+        1..4 | Where-Object {$_ -lt 3}
+    # Display files with the number 2 in them.
+        Get-ChildItem | Where-Object {$_.Name -like "*2*" }
+        Get-ChildItem | Where-Object {$_.Name -match "2" -and $_.name -like "*.sh"}
+
+#---- Sorting objects
+
+    # Display sorted directory contents name
+        Get-ChildItem | Sort-Object -Property Name
+    # Display sorted directory contents by the 'Last Write Time UTC' in Reverse Order
+        Get-ChildItem | Sort-Object -Property LastWriteTimeUtc -Descending
+
+#---- Repeating a task for multiple objects - ForEach-Object
+
+    # Divides each INT object by 1024
+        30000, 56798, 12432 | ForEach-Object -Process {$_/1024}
+
+    # Display the name and size of the file divided by 10
+        Get-ChildItem | ForEach-Object -Process {$_.Name; $_.Length / 10; " " }
+
+
+#---- Using Variables, static classes, and methods
+
+    # Set an object to a variable
+        $Directory = Get-ChildItem -Path ..\ -Directory
+        $Directory | Where-Object {$_.Name -match "class"} | Get-Member *
+        $Directory | Where-Object {$_.Name -match "class"} | Format-List -Property *
+        $Directory.GetType()
+
+    <#---- .Net Class Member Notation
+        To call a static member put the class name in square brackets and use the double colon before the member name.
+        Windows PowerShell is flexible enough, that you can write Windows PowerShell code as if it were C#, VB.NET, or even as if it were VBScript or Perl
+    #>
+    # Use a static Class to do Maths.
+        [System.Math] | Get-Member -Static
+        [System.Math]::Sqrt(9)
+        [System.Math]::PI
+
+    # Using Parenthesis allows you to access object methods and properties
+        (Get-ChildItem | Select-Object -Index 0).fullname
+        (Get-ChildItem | Select-Object -Index 0).Name
+        (Get-Content .\hello.txt).count
+        
+#---- Getting WMI objects - Get-CimInstance
+    <#
+        Windows Management Instrumentation (WMI) is a core technology for Windows system administration because it 
+        exposes a wide range of information in a uniform manner. Because of how much WMI makes possible, 
+        the PowerShell cmdlet for accessing WMI objects, Get-CimInstance, is one of the most useful for doing real work.
+    #> 
+    Get-CimInstance -Class Win32_ComputerSystem
+    Get-CimInstance -Class Win32_AccountSID
\ No newline at end of file
diff --git a/students/modules/01_PowerShell/examples/profile.ps1 b/students/modules/01_PowerShell/examples/profile.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..406808bf8be95cf787b170e447bb990d0aab889d
--- /dev/null
+++ b/students/modules/01_PowerShell/examples/profile.ps1
@@ -0,0 +1,80 @@
+#---- Profile Setup
+    # View the different types(scopes) of profiles
+        $profile | gm -type NoteProperty
+    # View current session profile
+        $profile
+    # Check if you already have a profile file created
+        test-path -path $profile.CurrentUserCurrentHost
+    # Create new profile file
+        New-Item -ItemType file -path $profile -Force
+
+# View the Script that sets your current prompt
+    (Get-Command Prompt).ScriptBlock
+
+# Show Aliases
+    Get-Alias | Select-Object -First 10
+    Remove-Item Alias:ls
+
+# Show Functions
+    Get-Command mkdir |Format-List -Property Name, Definition
+    Get-ChildItem Function:\mkdir | Format-List ScriptBlock
+
+# ------------------------------------------------------------------------------------------------#
+# ------------------------------------------------------------------------------------------------#
+# ------------------------------------Demo Profile------------------------------------------------#
+# ------------------------------------------------------------------------------------------------#
+# ------------------------------------------------------------------------------------------------#
+
+# Find out if the current user identity is elevated (has admin rights)
+$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
+$principal = New-Object Security.Principal.WindowsPrincipal $identity
+$isAdmin = $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
+
+# If so and the current host is a command line, then change to red color 
+# as warning to user that they are operating in an elevated context
+if (($host.Name -match "ConsoleHost") -and ($isAdmin))
+{
+     $host.UI.RawUI.BackgroundColor = "DarkRed"
+     $host.PrivateData.ErrorBackgroundColor = "White"
+     $host.PrivateData.ErrorForegroundColor = "DarkRed"
+     Clear-Host
+}
+
+# Set up command prompt and window title. Use UNIX-style convention for identifying 
+# whether user is elevated (root) or not. Window title shows current version of PowerShell
+# and appends [ADMIN] if appropriate for easy taskbar identification
+function prompt 
+{ 
+    if ($isAdmin) 
+    {
+        "[" + (Get-Location) + "] # " 
+    }
+    else 
+    {
+        "[" + (Get-Location) + "] $ "
+    }
+}
+
+$Host.UI.RawUI.WindowTitle = "PowerShell {0}" -f $PSVersionTable.PSVersion.ToString()
+if ($isAdmin)
+{
+    $Host.UI.RawUI.WindowTitle += " [ADMIN]"
+}
+
+# Change Directory to 'c:\users\user\'
+cd $home
+
+# Compute file hashes - useful for checking successful downloads 
+function md5    { Get-FileHash -Algorithm MD5 $args }
+function sha1   { Get-FileHash -Algorithm SHA1 $args }
+function sha256 { Get-FileHash -Algorithm SHA256 $args }
+function less
+{
+  Get-Content $args[0] | Out-Host -Paging
+}
+
+#Set-Alias -Name  -Value
+Set-Alias -Name gh -Value Get-Help
+Set-Alias -Name so -Value Select-Object
+Set-Alias -Name c -Value Clear-Host
+Set-Alias -Name l -Value Get-ChildItem
diff --git a/students/modules/01_PowerShell/examples/web.ps1 b/students/modules/01_PowerShell/examples/web.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..3d1ce2958691752d70cff1180f61e905008fbb69
--- /dev/null
+++ b/students/modules/01_PowerShell/examples/web.ps1
@@ -0,0 +1,39 @@
+#----  PowerShell Remoting ----
+    # XFREERDP (Or SPICE) -> win-ops
+    # RDP -> Admin
+    # PSSession -> Domain
+
+    # Start a PSSession on remote machine
+        Enter-Pssession -ComputerName $COMPUTER_NAME -Credential ARMY\john.huntsman
+
+    # Shows PS Session Config State
+        Get-PSSessionConfiguration
+    # Enable 
+        Enable-PSRemoting
+        Get-PSSessionConfiguration
+        Get-Item WSMan:\localhost\Client\TrustedHosts
+        Set-Item WSMan:\localhost\Client\TrustedHosts -value "IP" -Concatenate
+
+# Invoke-Webrequest (wget)
+    Invoke-WebRequest -Uri "10.50.25.3/class/admin_station/PsExec.exe" -OutFile "C:\windows\system32\psexec.exe"
+
+# Using a Net.WebClient Object
+    $WebClient = New-Object System.Net.WebClient
+    $WebClient.Credentials = New-Object System.Net.Networkcredential($Username, $Password)
+    $Url = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/v7.7.2.0p1-Beta/OpenSSH-Win64.zip"
+    $Path = "C:\Program Files\OpenSSH.zip"
+    $WebClient.DownloadFile( $url, $path )
+
+# Or
+
+    (New-Object System.Net.WebClient).DownloadFile($url, $path)
+
+
+# Accessing different fields of communication over HTTP
+    $response = Invoke-WebRequest -UseBasicParsing 'https://postman-echo.com/get?foo1=bar1&foo2=bar2'
+    $response.StatusCode
+    $response.Headers
+    $response.Content
+    $response.RawContent
+    $response.StatusDescription
+
diff --git a/students/modules/01_PowerShell/pages/.gitkeep b/students/modules/01_PowerShell/pages/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/students/modules/01_PowerShell/pages/powershell_sfg.adoc b/students/modules/01_PowerShell/pages/powershell_sfg.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..99b966176d7b4ea930c393ad5a686374dfa875cc
--- /dev/null
+++ b/students/modules/01_PowerShell/pages/powershell_sfg.adoc
@@ -0,0 +1,59 @@
+:pdf: true
+:doctype: book
+:stylesheet: ../../global-objects/resources/raw/master/css/stylefactoryfiles/_asciidoc.scss
+:imagesdir: ../assets/images
+:numbered!:
+
+= PowerShell
+
+== Table of Contents
+**<<Table of Contents>>** +
+<<Prerequisite Instructions>> +
+<<Section 1>> +
+
+== LESSON Objectives
+
+* *Outcome:*
+** OUTCOME 1 - Become Familiar with PowerShell Syntax
+** OUTCOME 2 - Understand Basic Enumeration Commands
+
+== Prerequisite Instructions
+
+
+*From WinOpstation:*
+
+. Install *Git Bash* `https://git-scm.com/downloads` and choose the Windows Install.
+. Type "Git Bash" into the start bar and start the program. You will be in a Bash shell, but on a Windows box. This shell is made for the express purpose of using `git` commands. (Not actually running linux at all)
+.. In Git Bash Terminal: `git clone https://git.cybbh.space/cctc/students.git`
+. Open an elevated PowerShell ISE shell
+. Navigate to the scripts: `cd C:\user\student\students\modules\01_powershell\examples\`
+
+== Section 1
+
+=== _Demo Scripts_
+
+Run the following scripts in an elevated PowerShell ISE:
+
+[source,powershell]
+----
+.\basics.ps1        # Need to know fundamentals
+.\objects.ps1       # Introduction to PowerShell Objects  
+.\profile.ps1       # Setting up user profile and environment
+.\web.ps1           # Powershell over the Internet
+----
+
+=== _Knowledge Benchmarks_
+
+* Understand the fundamental differences between PowerShell and other traditional style shells.
+* Explain the significance of the profile files and how to utilize them for efficiency and persistence.
+
+* Run commands remotely, download files, and interface with Web API's
+
+.Resources
+* https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_scripts?view=powershell-5.1[Microsoft Docs]
+* https://mcpmag.com/articles/2015/03/24/using-get-member.aspx[Using Get Member]
+* https://cdn.comparitech.com/wp-content/uploads/2018/08/Comparitech-Powershell-cheatsheet.pdf[Powershell Cheat 1]
+* https://blogs.sans.org/pen-testing/files/2016/05/PowerShellCheatSheet_v41.pdf[Powershell Cheat 2]
+* https://docs.microsoft.com/en-us/powershell/scripting/samples/viewing-object-structure\--get-member-?view=powershell-7.1[Working with Objects Guide]
+* https://docs.microsoft.com/en-us/powershell/scripting/samples/sample-scripts-for-administration?view=powershell-7[Powershell 7 Sample Scripts]
+* https://davidhamann.de/2019/04/12/powershell-invoke-webrequest-by-example/[Invoke-WebRequest Example]
\ No newline at end of file