first commit
This commit is contained in:
36
Exercise Files/01_02/01_02_begin.ps1
Executable file
36
Exercise Files/01_02/01_02_begin.ps1
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
configuration InstalledRoles
|
||||||
|
{
|
||||||
|
Param([string[]]$ComputerName = "srv01")
|
||||||
|
Import-DscResource -ModuleName PSDesiredStateConfiguration
|
||||||
|
Node $ComputerName
|
||||||
|
{
|
||||||
|
WindowsFeature HaveBitLocker
|
||||||
|
{
|
||||||
|
Ensure = "Present"
|
||||||
|
Name = "BitLocker"
|
||||||
|
}
|
||||||
|
WindowsFeature NoWebServer
|
||||||
|
{
|
||||||
|
Ensure = "Absent"
|
||||||
|
Name = "Web-Server"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
48
Exercise Files/01_02/01_02_end.ps1
Executable file
48
Exercise Files/01_02/01_02_end.ps1
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
|
||||||
|
Configuration StopMaps
|
||||||
|
{
|
||||||
|
Import-DscResource -ModuleName PSDesiredStateConfiguration
|
||||||
|
Node localhost
|
||||||
|
{
|
||||||
|
|
||||||
|
Service DisableMaps
|
||||||
|
{
|
||||||
|
Name = "MapsBroker"
|
||||||
|
StartupType = "Disabled"
|
||||||
|
State = "Stopped"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
configuration InstalledRoles
|
||||||
|
{
|
||||||
|
Param([string[]]$ComputerName = "srv01")
|
||||||
|
Import-DscResource -ModuleName PSDesiredStateConfiguration
|
||||||
|
Node $ComputerName
|
||||||
|
{
|
||||||
|
WindowsFeature HaveBitLocker
|
||||||
|
{
|
||||||
|
Ensure = "Present"
|
||||||
|
Name = "BitLocker"
|
||||||
|
}
|
||||||
|
WindowsFeature NoWebServer
|
||||||
|
{
|
||||||
|
Ensure = "Absent"
|
||||||
|
Name = "Web-Server"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
36
Exercise Files/01_03/01_03_begin.ps1
Executable file
36
Exercise Files/01_03/01_03_begin.ps1
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
Configuration StopMaps
|
||||||
|
{
|
||||||
|
Import-DscResource -ModuleName PSDesiredStateConfiguration
|
||||||
|
Node localhost
|
||||||
|
{
|
||||||
|
|
||||||
|
Service DisableMaps
|
||||||
|
{
|
||||||
|
Name = "MapsBroker"
|
||||||
|
StartupType = "Disabled"
|
||||||
|
State = "Stopped"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Configuration InstalledRoles
|
||||||
|
{
|
||||||
|
Param([string[]]$ComputerName = "srv01")
|
||||||
|
Import-DscResource -ModuleName PSDesiredStateConfiguration
|
||||||
|
Node $ComputerName
|
||||||
|
{
|
||||||
|
WindowsFeature HaveBitLocker
|
||||||
|
{
|
||||||
|
Ensure = "Present"
|
||||||
|
Name = "BitLocker"
|
||||||
|
}
|
||||||
|
WindowsFeature NoWebServer
|
||||||
|
{
|
||||||
|
Ensure = "Absent"
|
||||||
|
Name = "Web-Server"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
54
Exercise Files/01_04/01_04.ps1
Executable file
54
Exercise Files/01_04/01_04.ps1
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
Install-Module xSmbShare
|
||||||
|
|
||||||
|
Install-Module cNtfsAccessControl
|
||||||
|
|
||||||
|
Configuration SMBPull
|
||||||
|
{
|
||||||
|
Import-DscResource -ModuleName PSDesiredStateConfiguration
|
||||||
|
Import-DscResource -ModuleName xSmbShare
|
||||||
|
Import-DscResource -ModuleName cNtfsAccessControl
|
||||||
|
|
||||||
|
Node localhost
|
||||||
|
{
|
||||||
|
|
||||||
|
File CreateFolder
|
||||||
|
{
|
||||||
|
DestinationPath = 'C:\DSCSMB'
|
||||||
|
Type = 'Directory'
|
||||||
|
Ensure = 'Present'
|
||||||
|
}
|
||||||
|
|
||||||
|
xSMBShare CreateShare
|
||||||
|
{
|
||||||
|
Name = 'DscSmbPull'
|
||||||
|
Path = 'C:\DSCSMB'
|
||||||
|
FullAccess = 'landonhotel\administrator'
|
||||||
|
ReadAccess = 'landonhotel\srv02$'
|
||||||
|
FolderEnumerationMode = 'AccessBased'
|
||||||
|
Ensure = 'Present'
|
||||||
|
DependsOn = '[File]CreateFolder'
|
||||||
|
}
|
||||||
|
|
||||||
|
cNtfsPermissionEntry PermissionSet1
|
||||||
|
{
|
||||||
|
Ensure = 'Present'
|
||||||
|
Path = 'C:\DSCSMB'
|
||||||
|
Principal = 'landonhotel\srv02$'
|
||||||
|
AccessControlInformation = @(
|
||||||
|
cNtfsAccessControlInformation
|
||||||
|
{
|
||||||
|
AccessControlType = 'Allow'
|
||||||
|
FileSystemRights = 'ReadAndExecute'
|
||||||
|
Inheritance = 'ThisFolderSubfoldersAndFiles'
|
||||||
|
NoPropagateInherit = $false
|
||||||
|
}
|
||||||
|
)
|
||||||
|
DependsOn = '[File]CreateFolder'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SmbPull
|
||||||
|
|
||||||
|
Start-DscConfiguration -Path SmbPull -Wait -Verbose
|
||||||
|
|
||||||
34
Exercise Files/01_05/01_05.ps1
Executable file
34
Exercise Files/01_05/01_05.ps1
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
New-Guid
|
||||||
|
|
||||||
|
|
||||||
|
Configuration ConfiguredServer
|
||||||
|
{
|
||||||
|
Param([string[]]$ComputerName = "srv02")
|
||||||
|
Import-DscResource -ModuleName PSDesiredStateConfiguration
|
||||||
|
Node $ComputerName
|
||||||
|
{
|
||||||
|
Service NoMapsDownload
|
||||||
|
{
|
||||||
|
Name = "MapsBroker"
|
||||||
|
StartupType = "Disabled"
|
||||||
|
State = "Stopped"
|
||||||
|
}
|
||||||
|
Service HaveBITS
|
||||||
|
{
|
||||||
|
Name = "BITS"
|
||||||
|
StartupType = "Automatic"
|
||||||
|
State = "Running"
|
||||||
|
}
|
||||||
|
WindowsFeature NoWebServer
|
||||||
|
{
|
||||||
|
Ensure = "Absent"
|
||||||
|
Name = "Web-Server"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ConfiguredServer
|
||||||
|
|
||||||
|
New-DscChecksum -Path .\ConfiguredServer\ #Place .mof filename here
|
||||||
29
Exercise Files/01_06/01_06.ps1
Executable file
29
Exercise Files/01_06/01_06.ps1
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
# GUID copied and pasted from SMB pull server
|
||||||
|
# Paste GID here
|
||||||
|
|
||||||
|
|
||||||
|
[DSCLocalConfigurationManager()]
|
||||||
|
Configuration PullClientConfigID
|
||||||
|
{
|
||||||
|
Node localhost
|
||||||
|
{
|
||||||
|
Settings
|
||||||
|
{
|
||||||
|
RefreshMode = 'Pull'
|
||||||
|
ConfigurationID = '#paste GID here'
|
||||||
|
RefreshFrequencyMins = 30
|
||||||
|
RebootNodeIfNeeded = $true
|
||||||
|
# ConfigurationMode = 'ApplyAndMonitor' --or-- 'ApplyAndAutoCorrect'
|
||||||
|
}
|
||||||
|
ConfigurationRepositoryShare SMBPullServer
|
||||||
|
{
|
||||||
|
SourcePath = '\\srv01\DscSmbPull'
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PullClientConfigID
|
||||||
|
|
||||||
|
Set-DscLocalConfigurationManager -ComputerName localhost -Path .\PullClientConfigID
|
||||||
|
|
||||||
22
Exercise Files/02_03/02_03.ps1
Executable file
22
Exercise Files/02_03/02_03.ps1
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
New-PSRoleCapabilityFile -Path C:\JEA\TechJEARole.psrc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Create a folder in the local modules path for thismodule
|
||||||
|
$Srv1ModulePath = Join-Path $env:ProgramFiles "WindowsPowerShell\Modules\LandonHotelJEA"
|
||||||
|
New-Item -ItemType Directory -Path $Srv1ModulePath
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Create an empty module and manifest.
|
||||||
|
New-Item -ItemType File -Path (Join-Path $Srv1ModulePath "LHJEATechSupport.psm1")
|
||||||
|
New-ModuleManifest -Path (Join-Path $Srv1ModulePath "LandonHotelJEA.psd1") -RootModule "LHJEATechSupport.psm1"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Create the RoleCapabilities folder and copy the PSRC file to it
|
||||||
|
$RoleCapFolder = Join-Path $Srv1ModulePath "RoleCapabilities"
|
||||||
|
New-Item -ItemType Directory $RoleCapFolder
|
||||||
|
Copy-Item -Path C:\Scripts\TechJEARole.psrc -Destination $RoleCapFolder
|
||||||
9
Exercise Files/02_04/02_04.ps1
Executable file
9
Exercise Files/02_04/02_04.ps1
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
New-PSSessionConfigurationFile -SessionType RestrictedRemoteServer -Path C:\JEA\JEAEndpoint1.pssc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Test-PSSessionConfigurationFile -Path C:\JEA\JEAEndpoint1.pssc # should yield True
|
||||||
|
|
||||||
62
Exercise Files/03_03/03_03.ps1
Executable file
62
Exercise Files/03_03/03_03.ps1
Executable file
@@ -0,0 +1,62 @@
|
|||||||
|
Import-Module LandonHotelAD
|
||||||
|
Import-Module LHExchange
|
||||||
|
|
||||||
|
Add-Type -AssemblyName System.Windows.Forms
|
||||||
|
Add-Type -AssemblyName System.Drawing
|
||||||
|
|
||||||
|
$AdmissionsAccount = New-Object System.Windows.Forms.Form
|
||||||
|
$AdmissionsAccount.Text = "Create a New Account"
|
||||||
|
$AdmissionsAccount.Size = New-Object System.Drawing.Size(300,300)
|
||||||
|
$AdmissionsAccount.MaximizeBox = $false
|
||||||
|
$AdmissionsAccount.MinimizeBox = $false
|
||||||
|
$AdmissionsAccount.ControlBox = $true
|
||||||
|
|
||||||
|
$TextBox_FName = New-Object System.Windows.Forms.TextBox
|
||||||
|
$TextBox_FName.Location = New-Object System.Drawing.Size(25,40)
|
||||||
|
$TextBox_FName.Size = New-Object System.Drawing.Size(250,20)
|
||||||
|
$TextBox_FName.Text = "First Name"
|
||||||
|
$AdmissionsAccount.Controls.Add($TextBox_FName)
|
||||||
|
|
||||||
|
$TextBox_LName = New-Object System.Windows.Forms.TextBox
|
||||||
|
$TextBox_LName.Location = New-Object System.Drawing.Size(25,70)
|
||||||
|
$TextBox_LName.Size = New-Object System.Drawing.Size(250,20)
|
||||||
|
$TextBox_LName.Text = "Last Name"
|
||||||
|
$AdmissionsAccount.Controls.Add($TextBox_LName)
|
||||||
|
|
||||||
|
$TextBox_UName = New-Object System.Windows.Forms.TextBox
|
||||||
|
$TextBox_UName.Location = New-Object System.Drawing.Size(25,100)
|
||||||
|
$TextBox_UName.Size = New-Object System.Drawing.Size(250,20)
|
||||||
|
$TextBox_UName.Text = "User Name"
|
||||||
|
$AdmissionsAccount.Controls.Add($TextBox_UName)
|
||||||
|
|
||||||
|
$TextBox_Job = New-Object System.Windows.Forms.TextBox
|
||||||
|
$TextBox_Job.Location = New-Object System.Drawing.Size(25,130)
|
||||||
|
$TextBox_Job.Size = New-Object System.Drawing.Size(250,20)
|
||||||
|
$TextBox_Job.Text = "Job Title"
|
||||||
|
$AdmissionsAccount.Controls.Add($TextBox_Job)
|
||||||
|
|
||||||
|
$TextBox_EmID = New-Object System.Windows.Forms.TextBox
|
||||||
|
$TextBox_EmID.Location = New-Object System.Drawing.Size(25,160)
|
||||||
|
$TextBox_EmID.Size = New-Object System.Drawing.Size(250,20)
|
||||||
|
$TextBox_EmID.Text = "Employee ID"
|
||||||
|
$AdmissionsAccount.Controls.Add($TextBox_EmID)
|
||||||
|
|
||||||
|
$Button_Close = New-Object System.Windows.Forms.Button
|
||||||
|
$Button_Close.Location = New-Object System.Drawing.Size(25,200)
|
||||||
|
$Button_Close.Size = New-Object System.Drawing.Size(120,25)
|
||||||
|
$Button_Close.TextAlign = "MiddleCenter"
|
||||||
|
$Button_Close.Text = "Create User Account"
|
||||||
|
$Button_Close.Add_Click({$AdmissionsAccount.Close()})
|
||||||
|
$AdmissionsAccount.Controls.Add($Button_Close)
|
||||||
|
|
||||||
|
$AdmissionsAccount.Add_Shown({$AdmissionsAccount.Activate()})
|
||||||
|
[Void]$AdmissionsAccount.ShowDialog()
|
||||||
|
|
||||||
|
|
||||||
|
$NewUser = [ordered]@{FirstName=($TextBox_FName).Text; LastName=($TextBox_LName).Text; Username=($TextBox_UName).Text; Title=($TextBox_Job).Text; Employee=($TextBox_EmID).Text}
|
||||||
|
|
||||||
|
|
||||||
|
New-LHADUser -Details $NewUser
|
||||||
|
|
||||||
|
|
||||||
|
Enable-LHMailbox -Details $NewUser
|
||||||
17
Exercise Files/03_04/03_04.ps1
Executable file
17
Exercise Files/03_04/03_04.ps1
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
# Reason for analyzing
|
||||||
|
# Scripts are growing
|
||||||
|
# Human error
|
||||||
|
# Scripts are to be shared
|
||||||
|
# Quality standards are recognized as important
|
||||||
|
|
||||||
|
Install-Module -Name PSScriptAnalyzer
|
||||||
|
|
||||||
|
Get-Command -Module PSScriptAnalyzer
|
||||||
|
|
||||||
|
Get-ScriptAnalyzerRule
|
||||||
|
# PSAvoidUsingCmdletAliases
|
||||||
|
# PSAvoidGlobalFunctions -- read details
|
||||||
|
# PSAvoidUsingComputerNameHardcoded -- error
|
||||||
|
# PSAvoidUsingInvokeExpression -- security hole (code insertion)
|
||||||
|
|
||||||
|
Invoke-ScriptAnalyzer -Path ".\03_04-02.ps1"
|
||||||
7
Exercise Files/03_04/03_04_Analyze.ps1
Executable file
7
Exercise Files/03_04/03_04_Analyze.ps1
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
$RunMe = Read-Host -Prompt 'What would you like to run today?'
|
||||||
|
Invoke-Expression -Command $RunMe
|
||||||
|
|
||||||
|
Get-MyUsers -OU Management
|
||||||
|
|
||||||
|
Get-Process -ComputerName dc01 | Out-File C:\ScriptOutput\Processes.txt
|
||||||
|
|
||||||
Reference in New Issue
Block a user