migrate to git.charlotte.sh

This commit is contained in:
Charlotte Croce 2025-04-19 23:42:08 -04:00
commit fbd588721e
412 changed files with 13750 additions and 0 deletions

View file

@ -0,0 +1,19 @@
# Automation and Scripting
Fall 2024
## Powershell
- [week01](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week01): Introduction
- [week02](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week02): Cmdlets and Members
- [week03](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week03): Flow Control
- [week04](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week04): Access to File Content
- [week05](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week05): Web Scraping
- [week06](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320//week06): Menus and Input Validation
- [week07](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week07): Scheduled Email Reports
- [week08](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week08): Midterm
## Bash
- [week09](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week09): Linux Bash Basics
- [week10](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week10): Access to File Content
- [week11](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week11): Flow Control
- week12: No New Assignments
- [week13](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week13): Web Scraping and Processing
- week14: Thanksgiving Break
- [week15](https://git.charlotte.sh/lotte/ChamplainTechJournals/src/branch/main/automation-sys320/week15): Final

View file

@ -0,0 +1 @@
powershell first file, for testing Git

View file

@ -0,0 +1,41 @@
# Basic GitHub commands
- Clone repo Using SSH: `git clone git@github.com:charlottecroce/SYS320.git`
- Clone repo Using HTPS: `git clone https://github.com/charlottecroce/SYS320.git`
- Add file to staging area: `git add <file>`
- Commit change: `git commit -m "commit message"`
- ID needed to commit: `git config --global user.name "charlottecroce"`
- ID needed to commit: `git config --global user.email "charlotte.croce@mymail.champlain.edu"`
- Push changes to repo: `git push`
- `git remote -v`
- if git is using https and not authenticating. you might have to change it to use ssh
- `git remote set-url origin git@github.com:charlottecroce/champlaintechjournals`
# Ubuntu Setup
Install Git
- `apt-get update`
- `apt-get install git`
Create SSH key
- `sudu su`
- `ssh-keygen -t rsa -b 4096 -C "charlotte.croce@mymail.champlain.edu"`
- `ssh-add /root/.ssh/id_rsa`
- Check if SSH agent is running:`eval "$(ssh-agent -s)"`
Add key to GitHub account
- `cat /root/.ssh/id_rsa.pub` -> copy
- GitHub -> Settings -> SSH and GPG Keys -> New SSH Key -> Select Authentication Key
- Test Connection: `ssh -T git@github.com`
# Windows Setup
Install Git
- Download Git from https://git-scm.com/download/win
- I select nano as default editory
Windows Token Authentication
- When attempting a `git push` you will have an authentication window pop up. We will use token authentication
- Github - Settings - Developer Settings - Tokens(Classic) - Generate a personal access token
- Select the following fields in Scope: repo, write:packages, admin:org, admin:public_key, admin:repo_hook
- Control Panel -> Manage Windows Credentials -> Create Generic Credential -> add GitHub.com:username:password
- Copy the token into the field on the popup and you should be authenticated to push

View file

@ -0,0 +1,62 @@
# 9/5/24
# Part 1 - Networking
# 1. Get IPv4 address from eth int
(Get-NetIPAddress -AddressFamily IPv4 | `
Where-Object { $_.InterfaceAlias -ilike "Ethernet0" }).IPAddress
# 2. Get prefix length from eth int
(Get-NetIPAddress -AddressFamily IPv4 | `
Where-Object { $_.InterfaceAlias -ilike "Ethernet0" }).PrefixLength
# 3. Show what classes in Win32 library start with net
Get-WmiObject -List | Where-Object { $_.Name -ilike "Win32_Net*" }
# 4. ...and sort alphabetically
Get-WmiObject -List | Where-Object { $_.Name -ilike "Win32_Net*" } | Sort-Object
# 5. Get DHCP server IP
Get-CimInstance Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=$true" | Select DHCPServer
# 6. ...and hide table headers
Get-CimInstance Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=$true" | `
Select DHCPServer | Format-Table -HideTableHeaders
# 7. Get DNS server IP for eth int and only display first result
(Get-DnsClientServerAddress -AddressFamily IPv4 | `
Where-Object { $_.InterfaceAlias -ilike "Ethernet0" }).ServerAddresses[0]
# Part 2 - Directory Listings
# 8. List all files in working directory that have extension .ps1
$files=(Get-ChildItem)
for ($j=0; $j -le $files.Length; $j++){
if ($files[$j].Name -ilike "*ps1"){
Write-Host $files[$j].Name
}
}
# 9. Create a folder called "outfolder" if it does not already exist
$folderpath="$PWD\outfolder"
if (Test-Path $folderpath){
Write-Host "Folder Already Exists"
}
else{
New-Item -ItemType "directory" -Path "$folderpath"
}
# 10. List all files in working directory that have extension .ps1
# and save results to out.csv file in outfolder directory
$files=(Get-ChildItem)
$folderpath="$PWD\outfolder"
$filepath = Join-Path $folderpath "out.csv"
$files | Where-Object {$_.Extension -eq ".ps1" } | `
Export-Csv -Path $filepath
# 11. Without changing directory, find every .csv file and change their extensions to .log,
# then recursively display all the files
$files = Get-ChildItem -File -Recurse
$files | Rename-Item -NewName { $_.Name -replace '.csv', '.log' }
Get-ChildItem -Recurse

View file

@ -0,0 +1,25 @@
#9/5/24
# 1. List every process for which ProcessName starts with 'C'
Get-Process | Where-Object { $_.Name -ilike "C*"}
# 2. List every process for which the path does not include the string "system32"
Get-Process | Where-Object { $_.Name -inotlike "*system32*"}
# 3. List every stopped service, order alphabetically, and export to csv
Get-Service | Where-Object { $_.Status -eq "Stopped" } | `
Sort-Object | Export-Csv -Path StoppedServices.csv
# 4. If Google Chrome browser is not running, start it and direct to champlain.edu
# If it is already running, stop it
if (Get-Process -Name chrome -ErrorAction SilentlyContinue){
Write-Host "Chrome Running. Stopping now"
Get-Process -name chrome | Stop-Process
}
else{
Write-Host "Chrome not running. Starting now"
Start-Process 'C:\Program Files\Google\Chrome\Application\chrome.exe' `
'--new-window https://champlain.edu'
}

View file

@ -0,0 +1,181 @@
#TYPE System.ServiceProcess.ServiceController
"Name","RequiredServices","CanPauseAndContinue","CanShutdown","CanStop","DisplayName","DependentServices","MachineName","ServiceName","ServicesDependedOn","ServiceHandle","Status","ServiceType","StartType","Site","Container"
"AJRouter","System.ServiceProcess.ServiceController[]","False","False","False","AllJoyn Router Service","System.ServiceProcess.ServiceController[]",".","AJRouter","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"ALG","System.ServiceProcess.ServiceController[]","False","False","False","Application Layer Gateway Service","System.ServiceProcess.ServiceController[]",".","ALG","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"AppIDSvc","System.ServiceProcess.ServiceController[]","False","False","False","Application Identity","System.ServiceProcess.ServiceController[]",".","AppIDSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"AppMgmt","System.ServiceProcess.ServiceController[]","False","False","False","Application Management","System.ServiceProcess.ServiceController[]",".","AppMgmt","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"AppReadiness","System.ServiceProcess.ServiceController[]","False","False","False","App Readiness","System.ServiceProcess.ServiceController[]",".","AppReadiness","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"AppVClient","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft App-V Client","System.ServiceProcess.ServiceController[]",".","AppVClient","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Disabled",,
"AppXSvc","System.ServiceProcess.ServiceController[]","False","False","False","AppX Deployment Service (AppXSVC)","System.ServiceProcess.ServiceController[]",".","AppXSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"AssignedAccessManagerSvc","System.ServiceProcess.ServiceController[]","False","False","False","AssignedAccessManager Service","System.ServiceProcess.ServiceController[]",".","AssignedAccessManagerSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"AxInstSV","System.ServiceProcess.ServiceController[]","False","False","False","ActiveX Installer (AxInstSV)","System.ServiceProcess.ServiceController[]",".","AxInstSV","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"BcastDVRUserService_70849","System.ServiceProcess.ServiceController[]","False","False","False","GameDVR and Broadcast User Service_70849","System.ServiceProcess.ServiceController[]",".","BcastDVRUserService_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"BDESVC","System.ServiceProcess.ServiceController[]","False","False","False","BitLocker Drive Encryption Service","System.ServiceProcess.ServiceController[]",".","BDESVC","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"BITS","System.ServiceProcess.ServiceController[]","False","False","False","Background Intelligent Transfer Service","System.ServiceProcess.ServiceController[]",".","BITS","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"BluetoothUserService_70849","System.ServiceProcess.ServiceController[]","False","False","False","Bluetooth User Support Service_70849","System.ServiceProcess.ServiceController[]",".","BluetoothUserService_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"BTAGService","System.ServiceProcess.ServiceController[]","False","False","False","Bluetooth Audio Gateway Service","System.ServiceProcess.ServiceController[]",".","BTAGService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"BthAvctpSvc","System.ServiceProcess.ServiceController[]","False","False","False","AVCTP service","System.ServiceProcess.ServiceController[]",".","BthAvctpSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"bthserv","System.ServiceProcess.ServiceController[]","False","False","False","Bluetooth Support Service","System.ServiceProcess.ServiceController[]",".","bthserv","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"camsvc","System.ServiceProcess.ServiceController[]","False","False","False","Capability Access Manager Service","System.ServiceProcess.ServiceController[]",".","camsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"CaptureService_70849","System.ServiceProcess.ServiceController[]","False","False","False","CaptureService_70849","System.ServiceProcess.ServiceController[]",".","CaptureService_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"CertPropSvc","System.ServiceProcess.ServiceController[]","False","False","False","Certificate Propagation","System.ServiceProcess.ServiceController[]",".","CertPropSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"ClipSVC","System.ServiceProcess.ServiceController[]","False","False","False","Client License Service (ClipSVC)","System.ServiceProcess.ServiceController[]",".","ClipSVC","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"ConsentUxUserSvc_70849","System.ServiceProcess.ServiceController[]","False","False","False","ConsentUX_70849","System.ServiceProcess.ServiceController[]",".","ConsentUxUserSvc_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"CscService","System.ServiceProcess.ServiceController[]","False","False","False","Offline Files","System.ServiceProcess.ServiceController[]",".","CscService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"defragsvc","System.ServiceProcess.ServiceController[]","False","False","False","Optimize drives","System.ServiceProcess.ServiceController[]",".","defragsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"DeviceAssociationService","System.ServiceProcess.ServiceController[]","False","False","False","Device Association Service","System.ServiceProcess.ServiceController[]",".","DeviceAssociationService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"DevicePickerUserSvc_70849","System.ServiceProcess.ServiceController[]","False","False","False","DevicePicker_70849","System.ServiceProcess.ServiceController[]",".","DevicePickerUserSvc_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"DevicesFlowUserSvc_70849","System.ServiceProcess.ServiceController[]","False","False","False","DevicesFlow_70849","System.ServiceProcess.ServiceController[]",".","DevicesFlowUserSvc_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"DevQueryBroker","System.ServiceProcess.ServiceController[]","False","False","False","DevQuery Background Discovery Broker","System.ServiceProcess.ServiceController[]",".","DevQueryBroker","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"diagnosticshub.standardcollector.service","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft (R) Diagnostics Hub Standard Collector Service","System.ServiceProcess.ServiceController[]",".","diagnosticshub.standardcollector.service","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Disabled",,
"diagsvc","System.ServiceProcess.ServiceController[]","False","False","False","Diagnostic Execution Service","System.ServiceProcess.ServiceController[]",".","diagsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"DisplayEnhancementService","System.ServiceProcess.ServiceController[]","False","False","False","Display Enhancement Service","System.ServiceProcess.ServiceController[]",".","DisplayEnhancementService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"DmEnrollmentSvc","System.ServiceProcess.ServiceController[]","False","False","False","Device Management Enrollment Service","System.ServiceProcess.ServiceController[]",".","DmEnrollmentSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"dmwappushservice","System.ServiceProcess.ServiceController[]","False","False","False","Device Management Wireless Application Protocol (WAP) Push message Routing Service","System.ServiceProcess.ServiceController[]",".","dmwappushservice","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"DoSvc","System.ServiceProcess.ServiceController[]","False","False","False","Delivery Optimization","System.ServiceProcess.ServiceController[]",".","DoSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"dot3svc","System.ServiceProcess.ServiceController[]","False","False","False","Wired AutoConfig","System.ServiceProcess.ServiceController[]",".","dot3svc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"DPS","System.ServiceProcess.ServiceController[]","False","False","False","Diagnostic Policy Service","System.ServiceProcess.ServiceController[]",".","DPS","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"DsmSvc","System.ServiceProcess.ServiceController[]","False","False","False","Device Setup Manager","System.ServiceProcess.ServiceController[]",".","DsmSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"DsSvc","System.ServiceProcess.ServiceController[]","False","False","False","Data Sharing Service","System.ServiceProcess.ServiceController[]",".","DsSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"DusmSvc","System.ServiceProcess.ServiceController[]","False","False","False","Data Usage","System.ServiceProcess.ServiceController[]",".","DusmSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Disabled",,
"Eaphost","System.ServiceProcess.ServiceController[]","False","False","False","Extensible Authentication Protocol","System.ServiceProcess.ServiceController[]",".","Eaphost","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"EFS","System.ServiceProcess.ServiceController[]","False","False","False","Encrypting File System (EFS)","System.ServiceProcess.ServiceController[]",".","EFS","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"embeddedmode","System.ServiceProcess.ServiceController[]","False","False","False","Embedded Mode","System.ServiceProcess.ServiceController[]",".","embeddedmode","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"EntAppSvc","System.ServiceProcess.ServiceController[]","False","False","False","Enterprise App Management Service","System.ServiceProcess.ServiceController[]",".","EntAppSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"Fax","System.ServiceProcess.ServiceController[]","False","False","False","Fax","System.ServiceProcess.ServiceController[]",".","Fax","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"fdPHost","System.ServiceProcess.ServiceController[]","False","False","False","Function Discovery Provider Host","System.ServiceProcess.ServiceController[]",".","fdPHost","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"FDResPub","System.ServiceProcess.ServiceController[]","False","False","False","Function Discovery Resource Publication","System.ServiceProcess.ServiceController[]",".","FDResPub","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"fhsvc","System.ServiceProcess.ServiceController[]","False","False","False","File History Service","System.ServiceProcess.ServiceController[]",".","fhsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"FrameServer","System.ServiceProcess.ServiceController[]","False","False","False","Windows Camera Frame Server","System.ServiceProcess.ServiceController[]",".","FrameServer","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"GoogleChromeElevationService","System.ServiceProcess.ServiceController[]","False","False","False","Google Chrome Elevation Service (GoogleChromeElevationService)","System.ServiceProcess.ServiceController[]",".","GoogleChromeElevationService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"GoogleUpdaterInternalService130.0.6679.0","System.ServiceProcess.ServiceController[]","False","False","False","GoogleUpdater InternalService 130.0.6679.0 (GoogleUpdaterInternalService130.0.6679.0)","System.ServiceProcess.ServiceController[]",".","GoogleUpdaterInternalService130.0.6679.0","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Automatic",,
"GoogleUpdaterService130.0.6679.0","System.ServiceProcess.ServiceController[]","False","False","False","GoogleUpdater Service 130.0.6679.0 (GoogleUpdaterService130.0.6679.0)","System.ServiceProcess.ServiceController[]",".","GoogleUpdaterService130.0.6679.0","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Automatic",,
"gpsvc","System.ServiceProcess.ServiceController[]","False","False","False","Group Policy Client","System.ServiceProcess.ServiceController[]",".","gpsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Automatic",,
"GraphicsPerfSvc","System.ServiceProcess.ServiceController[]","False","False","False","GraphicsPerfSvc","System.ServiceProcess.ServiceController[]",".","GraphicsPerfSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"hidserv","System.ServiceProcess.ServiceController[]","False","False","False","Human Interface Device Service","System.ServiceProcess.ServiceController[]",".","hidserv","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"HvHost","System.ServiceProcess.ServiceController[]","False","False","False","HV Host Service","System.ServiceProcess.ServiceController[]",".","HvHost","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"icssvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Mobile Hotspot Service","System.ServiceProcess.ServiceController[]",".","icssvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"IKEEXT","System.ServiceProcess.ServiceController[]","False","False","False","IKE and AuthIP IPsec Keying Modules","System.ServiceProcess.ServiceController[]",".","IKEEXT","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"InstallService","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft Store Install Service","System.ServiceProcess.ServiceController[]",".","InstallService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"IpxlatCfgSvc","System.ServiceProcess.ServiceController[]","False","False","False","IP Translation Configuration Service","System.ServiceProcess.ServiceController[]",".","IpxlatCfgSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"irmon","System.ServiceProcess.ServiceController[]","False","False","False","Infrared monitor service","System.ServiceProcess.ServiceController[]",".","irmon","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"KtmRm","System.ServiceProcess.ServiceController[]","False","False","False","KtmRm for Distributed Transaction Coordinator","System.ServiceProcess.ServiceController[]",".","KtmRm","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"lfsvc","System.ServiceProcess.ServiceController[]","False","False","False","Geolocation Service","System.ServiceProcess.ServiceController[]",".","lfsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"lltdsvc","System.ServiceProcess.ServiceController[]","False","False","False","Link-Layer Topology Discovery Mapper","System.ServiceProcess.ServiceController[]",".","lltdsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"LxpSvc","System.ServiceProcess.ServiceController[]","False","False","False","Language Experience Service","System.ServiceProcess.ServiceController[]",".","LxpSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"MapsBroker","System.ServiceProcess.ServiceController[]","False","False","False","Downloaded Maps Manager","System.ServiceProcess.ServiceController[]",".","MapsBroker","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Automatic",,
"MessagingService_70849","System.ServiceProcess.ServiceController[]","False","False","False","MessagingService_70849","System.ServiceProcess.ServiceController[]",".","MessagingService_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"MSiSCSI","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft iSCSI Initiator Service","System.ServiceProcess.ServiceController[]",".","MSiSCSI","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"msiserver","System.ServiceProcess.ServiceController[]","False","False","False","Windows Installer","System.ServiceProcess.ServiceController[]",".","msiserver","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"NaturalAuthentication","System.ServiceProcess.ServiceController[]","False","False","False","Natural Authentication","System.ServiceProcess.ServiceController[]",".","NaturalAuthentication","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"NcaSvc","System.ServiceProcess.ServiceController[]","False","False","False","Network Connectivity Assistant","System.ServiceProcess.ServiceController[]",".","NcaSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"NcdAutoSetup","System.ServiceProcess.ServiceController[]","False","False","False","Network Connected Devices Auto-Setup","System.ServiceProcess.ServiceController[]",".","NcdAutoSetup","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"Netlogon","System.ServiceProcess.ServiceController[]","False","False","False","Netlogon","System.ServiceProcess.ServiceController[]",".","Netlogon","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"Netman","System.ServiceProcess.ServiceController[]","False","False","False","Network Connections","System.ServiceProcess.ServiceController[]",".","Netman","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"NetSetupSvc","System.ServiceProcess.ServiceController[]","False","False","False","Network Setup Service","System.ServiceProcess.ServiceController[]",".","NetSetupSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"NetTcpPortSharing","System.ServiceProcess.ServiceController[]","False","False","False","Net.Tcp Port Sharing Service","System.ServiceProcess.ServiceController[]",".","NetTcpPortSharing","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"NgcCtnrSvc","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft Passport Container",,".","NgcCtnrSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"NgcSvc","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft Passport",,".","NgcSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"p2pimsvc","System.ServiceProcess.ServiceController[]","False","False","False","Peer Networking Identity Manager","System.ServiceProcess.ServiceController[]",".","p2pimsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"p2psvc","System.ServiceProcess.ServiceController[]","False","False","False","Peer Networking Grouping","System.ServiceProcess.ServiceController[]",".","p2psvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"PeerDistSvc","System.ServiceProcess.ServiceController[]","False","False","False","BranchCache","System.ServiceProcess.ServiceController[]",".","PeerDistSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"perceptionsimulation","System.ServiceProcess.ServiceController[]","False","False","False","Windows Perception Simulation Service","System.ServiceProcess.ServiceController[]",".","perceptionsimulation","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"PerfHost","System.ServiceProcess.ServiceController[]","False","False","False","Performance Counter DLL Host","System.ServiceProcess.ServiceController[]",".","PerfHost","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"PhoneSvc","System.ServiceProcess.ServiceController[]","False","False","False","Phone Service","System.ServiceProcess.ServiceController[]",".","PhoneSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"PimIndexMaintenanceSvc_70849","System.ServiceProcess.ServiceController[]","False","False","False","Contact Data_70849","System.ServiceProcess.ServiceController[]",".","PimIndexMaintenanceSvc_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"pla","System.ServiceProcess.ServiceController[]","False","False","False","Performance Logs & Alerts",,".","pla","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"PNRPAutoReg","System.ServiceProcess.ServiceController[]","False","False","False","PNRP Machine Name Publication Service","System.ServiceProcess.ServiceController[]",".","PNRPAutoReg","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"PNRPsvc","System.ServiceProcess.ServiceController[]","False","False","False","Peer Name Resolution Protocol","System.ServiceProcess.ServiceController[]",".","PNRPsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"PolicyAgent","System.ServiceProcess.ServiceController[]","False","False","False","IPsec Policy Agent","System.ServiceProcess.ServiceController[]",".","PolicyAgent","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"PrintNotify","System.ServiceProcess.ServiceController[]","False","False","False","Printer Extensions and Notifications","System.ServiceProcess.ServiceController[]",".","PrintNotify","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess, InteractiveProcess","Manual",,
"PrintWorkflowUserSvc_70849","System.ServiceProcess.ServiceController[]","False","False","False","PrintWorkflow_70849","System.ServiceProcess.ServiceController[]",".","PrintWorkflowUserSvc_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"PushToInstall","System.ServiceProcess.ServiceController[]","False","False","False","Windows PushToInstall Service","System.ServiceProcess.ServiceController[]",".","PushToInstall","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"QWAVE","System.ServiceProcess.ServiceController[]","False","False","False","Quality Windows Audio Video Experience","System.ServiceProcess.ServiceController[]",".","QWAVE","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"RasAuto","System.ServiceProcess.ServiceController[]","False","False","False","Remote Access Auto Connection Manager","System.ServiceProcess.ServiceController[]",".","RasAuto","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"RasMan","System.ServiceProcess.ServiceController[]","False","False","False","Remote Access Connection Manager","System.ServiceProcess.ServiceController[]",".","RasMan","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"RemoteAccess","System.ServiceProcess.ServiceController[]","False","False","False","Routing and Remote Access","System.ServiceProcess.ServiceController[]",".","RemoteAccess","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"RemoteRegistry","System.ServiceProcess.ServiceController[]","False","False","False","Remote Registry","System.ServiceProcess.ServiceController[]",".","RemoteRegistry","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"RetailDemo","System.ServiceProcess.ServiceController[]","False","False","False","Retail Demo Service","System.ServiceProcess.ServiceController[]",".","RetailDemo","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"RmSvc","System.ServiceProcess.ServiceController[]","False","False","False","Radio Management Service","System.ServiceProcess.ServiceController[]",".","RmSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"RpcLocator","System.ServiceProcess.ServiceController[]","False","False","False","Remote Procedure Call (RPC) Locator","System.ServiceProcess.ServiceController[]",".","RpcLocator","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"SCardSvr","System.ServiceProcess.ServiceController[]","False","False","False","Smart Card","System.ServiceProcess.ServiceController[]",".","SCardSvr","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"ScDeviceEnum","System.ServiceProcess.ServiceController[]","False","False","False","Smart Card Device Enumeration Service","System.ServiceProcess.ServiceController[]",".","ScDeviceEnum","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"SCPolicySvc","System.ServiceProcess.ServiceController[]","False","False","False","Smart Card Removal Policy","System.ServiceProcess.ServiceController[]",".","SCPolicySvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"SDRSVC","System.ServiceProcess.ServiceController[]","False","False","False","Windows Backup","System.ServiceProcess.ServiceController[]",".","SDRSVC","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"seclogon","System.ServiceProcess.ServiceController[]","False","False","False","Secondary Logon","System.ServiceProcess.ServiceController[]",".","seclogon","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"SEMgrSvc","System.ServiceProcess.ServiceController[]","False","False","False","Payments and NFC/SE Manager","System.ServiceProcess.ServiceController[]",".","SEMgrSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Disabled",,
"Sense","System.ServiceProcess.ServiceController[]","False","False","False","Windows Defender Advanced Threat Protection Service","System.ServiceProcess.ServiceController[]",".","Sense","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"SensorDataService","System.ServiceProcess.ServiceController[]","False","False","False","Sensor Data Service","System.ServiceProcess.ServiceController[]",".","SensorDataService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"SensorService","System.ServiceProcess.ServiceController[]","False","False","False","Sensor Service","System.ServiceProcess.ServiceController[]",".","SensorService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"SensrSvc","System.ServiceProcess.ServiceController[]","False","False","False","Sensor Monitoring Service","System.ServiceProcess.ServiceController[]",".","SensrSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"SessionEnv","System.ServiceProcess.ServiceController[]","False","False","False","Remote Desktop Configuration","System.ServiceProcess.ServiceController[]",".","SessionEnv","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"SharedAccess","System.ServiceProcess.ServiceController[]","False","False","False","Internet Connection Sharing (ICS)","System.ServiceProcess.ServiceController[]",".","SharedAccess","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"SharedRealitySvc","System.ServiceProcess.ServiceController[]","False","False","False","Spatial Data Service","System.ServiceProcess.ServiceController[]",".","SharedRealitySvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"shpamsvc","System.ServiceProcess.ServiceController[]","False","False","False","Shared PC Account Manager","System.ServiceProcess.ServiceController[]",".","shpamsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"smphost","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft Storage Spaces SMP","System.ServiceProcess.ServiceController[]",".","smphost","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"SmsRouter","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft Windows SMS Router Service.",,".","SmsRouter","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"SNMPTRAP","System.ServiceProcess.ServiceController[]","False","False","False","SNMP Trap","System.ServiceProcess.ServiceController[]",".","SNMPTRAP","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"spectrum","System.ServiceProcess.ServiceController[]","False","False","False","Windows Perception Service","System.ServiceProcess.ServiceController[]",".","spectrum","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"sppsvc","System.ServiceProcess.ServiceController[]","False","False","False","Software Protection","System.ServiceProcess.ServiceController[]",".","sppsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Automatic",,
"ssh-agent","System.ServiceProcess.ServiceController[]","False","False","False","OpenSSH Authentication Agent","System.ServiceProcess.ServiceController[]",".","ssh-agent","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Disabled",,
"SstpSvc","System.ServiceProcess.ServiceController[]","False","False","False","Secure Socket Tunneling Protocol Service","System.ServiceProcess.ServiceController[]",".","SstpSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"stisvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Image Acquisition (WIA)","System.ServiceProcess.ServiceController[]",".","stisvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"svsvc","System.ServiceProcess.ServiceController[]","False","False","False","Spot Verifier","System.ServiceProcess.ServiceController[]",".","svsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"swprv","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft Software Shadow Copy Provider","System.ServiceProcess.ServiceController[]",".","swprv","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"TapiSrv","System.ServiceProcess.ServiceController[]","False","False","False","Telephony","System.ServiceProcess.ServiceController[]",".","TapiSrv","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"TermService","System.ServiceProcess.ServiceController[]","False","False","False","Remote Desktop Services","System.ServiceProcess.ServiceController[]",".","TermService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"TieringEngineService","System.ServiceProcess.ServiceController[]","False","False","False","Storage Tiers Management","System.ServiceProcess.ServiceController[]",".","TieringEngineService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"TrkWks","System.ServiceProcess.ServiceController[]","False","False","False","Distributed Link Tracking Client","System.ServiceProcess.ServiceController[]",".","TrkWks","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"TrustedInstaller","System.ServiceProcess.ServiceController[]","False","False","False","Windows Modules Installer","System.ServiceProcess.ServiceController[]",".","TrustedInstaller","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"tzautoupdate","System.ServiceProcess.ServiceController[]","False","False","False","Auto Time Zone Updater","System.ServiceProcess.ServiceController[]",".","tzautoupdate","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Disabled",,
"UevAgentService","System.ServiceProcess.ServiceController[]","False","False","False","User Experience Virtualization Service","System.ServiceProcess.ServiceController[]",".","UevAgentService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Disabled",,
"UmRdpService","System.ServiceProcess.ServiceController[]","False","False","False","Remote Desktop Services UserMode Port Redirector","System.ServiceProcess.ServiceController[]",".","UmRdpService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"UnistoreSvc_70849","System.ServiceProcess.ServiceController[]","False","False","False","User Data Storage_70849","System.ServiceProcess.ServiceController[]",".","UnistoreSvc_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"upnphost","System.ServiceProcess.ServiceController[]","False","False","False","UPnP Device Host","System.ServiceProcess.ServiceController[]",".","upnphost","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"UserDataSvc_70849","System.ServiceProcess.ServiceController[]","False","False","False","User Data Access_70849","System.ServiceProcess.ServiceController[]",".","UserDataSvc_70849","System.ServiceProcess.ServiceController[]",,"Stopped","224","Manual",,
"VacSvc","System.ServiceProcess.ServiceController[]","False","False","False","Volumetric Audio Compositor Service","System.ServiceProcess.ServiceController[]",".","VacSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"vds","System.ServiceProcess.ServiceController[]","False","False","False","Virtual Disk","System.ServiceProcess.ServiceController[]",".","vds","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"vmicguestinterface","System.ServiceProcess.ServiceController[]","False","False","False","Hyper-V Guest Service Interface","System.ServiceProcess.ServiceController[]",".","vmicguestinterface","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"vmicheartbeat","System.ServiceProcess.ServiceController[]","False","False","False","Hyper-V Heartbeat Service","System.ServiceProcess.ServiceController[]",".","vmicheartbeat","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"vmickvpexchange","System.ServiceProcess.ServiceController[]","False","False","False","Hyper-V Data Exchange Service","System.ServiceProcess.ServiceController[]",".","vmickvpexchange","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"vmicrdv","System.ServiceProcess.ServiceController[]","False","False","False","Hyper-V Remote Desktop Virtualization Service","System.ServiceProcess.ServiceController[]",".","vmicrdv","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"vmicshutdown","System.ServiceProcess.ServiceController[]","False","False","False","Hyper-V Guest Shutdown Service","System.ServiceProcess.ServiceController[]",".","vmicshutdown","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"vmictimesync","System.ServiceProcess.ServiceController[]","False","False","False","Hyper-V Time Synchronization Service","System.ServiceProcess.ServiceController[]",".","vmictimesync","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"vmicvmsession","System.ServiceProcess.ServiceController[]","False","False","False","Hyper-V PowerShell Direct Service","System.ServiceProcess.ServiceController[]",".","vmicvmsession","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"vmicvss","System.ServiceProcess.ServiceController[]","False","False","False","Hyper-V Volume Shadow Copy Requestor","System.ServiceProcess.ServiceController[]",".","vmicvss","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"vmvss","System.ServiceProcess.ServiceController[]","False","False","False","VMware Snapshot Provider","System.ServiceProcess.ServiceController[]",".","vmvss","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"VSS","System.ServiceProcess.ServiceController[]","False","False","False","Volume Shadow Copy","System.ServiceProcess.ServiceController[]",".","VSS","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"W32Time","System.ServiceProcess.ServiceController[]","False","False","False","Windows Time","System.ServiceProcess.ServiceController[]",".","W32Time","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"WaaSMedicSvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Update Medic Service","System.ServiceProcess.ServiceController[]",".","WaaSMedicSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"WalletService","System.ServiceProcess.ServiceController[]","False","False","False","WalletService","System.ServiceProcess.ServiceController[]",".","WalletService","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WarpJITSvc","System.ServiceProcess.ServiceController[]","False","False","False","WarpJITSvc","System.ServiceProcess.ServiceController[]",".","WarpJITSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"wbengine","System.ServiceProcess.ServiceController[]","False","False","False","Block Level Backup Engine Service","System.ServiceProcess.ServiceController[]",".","wbengine","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"WbioSrvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Biometric Service","System.ServiceProcess.ServiceController[]",".","WbioSrvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"wcncsvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Connect Now - Config Registrar","System.ServiceProcess.ServiceController[]",".","wcncsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WdiServiceHost","System.ServiceProcess.ServiceController[]","False","False","False","Diagnostic Service Host","System.ServiceProcess.ServiceController[]",".","WdiServiceHost","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WdiSystemHost","System.ServiceProcess.ServiceController[]","False","False","False","Diagnostic System Host","System.ServiceProcess.ServiceController[]",".","WdiSystemHost","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WebClient","System.ServiceProcess.ServiceController[]","False","False","False","WebClient","System.ServiceProcess.ServiceController[]",".","WebClient","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"Wecsvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Event Collector","System.ServiceProcess.ServiceController[]",".","Wecsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WEPHOSTSVC","System.ServiceProcess.ServiceController[]","False","False","False","Windows Encryption Provider Host Service","System.ServiceProcess.ServiceController[]",".","WEPHOSTSVC","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"wercplsupport","System.ServiceProcess.ServiceController[]","False","False","False","Problem Reports and Solutions Control Panel Support","System.ServiceProcess.ServiceController[]",".","wercplsupport","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WerSvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Error Reporting Service","System.ServiceProcess.ServiceController[]",".","WerSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Disabled",,
"WFDSConMgrSvc","System.ServiceProcess.ServiceController[]","False","False","False","Wi-Fi Direct Services Connection Manager Service","System.ServiceProcess.ServiceController[]",".","WFDSConMgrSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WiaRpc","System.ServiceProcess.ServiceController[]","False","False","False","Still Image Acquisition Events","System.ServiceProcess.ServiceController[]",".","WiaRpc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WinRM","System.ServiceProcess.ServiceController[]","False","False","False","Windows Remote Management (WS-Management)","System.ServiceProcess.ServiceController[]",".","WinRM","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"wisvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Insider Service","System.ServiceProcess.ServiceController[]",".","wisvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"WlanSvc","System.ServiceProcess.ServiceController[]","False","False","False","WLAN AutoConfig","System.ServiceProcess.ServiceController[]",".","WlanSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"wlidsvc","System.ServiceProcess.ServiceController[]","False","False","False","Microsoft Account Sign-in Assistant","System.ServiceProcess.ServiceController[]",".","wlidsvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"wlpasvc","System.ServiceProcess.ServiceController[]","False","False","False","Local Profile Assistant Service","System.ServiceProcess.ServiceController[]",".","wlpasvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WManSvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Management Service","System.ServiceProcess.ServiceController[]",".","WManSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"wmiApSrv","System.ServiceProcess.ServiceController[]","False","False","False","WMI Performance Adapter","System.ServiceProcess.ServiceController[]",".","wmiApSrv","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"WMPNetworkSvc","System.ServiceProcess.ServiceController[]","False","False","False","Windows Media Player Network Sharing Service","System.ServiceProcess.ServiceController[]",".","WMPNetworkSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"workfolderssvc","System.ServiceProcess.ServiceController[]","False","False","False","Work Folders","System.ServiceProcess.ServiceController[]",".","workfolderssvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"WpcMonSvc","System.ServiceProcess.ServiceController[]","False","False","False","Parental Controls","System.ServiceProcess.ServiceController[]",".","WpcMonSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Manual",,
"WPDBusEnum","System.ServiceProcess.ServiceController[]","False","False","False","Portable Device Enumerator Service","System.ServiceProcess.ServiceController[]",".","WPDBusEnum","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"WSearch","System.ServiceProcess.ServiceController[]","False","False","False","Windows Search","System.ServiceProcess.ServiceController[]",".","WSearch","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess","Disabled",,
"wuauserv","System.ServiceProcess.ServiceController[]","False","False","False","Windows Update","System.ServiceProcess.ServiceController[]",".","wuauserv","System.ServiceProcess.ServiceController[]",,"Stopped","Win32OwnProcess, Win32ShareProcess","Manual",,
"WwanSvc","System.ServiceProcess.ServiceController[]","False","False","False","WWAN AutoConfig","System.ServiceProcess.ServiceController[]",".","WwanSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"XblAuthManager","System.ServiceProcess.ServiceController[]","False","False","False","Xbox Live Auth Manager","System.ServiceProcess.ServiceController[]",".","XblAuthManager","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"XblGameSave","System.ServiceProcess.ServiceController[]","False","False","False","Xbox Live Game Save","System.ServiceProcess.ServiceController[]",".","XblGameSave","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"XboxGipSvc","System.ServiceProcess.ServiceController[]","False","False","False","Xbox Accessory Management Service","System.ServiceProcess.ServiceController[]",".","XboxGipSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,
"XboxNetApiSvc","System.ServiceProcess.ServiceController[]","False","False","False","Xbox Live Networking Service","System.ServiceProcess.ServiceController[]",".","XboxNetApiSvc","System.ServiceProcess.ServiceController[]",,"Stopped","Win32ShareProcess","Manual",,

View file

@ -0,0 +1,58 @@
#TYPE System.IO.FileInfo
"PSPath","PSParentPath","PSChildName","PSDrive","PSProvider","PSIsContainer","Mode","VersionInfo","BaseName","Target","LinkType","Name","Length","DirectoryName","Directory","IsReadOnly","Exists","FullName","Extension","CreationTime","CreationTimeUtc","LastAccessTime","LastAccessTimeUtc","LastWriteTime","LastWriteTimeUtc","Attributes"
"Microsoft.PowerShell.Core\FileSystem::C:\Users\champuser\SYS320\week2\empty1.ps1","Microsoft.PowerShell.Core\FileSystem::C:\Users\champuser\SYS320\week2","empty1.ps1","C","Microsoft.PowerShell.Core\FileSystem","False","-a----","File: C:\Users\champuser\SYS320\week2\empty1.ps1
InternalName:
OriginalFilename:
FileVersion:
FileDescription:
Product:
ProductVersion:
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language:
","empty1","System.Collections.Generic.List`1[System.String]",,"empty1.ps1","0","C:\Users\champuser\SYS320\week2","C:\Users\champuser\SYS320\week2","False","True","C:\Users\champuser\SYS320\week2\empty1.ps1",".ps1","9/5/2024 2:29:22 PM","9/5/2024 6:29:22 PM","9/5/2024 2:29:22 PM","9/5/2024 6:29:22 PM","9/5/2024 2:29:22 PM","9/5/2024 6:29:22 PM","Archive"
"Microsoft.PowerShell.Core\FileSystem::C:\Users\champuser\SYS320\week2\empty2.ps1","Microsoft.PowerShell.Core\FileSystem::C:\Users\champuser\SYS320\week2","empty2.ps1","C","Microsoft.PowerShell.Core\FileSystem","False","-a----","File: C:\Users\champuser\SYS320\week2\empty2.ps1
InternalName:
OriginalFilename:
FileVersion:
FileDescription:
Product:
ProductVersion:
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language:
","empty2","System.Collections.Generic.List`1[System.String]",,"empty2.ps1","0","C:\Users\champuser\SYS320\week2","C:\Users\champuser\SYS320\week2","False","True","C:\Users\champuser\SYS320\week2\empty2.ps1",".ps1","9/5/2024 2:29:29 PM","9/5/2024 6:29:29 PM","9/5/2024 2:29:29 PM","9/5/2024 6:29:29 PM","9/5/2024 2:29:29 PM","9/5/2024 6:29:29 PM","Archive"
"Microsoft.PowerShell.Core\FileSystem::C:\Users\champuser\SYS320\week2\empty4.ps1","Microsoft.PowerShell.Core\FileSystem::C:\Users\champuser\SYS320\week2","empty4.ps1","C","Microsoft.PowerShell.Core\FileSystem","False","-a----","File: C:\Users\champuser\SYS320\week2\empty4.ps1
InternalName:
OriginalFilename:
FileVersion:
FileDescription:
Product:
ProductVersion:
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language:
","empty4","System.Collections.Generic.List`1[System.String]",,"empty4.ps1","0","C:\Users\champuser\SYS320\week2","C:\Users\champuser\SYS320\week2","False","True","C:\Users\champuser\SYS320\week2\empty4.ps1",".ps1","9/5/2024 2:29:34 PM","9/5/2024 6:29:34 PM","9/5/2024 2:29:34 PM","9/5/2024 6:29:34 PM","9/5/2024 2:29:34 PM","9/5/2024 6:29:34 PM","Archive"
"Microsoft.PowerShell.Core\FileSystem::C:\Users\champuser\SYS320\week2\PowerShellBasicLab.ps1","Microsoft.PowerShell.Core\FileSystem::C:\Users\champuser\SYS320\week2","PowerShellBasicLab.ps1","C","Microsoft.PowerShell.Core\FileSystem","False","-a----","File: C:\Users\champuser\SYS320\week2\PowerShellBasicLab.ps1
InternalName:
OriginalFilename:
FileVersion:
FileDescription:
Product:
ProductVersion:
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language:
","PowerShellBasicLab","System.Collections.Generic.List`1[System.String]",,"PowerShellBasicLab.ps1","1625","C:\Users\champuser\SYS320\week2","C:\Users\champuser\SYS320\week2","False","True","C:\Users\champuser\SYS320\week2\PowerShellBasicLab.ps1",".ps1","9/5/2024 2:07:40 PM","9/5/2024 6:07:40 PM","9/5/2024 2:13:46 PM","9/5/2024 6:13:46 PM","9/5/2024 2:13:46 PM","9/5/2024 6:13:46 PM","Archive"

View file

@ -0,0 +1,9 @@
(Join-Path $PSScriptRoot .\FunctionsAndEventLogs.ps1)
# get login and logoffs from past 14 days
$loginoutsTable = getWinLogons(14)
$loginoutsTable
# get shutdowns from past 20 days
$shutdownsTable = getShutdowns(20)
$shutdownsTable

View file

@ -0,0 +1,64 @@
# 9/12/24
# 1. Get login and logoff records from Windows Events
#Get-EventLog System -source Microsoft-Windows-Winlogon
# 2. Get login and logoff reords from windows events and save to a variable
# Get the last 14 days
# 3. Translate SID to Username
# 4. Turn to function with 1 input (number of days)
function getWinLogons ($days){
$loginouts = Get-EventLog System -source Microsoft-Windows-Winlogon -After (Get-Date).AddDays(-$days)
$loginoutsTable = @()
for($i=0; $i -lt $loginouts.Count; $i++){
# create event property value
$event = ""
if($loginouts[$i].InstanceID -eq 7001) {$event="Logon"}
if($loginouts[$i].InstanceID -eq 7002) {$event="Logoff"}
# create user property value
$userSID = New-Object System.Security.Principal.SecurityIdentifier `
($loginouts[$i].ReplacementStrings[1])
$userNAME = $userSID.Translate([System.Security.Principal.NTAccount])
# add each entry to table
$loginoutsTable += [pscustomobject]@{"Time" = $loginouts[$i].TimeGenerated; `
"Id" = $loginouts[$i].InstanceId; `
"Event" = $event; `
"User" = $userNAME;
}
}
return $loginoutsTable
}
#getWinLogons(30)
# 5. Get shutdown and start events
function getShutdowns ($days){
$shutdowns = Get-EventLog System -After (Get-Date).AddDays(-$days) | where { $_.EventID -match "600[56]" }
$shutdownsTable = @()
for($i=0; $i -lt $shutdowns.Count; $i++){
# create event property value
$event = ""
if($shutdowns[$i].EventID -eq 6006) {$event="Shutdown"}
if($shutdowns[$i].EventID -eq 6005) {$event="Start"}
# add each entry to table
$shutdownsTable += [pscustomobject]@{"Time" = $shutdowns[$i].TimeGenerated; `
"Id" = $shutdowns[$i].EventId; `
"Event" = $event; `
"User" = "SYSTEM";
}
}
return $shutdownsTable
}
#getShutdowns

View file

@ -0,0 +1,34 @@
# 9/26/24
# input page name, http code, and browser
# output IP addresses that visited the given page, with given browser, and got given HTTP response
Function Apache-Logs ([string]$page, [string]$HTTPcode, [string]$browser){
$logsnotformatted = Get-Content C:\xampp\apache\logs\access.log
$tablerecords = @()
for($i=0; $i -lt $logsnotformatted.Length; $i++){
# split string into words
$words = $logsnotformatted[$i] -split " "
# filter out logs that don't match inputs
if(($words[6] -inotlike $page) -OR ($words[8] -inotcontains $HTTPcode) `
-OR ($words[11].Trim('"') -inotlike $browser)){
continue
}
# create custom objects for matches
$tablerecords += [pscustomobject]@{"IP" = $words[0]; `
"Page" = $words[6]; `
"Response" = $words[8]; `
"Browser" = -join $words[11..($words.Length - 1)]; }
}# end of for loop
return $tablerecords
}
#$ips1 = Apache-Logs "/index.html" "200" "Mozilla/5.0"
#$ips1
#$ips2 = Apache-Logs "/*external*" "404" "Mozilla/5.0"
#$ips2

View file

@ -0,0 +1,26 @@
# 9/26/24
# parses apache log into pscustomobjects, filters IPs for 10.*
function ApacheLogs1(){
$logsnotformatted = Get-Content C:\xampp\apache\logs\access.log
$tablerecords = @()
for($i=0; $i -lt $logsnotformatted.Length; $i++){
# split string into words
$words = $logsnotformatted[$i] -split " "
$tablerecords += [pscustomobject]@{"IP" = $words[0]; `
"Time" = $words[3].Trim('['); `
"Method" = $words[5].Trim('"'); `
"Page" = $words[6]; `
"Protocol" = $words[7]; `
"Response" = $words[8]; `
"Referrer" = $words[10]; `
"Client" = -join $words[11..($words.Length - 1)]; }
}# end of for loop
return $tablerecords | Where-Object { $_.IP -ilike "10.*"}
}
$tablerecords = ApacheLogs1
#$tablerecords

View file

@ -0,0 +1,41 @@
# 2. list all the apache logs of XAMPP
Get-Content C:\xampp\apache\logs\access.log
# 3. list last 5 lines of the apache logs of XAMPP
Get-Content C:\xampp\apache\logs\access.log -Tail 5
# 4. display only 404 and 400 errors
Get-Content C:\xampp\apache\logs\access.log | Select-String ' 404 ', ' 400 '
# 5. display all logs that are NOT code 200
Get-Content C:\xampp\apache\logs\access.log | Select-String ' 200 '
# 6. from every file with .log extension, get those that contain the word '-error'
$A = Get-ChildItem C:\xampp\apache\logs\*.log | Select-String 'error'
# select last 5 from array
$A[-5..-1]
# 7. display ip addresses for 404 errors
$notfounds = Get-Content C:\xampp\apache\logs\access.log | Select-String ' 404 '
$regex = [regex] "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
$ipsunorganized = $regex.Matches($notfounds)
$ips = @()
for($i=0; $i -lt $ipsunorganized.Count; $i++){
$ips += [pscustomobject]@{ "IP" = $ipsunorganized[$i].Value; }
}
$ips | Where-Object { $_.IP -ilike "10.*" }
# 8. count ips from previous output
$ipsoftens = $ips | Where-Object { $_.IP -ilike "10.*" }
$counts = $ipsoftens | Group-Object IP
$counts | Select-Object Count, Name
# 9
# run external script Apache-Logs.ps1
#(Join-Path $PSScriptRoot C:\Users\champuser\SYS320\week4\Apache-Logs.ps1)
. "C:\Users\champuser\SYS320\week4\Apache-Logs.ps1"
$ips = Apache-Logs "/*external*" "404" "Mozilla/5.0"
#$ips

View file

@ -0,0 +1,21 @@
$scraped_page = Invoke-WebRequest -TimeoutSec 10 http://localhost/ToBeScraped.html
# 9. get link count
#$scraped_page.Links.Count
# 10. get the links as html elements
#$scraped_page.Links
# 11. get the links and display only the URL and its text
#$scraped_page.Links | select outerText, href
# 12. get out text of every element with tag h2
#$h2s=$scraped_page.ParsedHtml.body.getElementsByTagName("h2") | select outerText
#$h2s
# 13. print innterText of every div element that has the class as "div-1"
$divs1=$scraped_page.ParsedHtml.body.getElementsByTagName("div") | `
where { $_.getAttributeNode("class").value -ilike "div-1" } | select innerText
$divs1

View file

@ -0,0 +1,47 @@
function gatherClasses(){
$page = Invoke-WebRequest -TimeoutSec 2 http://localhost/Courses.html
# get all tr elements
$trs=$page.ParsedHTML.body.getElementsByTagName("tr")
# array to hold results
$FullTable = @()
for($i=1; $i -lt $trs.length; $i++){
# get every td element of current tr element
$tds= $trs[$i].getElementsByTagName("td")
# want to seperate start time and end time from one time field
$Times = $tds[5].innerText.split(" - ")
$FullTable += [pscustomobject]@{"Class Code" = $tds[0].innerText; `
"Title" = $tds[1].innerText; `
"Days" = $tds[4].innerText; `
"Time Start" = $Times[0]; `
"Time End" = $Times[1]; `
"Instructor" = $tds[6].innerText; `
"Location" = $tds[9].innerText; `
}
}# for loop end
$Fulltable = daysTranslator($FullTable)
return $FullTable
}
function daysTranslator($FullTable){
for($i=0; $i -lt $FullTable.length; $i++){
$Days = @()
if($FullTable[$i].Days -ilike "M*"){ $Days += "Monday" }
if($FullTable[$i].Days -ilike "*T[TWF]*"){ $Days += "Tuesday" }
if($FullTable[$i].Days -ilike "*W*"){ $Days += "Wednesday" }
if($FullTable[$i].Days -ilike "*TH*"){ $Days += "Thursday" }
if($FullTable[$i].Days -ilike "*F*"){ $Days += "Friday" }
$FullTable[$i].Days = $Days
}# for loop end
return $FullTable
}

View file

@ -0,0 +1,30 @@
(Join-Path $PSScriptRoot .\ScrapingChamplainClasses.ps1)
$Fulltable = gatherClasses
# i. all classes taught by Furkan Paligu
#$Fulltable | select "Class Code", Instructor, Location, Days, "Time Start", "Time End" `
#| where { $_."Instructor" -ilike "Furkan Paligu" }
# ii. list all classes in JOYC 310 on Mondays, display class code and times, sort by start time
#$Fulltable | Where-Object { ($_."Location" -ilike "JOYC 310") -and ($_.days -contains "Monday")} | `
#Sort-Object "Time Start" | `
#Select-Object "Time Start", "Time End", "Class Code"
# iii. create list of all instructors that teach at least one course in SYS, NET, SEC, FOR, CSI, DAT.
# sort by name and make it unique
$ITSInstrucotrs = $Fulltable | Where-Object { ($_."Class Code" -ilike "SYS*") -or `
($_."Class Code" -ilike "NET*") -or `
($_."Class Code" -ilike "SEC*") -or `
($_."Class Code" -ilike "FOR*") -or `
($_."Class Code" -ilike "CSI*") -or `
($_."Class Code" -ilike "DAT*") } `
| Sort-Object "Instructor" `
| Select-Object "Instructor" -Unique
# iv. group instructors by number of classes they are teaching
# sort by num classes teaching
$FullTable | Where { $_.Instructor -in $ITSInstrucotrs.Instructor } `
| Group-Object "Instructor" | Select-Object Count,Name | Sort-Object Count -Descending

View file

@ -0,0 +1,97 @@
. (Join-Path $PSScriptRoot String-Helper.ps1)
. (Join-Path $PSScriptRoot Users.ps1)
<# ******************************
Function: get event logs from login and logouts
Input: time back to search
Output: Array of login/out objects
****************************** #>
function getLogInAndOffs($timeBack){
$loginouts = Get-EventLog system -source Microsoft-Windows-Winlogon -After (Get-Date).AddDays("-"+"$timeBack")
$loginoutsTable = @()
for($i=0; $i -lt $loginouts.Count; $i++){
$type = ""
if($loginouts[$i].InstanceID -eq 7001) {$type="Logon"}
if($loginouts[$i].InstanceID -eq 7002) {$type="Logoff"}
# Check if user exists first
$user = (New-Object System.Security.Principal.SecurityIdentifier `
$loginouts[$i].ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])
$loginoutsTable += [pscustomobject]@{"Time" = $loginouts[$i].TimeGenerated; `
"Id" = $loginouts[$i].InstanceId; `
"Event" = $type; `
"User" = $user;
}
} # End of for
return $loginoutsTable
} # End of function getLogInAndOffs
<# ******************************
Function: get windows event logs for failed logins
Input: time to search back
Output: array of failed login objects
****************************** #>
function getFailedLogins($timeBack){
$failedlogins = Get-EventLog security -After (Get-Date).AddDays("-"+"$timeBack") | Where { $_.InstanceID -eq "4625" }
$failedloginsTable = @()
for($i=0; $i -lt $failedlogins.Count; $i++){
$account=""
$domain=""
$usrlines = getMatchingLines $failedlogins[$i].Message "*Account Name*"
$usr = $usrlines[1].Split(":")[1].trim()
$dmnlines = getMatchingLines $failedlogins[$i].Message "*Account Domain*"
$dmn = $dmnlines[1].Split(":")[1].trim()
$user = $dmn+"\"+$usr;
$failedloginsTable += [pscustomobject]@{"Time" = $failedlogins[$i].TimeGenerated; `
"Id" = $failedlogins[$i].InstanceId; `
"Event" = "Failed"; `
"User" = $user;
}
}
return $failedloginsTable
} # End of function getFailedLogins
<# ******************************************************
Functions: get at risk users, >10 failed logins in time frame
Input: time to search back
Output: array of users & numfailedlogin objects
********************************************************* #>
function getAtRiskUsers($timeBack){
$users = getEnabledUsers
$failedLogins = getFailedLogins $timeBack
$atRiskUsers = @()
for($i=0; $i -lt $users.Count; $i++){
$name = $users[$i].Name
$failCount = ($failedLogins | Where-Object { $_.User -ilike "*$name"} ).Count
if($failCount -ge 10){
$atRiskUsers += [pscustomobject]@{"User" = $name; `
"Failed Logins" = $failCount; }
}
}
return $atRiskUsers
}

View file

@ -0,0 +1,55 @@
<# String-Helper
*************************************************************
This script contains functions that help with String/Match/Search
operations.
*************************************************************
#>
<# ******************************************************
Functions: Get Matching Lines
Input: 1) Text with multiple lines
2) Keyword
Output: 1) Array of lines that contain the keyword
********************************************************* #>
function getMatchingLines($contents, $lookline){
$allines = @()
$splitted = $contents.split([Environment]::NewLine)
for($j=0; $j -lt $splitted.Count; $j++){
if($splitted[$j].Length -gt 0){
if($splitted[$j] -ilike $lookline){ $allines += $splitted[$j] }
}
}
return $allines
}
<# ******************************************************
Functions: Checks if password is >6char, includes a digit, and includes a special character
Input: 1) Password
Output: 1) Boolean if password is valid
********************************************************* #>
function checkpassword($passwd){
Write-Host $passwd
if($passwd.Length -lt 6){
Write-Host "failed length test" | Out-String
return $false
}
elseif($passwd -notmatch "[0-9]"){
Write-Host "Digit Test" | Out-String
return $false
}
elseif($passwd -notmatch "[!$%^@#&().-]"){
Write-Host "special character test" | Out-String
return $false
}else{
Write-Host "here"
return $true
}
}
#checkpassword("abcd123!")

View file

@ -0,0 +1,67 @@
. (Join-Path $PSScriptRoot ../week4/ParsingApacheLogs.ps1)
. (Join-Path $PSScriptRoot Users.ps1)
. (Join-Path $PSScriptRoot Event-Logs.ps1)
clear
$Prompt = "Please choose your operation:`n"
$Prompt += "1 - Display last 10 apache logs`n"
$Prompt += "2 - Display last 10 failed logins (all users)`n"
$Prompt += "3 - Display At Risk users`n"
$Prompt += "4 - Start Chrome`n"
$Prompt += "5 - Exit`n"
$operation = $true
while($operation){
Write-Host $Prompt | Out-String
$choice = Read-Host
if($choice -eq 5){
Write-Host "Goodbye" | Out-String
exit
$operation = $false
}
#display last 10 apache logs
elseif($choice -eq 1){1
$apachelogs= ApacheLogs1
$apachelogs[-10..-1] | Select IP, Time, Method, Page, Protocol, Response, referrer, Client | Out-String
}
#display last 10 failed logins(all user)
elseif($choice -eq 2){
$failedlogins = getFailedLogins 90
$failedlogins[-10..-1] | Select Time, User | Out-String
}
#display at risk users
elseif($choice -eq 3){
$timeSince = Read-Host -Prompt "enter number of days to search back"
$atRiskUsers = getAtRiskUsers $timeSince
Write-Host ($atRiskUsers | Format-Table | Out-String)
}
# start chrome, and navigate to champlain.edu - if no instance of chrome is running
elseif($choice -eq 4){
if(Get-Process -Name chrome -ErrorAction SilentlyContinue){
Write-Host "Chrome Already Running."
}
else{
Write-Host "Chrome not running. Starting now"
Start-Process 'C:\Program Files\Google\Chrome\Application\chrome.exe' `
'--new-window https://champlain.edu'
}
}
else{
Write-Host "invalid input. 1-5 allowed`n"
}
}

View file

@ -0,0 +1,81 @@

<# ******************************
# Create a function that returns a list of NAMEs AND SIDs only for enabled users
****************************** #>
function getEnabledUsers(){
$enabledUsers = Get-LocalUser | Where-Object { $_.Enabled -ilike "True" } | Select-Object Name, SID
return $enabledUsers
}
function checkuser($name){
$users = Get-LocalUser | Where-Object { $_.name -ilike $name }
if($users.Count -lt 1){ return $false}
else { return $true }
}
#checkuser("champuser2")
<# ******************************
# Create a function that returns a list of NAMEs AND SIDs only for not enabled users
****************************** #>
function getNotEnabledUsers(){
$notEnabledUsers = Get-LocalUser | Where-Object { $_.Enabled -ilike "False" } | Select-Object Name, SID
return $notEnabledUsers
}
<# ******************************
# Create a function that adds a user
****************************** #>
function createAUser($name, $password){
$params = @{
Name = $name
Password = $password
}
$newUser = New-LocalUser @params
# ***** Policies ******
# User should be forced to change password
Set-LocalUser $newUser -PasswordNeverExpires $false
# First time created users should be disabled
Disable-LocalUser $newUser
}
function removeAUser($name){
$userToBeDeleted = Get-LocalUser | Where-Object { $_.name -ilike $name }
Remove-LocalUser $userToBeDeleted
}
function disableAUser($name){
$userToBeDeleted = Get-LocalUser | Where-Object { $_.name -ilike $name }
Disable-LocalUser $userToBeDeleted
}
function enableAUser($name){
$userToBeEnabled = Get-LocalUser | Where-Object { $_.name -ilike $name }
Enable-LocalUser $userToBeEnabled
}

View file

@ -0,0 +1,157 @@
. (Join-Path $PSScriptRoot Users.ps1)
. (Join-Path $PSScriptRoot Event-Logs.ps1)
clear
$Prompt = "Please choose your operation:`n"
$Prompt += "1 - List Enabled Users`n"
$Prompt += "2 - List Disabled Users`n"
$Prompt += "3 - Create a User`n"
$Prompt += "4 - Remove a User`n"
$Prompt += "5 - Enable a User`n"
$Prompt += "6 - Disable a User`n"
$Prompt += "7 - Get Log-In Logs`n"
$Prompt += "8 - Get Failed Log-In Logs`n"
$Prompt += "9 - List at Risk Users`n"
$Prompt += "0 - Exit`n"
$operation = $true
while($operation){
Write-Host $Prompt | Out-String
$choice = Read-Host
# exit
if($choice -eq 0){
Write-Host "Goodbye" | Out-String
exit
$operation = $false
}
# get enabled users
elseif($choice -eq 1){
$enabledUsers = getEnabledUsers
Write-Host ($enabledUsers | Format-Table | Out-String)
}
#get not enabled users
elseif($choice -eq 2){
$notEnabledUsers = getNotEnabledUsers
Write-Host ($notEnabledUsers | Format-Table | Out-String)
}
# Create a user
elseif($choice -eq 3){
$name = Read-Host -Prompt "Please enter the username for the new user"
$chkuser = checkuser $name
if($chkuser -ne $true){ # check if user already exists
$password = Read-Host -AsSecureString -Prompt "Please enter the password for the new user"
$bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)
$plainpassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr)
$chkPasswd = checkpassword $plainpassword
if($chkPasswd -ne $false){ # check if password is valid
createAUser $name $password
Write-Host "User: $name is created." | Out-String
}
else{ Write-Host "invalid password" | Out-String }
}
else { Write-Host "user already exists" | Out-String}
}
# Remove a user
elseif($choice -eq 4){
$name = Read-Host -Prompt "Please enter the username for the user to be removed"
$chkUser = checkuser $name
if($chkUser -eq $true){# check if user already exists
removeAUser $name
Write-Host "User: $name Removed." | Out-String
}
else { Write-Host "user does not exist" | Out-String }
}
# Enable a user
elseif($choice -eq 5){
$name = Read-Host -Prompt "Please enter the username for the user to be enabled"
$chkUser = checkuser $name
if($chkUser -eq $true){ # check if user already exists
enableAUser $name
Write-Host "User: $name Enabled." | Out-String
}
else { Write-Host "user does not exist" | Out-String }
}
# Disable a user
elseif($choice -eq 6){
$name = Read-Host -Prompt "Please enter the username for the user to be disabled"
$chkUser = checkuser $name
if($chkUser -eq $true){ # check if user already exists
disableAUser $name
Write-Host "User: $name Disabled." | Out-String
}
else{ Write-Host "user does not exist" | Out-String }
}
# get login logs
elseif($choice -eq 7){
$name = Read-Host -Prompt "Please enter the username for the user logs"
$chkUser = checkuser $name
if($chkUser -eq $true){ # check if user already exists
$timeSince = Read-Host -Prompt "enter number of days to search back"
$userLogins = getLogInAndOffs $timeSince
Write-Host ($userLogins | Where-Object { $_.User -ilike "*$name"} | Format-Table | Out-String)
}
else { Write-Host "user does not exist" | Out-String }
}
# get failed login logs
elseif($choice -eq 8){
$name = Read-Host -Prompt "Please enter the username for the user's failed login logs"
$chkUser = checkuser $name
if($chkUser -eq $true){ # check if user already exists
$timeSince = Read-Host -Prompt "enter number of days to search back"
$userLogins = getFailedLogins $timeSince
Write-Host ($userLogins | Where-Object { $_.User -ilike "*$name"} | Format-Table | Out-String)
}
else { Write-Host "user does not exist" | Out-String }
}
# get at risk users, >10 failed logins in time frame
elseif($choice -eq 9){
$timeSince = Read-Host -Prompt "enter number of days to search back"
$atRiskUsers = getAtRiskUsers $timeSince
Write-Host ($atRiskUsers | Format-Table | Out-String)
}
else{
Write-Host "invalid input: 0-9 allowed`n" | Out-String
}

View file

@ -0,0 +1,74 @@
#10/12/24
function readConfiguration(){
Set-Location "C:\Users\champuser\SYS320\week7"
$configs = (Get-Content -Path ./configuration.txt)
$days = $configs[0]
$time = $configs[1]
return [PSCustomObject]@{
Days = $days
ExecutionTime = $time
}
}
function changeConfiguration(){
$daysBack = Read-Host -Prompt "Number of days for which the logs will be obtained"
if($daysBack -notmatch '^[0-9]+$'){
Write-Host "invalid input. digits only" | Out-String
continue
}
$executionTime = Read-Host -Prompt "Daily execution time of the script"
if($executionTime -inotmatch '^(1?[1-9]):([0-5][0-9])\s(AM|PM)$'){
Write-Host "invalid input. digit:digitdigit am/pm allowed" | Out-String
continue
}
"$daysBack`n$executionTime" | Set-Content ./configuration.txt
Write-Host "Configuration Changed`n" | Out-String
}
#main loop
function configurationMenu(){
clear
$Prompt = "`nPlease choose your operation:`n"
$Prompt += "1 - Show Configuration`n"
$Prompt += "2 - Change Configuration`n"
$Prompt += "3 - Exit`n"
$operation = $true
while($operation){
Write-Host $Prompt | Out-String
$choice = Read-Host
# exit
if($choice -eq 3){
Write-Host "Goodbye" | Out-String
exit
$operation = $false
}
# show configuration
elseif($choice -eq 1){
$config = readConfiguration
$config
}
# change configuration
elseif($choice -eq 2){
changeConfiguration
}
else{
Write-Host "invalid input: 1-3 allowed`n" | Out-String
}
}
}
#configurationMenu

View file

@ -0,0 +1,18 @@
# sends an email to charlotte.croce@mymail.champlain.edu
# with one parameter for the email body
function SendAlertEmail($Body){
$From = "charlotte.croce@mymail.champlain.edu"
$To = "charlotte.croce@mymail.champlain.edu"
$Subject = "Suspicious Activity"
# remove password before publishing to GitHub!
# ...and if you accidentally push with the password visible, just delete the appKey
$Password = "insert-new-appkey-here" | ConvertTo-SecureString -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $From, $Password
Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -SmtpServer "smtp.gmail.com" `
-Port 587 -UseSsl -Credential $Credential
}
#SendAlertEmail "test email body"

View file

@ -0,0 +1,27 @@
# sends an email to charlotte.croce@mymail.champlain.edu
# with one parameter for the email body
function SendAlertEmail($Body){
$From = "charlotte.croce@mymail.champlain.edu"
$To = "charlotte.croce@mymail.champlain.edu"
$Subject = "Suspicious Activity"
# remove password before publishing to GitHub!
<<<<<<< HEAD
<<<<<<< HEAD
# ...and if you accidentally push with the password visible, just delete the appKey
$Password = "insert-new-appkey-here" | ConvertTo-SecureString -AsPlainText -Force
=======
$Password = "xxxx" | ConvertTo-SecureString -AsPlainText -Force
>>>>>>> 2a39cde6cba8cf89a13018201ce592d875e1409e
=======
# ...and if you accidentally push with the password visible, just delete the appKey
$Password = "insert-new-appkey-here" | ConvertTo-SecureString -AsPlainText -Force
>>>>>>> 25c575397b1c76c4310e671c9a2bd7a2e53bf60a
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $From, $Password
Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -SmtpServer "smtp.gmail.com" `
-Port 587 -UseSsl -Credential $Credential
}
#SendAlertEmail "test email body"

View file

@ -0,0 +1,45 @@
<# ******************************************************
Functions: Creates a new scheduled task for week7/main.ps1 to run
Input: 1) Time for shceduled task to run
********************************************************* #>
function ChooseTimeToRun($Time){
$scheduledTask = Get-ScheduledTask | Where-Object { $_.TaskName -ilike "mytask" }
if($scheduledTask -ne $null){
Write-Host "The task already exists" | Out-String
DisableAutoRun
}
Write-Host "Creating new task" | Out-String
$action = New-ScheduledTaskAction -Execute "powershell.exe" `
-Argument "-File `"C:\Users\champuser\SYS320\week7\main.ps1`""
$trigger = New-ScheduledTaskTrigger -Daily -At $Time
$principal = New-ScheduledTaskPrincipal -UserId 'champuser' -RunLevel Highest
$settings = New-ScheduledTaskSettingsSet -RunOnlyIfNetworkAvailable -WakeToRun
$task = New-ScheduledTask -Action $action -Principal $principal -Trigger $trigger -Settings $settings
Register-ScheduledTask 'myTask' -InputObject $task
Get-ScheduledTask | Where-Object { $_.TaskName -ilike "myTask" }
}
<# ******************************************************
Functions: if "myTask is running", unregister it
********************************************************* #>
function DisableAutoRun(){
$scheduledTasks = Get-ScheduledTask | Where-Object { $_.TaskName -ilike "myTask" }
if($scheduledTasks -ne $null){
Write-Host "Unregistering the task." | Out-String
Unregister-ScheduledTask -TaskName 'myTask' -Confirm:$false
}
else{
Write-Host "The task is not registered" | Out-String
}
}

View file

@ -0,0 +1,2 @@
90
2:38 PM

View file

@ -0,0 +1,17 @@
. "C:\Users\champuser\SYS320\week6\Event-Logs.ps1"
. "C:\Users\champuser\SYS320\week7\Configuration.ps1"
. "C:\Users\champuser\SYS320\week7\Email.ps1"
. "C:\Users\champuser\SYS320\week7\Scheduler.ps1"
# obtain configuration, from Configurations.ps1
$configuration = readConfiguration
# call atRiskUsers using days obtained from the config file, from Event-logs.ps1
$Failed = getAtRiskUsers $configuration.Days
# sending at risk users as email, from Email.ps1
SendAlertEmail ($Failed | Format-Table | Out-String)
# setting the script to be run daily, from Scheduler.ps1
ChooseTimeToRun($configuration.ExecutionTime)

View file

@ -0,0 +1,67 @@

# 1. Function to get IOC table from the given web page
function getIOCTable(){
$page = Invoke-WebRequest -TimeoutSec 10 http://10.0.17.5/IOC.html
# get all tr elements
$trs=$page.ParsedHTML.body.getElementsByTagName("tr")
# array to hold results
$IOCTable = @()
for($i=1; $i -lt $trs.length; $i++){
# get every td element of current tr element
$tds= $trs[$i].getElementsByTagName("td")
$IOCTable += [pscustomobject]@{"Pattern" = $tds[0].innerText; "Explanation" = $tds[1].innerText; }
}# for loop end
return $IOCTable
} # function end
# getIOCTable | Format-Table
# 2. function to get Apache Access logs
function getApacheLogs(){
$logs = Get-Content "C:\Users\champuser\SYS320\week8\access.log"
$logTable = @()
for($i=0; $i -lt $logs.Length; $i++){
# split string into words
$words = $logs[$i] -split " "
$logTable += [pscustomobject]@{"IP" = $words[0]; `
"Time" = $words[3].Trim('['); `
"Method" = $words[5].Trim('"'); `
"Page" = $words[6]; `
"Protocol" = $words[7]; `
"Response" = $words[8]; `
"Referrer" = $words[10]; ` }
}# for loop end
return $logTable
} # function end
# getApacheLogs | Format-Table
# 3. get Apache logs, but only display those that have an IOC in the page field
function getIOCLogs(){
$logTable = getApacheLogs
$IOCTable = getIOCTable
$IOCLogTable = @()
for($i = 0; $i -lt $logTable.Count; $i++){
for($j = 0; $j -lt $IOCTable.Count; $j++){
if ($logTable[$i].Page -match $IOCTable[$j].Pattern){
$IOCLogTable += $logTable[$i]
} # if end
} # inner for loop end
} # outer for loop end
return $IOCLogTable
} # function end
getIOCLogs | Format-Table

View file

@ -0,0 +1,20 @@
10.0.17.5 - - [04/Mar/2024:13:28:46 -0500] "GET /index.html HTTP/1.1" 404 295 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:13:29:21 -0500] "GET /index.html HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:42:42 -0500] "GET /index.php HTTP/1.1" 404 295 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:43:07 -0500] "GET /index.php HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:43:21 -0500] "GET /index.php?a=1&b=2 HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:43:50 -0500] "GET /index.php?cmd=etc/passwd HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:44:19 -0500] "GET /index.php?cmd=cat+etc/passwd HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:44:52 -0500] "GET /index.php?cmd=/bing/bash+myscript.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:45:01 -0500] "GET /index.php?cmd=/bin/bash+myscript.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:45:19 -0500] "GET /index.php?cmd=/bin/sh+simplebackdoor.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:45:31 -0500] "GET /index.php?/bin/sh+simplebackdoor.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:46:03 -0500] "GET /index.php?a=1+OR+1=1-- HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:46:12 -0500] "GET /index.php?a=1+OR+1=1- HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:46:27 -0500] "GET /index.php?a=1+OR+1=1 HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:46:47 -0500] "GET /index.php?word=Hello+World HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.6 - - [04/Mar/2024:14:48:39 -0500] "GET / HTTP/1.1" 200 758 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"
10.0.17.6 - - [04/Mar/2024:14:48:40 -0500] "GET /favicon.ico HTTP/1.1" 404 295 "http://10.0.17.5/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"
10.0.17.6 - - [04/Mar/2024:14:48:50 -0500] "GET /index.html HTTP/1.1" 200 758 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"
10.0.17.6 - - [04/Mar/2024:14:49:44 -0500] "GET /index.html?command=/bin/bash/+reverseshell.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"
10.0.17.6 - - [04/Mar/2024:14:50:24 -0500] "GET /index.html?command=/bin/bash/+midtermcheatdetector.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"

View file

@ -0,0 +1,20 @@
#!/bin/bash
# list all ips in given network prefix, /24 only
# usage: bash IPList.bash 10.0.17
[ $# -lt 1 ] && echo "Usage: $0 <Prefix>" && exit 1
#prefix is the first input taken
prefix=$1
[ ${#prefix} -lt 5 ] && \
printf "Prefix length is too short\nPrefix example: 10.0.17\n" && \
exit 1
for i in {1..254}
do
ping -c 1 $prefix.$i | grep "64 bytes from *" | \
grep -o $prefix.$i
done

View file

@ -0,0 +1,11 @@
#!/bin/bash
# display ONLY IP address
# output ip addr command
# grep for enabled interfaces
# grep to narrow in on IP
# use tr to delete extra letters and spaces from output
ip address | grep 'state UP' -A 3 | grep -o 'inet.*brd' | tr -d 'a-z '

View file

@ -0,0 +1,6 @@
#!/bin/bash
for i in {1..20}
do
curl 10.0.17.8
done

View file

@ -0,0 +1,14 @@
#!/bin/bash
file="/var/log/apache2/access.log"
results=$(cat $file | cut -d' ' -f1,7 | tr -d "[")
function pageCount(){
counts=$(awk '{print $7}' $file | sort | uniq -c)
}
pageCount
echo "$counts"
#echo "$results"

View file

@ -0,0 +1,9 @@
#!/bin/bash
function countingCurlAccess(){
file="/var/log/apache2/access.log"
curlCounts=$(cat "$file" | cut -d' ' -f1,12 | grep "curl" | uniq -c)
}
countingCurlAccess
echo "$curlCounts"

View file

@ -0,0 +1,6 @@
etc/passwd
cmd=
/bin/bash
/bin/sh
1=1#
1=1--

View file

@ -0,0 +1,81 @@
10.0.17.12 - - [17/Nov/2024:09:41:57 -0500] "GET / HTTP/1.1" 200 481 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:09:41:57 -0500] "GET /favicon.ico HTTP/1.1" 404 487 "http://10.0.17.8/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:09:42:00 -0500] "GET /page1.html HTTP/1.1" 200 485 "http://10.0.17.8/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:09:42:01 -0500] "GET /index.html HTTP/1.1" 200 480 "http://10.0.17.8/page1.html" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:09:42:01 -0500] "GET /page2.html HTTP/1.1" 200 483 "http://10.0.17.8/index.html" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:09:42:51 -0500] "-" 408 0 "-" "-"
10.0.17.12 - - [17/Nov/2024:10:30:19 -0500] "GET /etc/passwd HTTP/1.1" 404 488 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:10:30:22 -0500] "GET /etc/passwd HTTP/1.1" 404 487 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:10:30:23 -0500] "GET /etc/passwd HTTP/1.1" 404 487 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:10:30:31 -0500] "GET /1=1-- HTTP/1.1" 404 488 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:10:30:32 -0500] "GET /1=1-- HTTP/1.1" 404 487 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:10:30:43 -0500] "GET //bin/bash HTTP/1.1" 404 488 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
10.0.17.8 - - [17/Nov/2024:10:30:55 -0500] "GET /cmd=ls HTTP/1.1" 404 488 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [17/Nov/2024:10:30:57 -0500] "GET /cmd=ls HTTP/1.1" 404 487 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.12 - - [17/Nov/2024:10:31:35 -0500] "-" 408 0 "-" "-"
10.0.17.8 - - [04/Nov/2024:11:36:51 -0500] "GET / HTTP/1.1" 200 3460 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:36:51 -0500] "GET /icons/ubuntu-logo.png HTTP/1.1" 200 3607 "http://10.0.17.8/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:36:51 -0500] "GET /favicon.ico HTTP/1.1" 404 487 "http://10.0.17.8/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:37:42 -0500] "-" 408 0 "-" "-"
10.0.17.8 - - [04/Nov/2024:11:43:51 -0500] "GET / HTTP/1.1" 200 478 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:43:51 -0500] "GET / HTTP/1.1" 200 477 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:43:53 -0500] "GET /page1.html HTTP/1.1" 200 478 "http://10.0.17.8/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:43:54 -0500] "GET /index.html HTTP/1.1" 200 477 "http://10.0.17.8/page1.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:43:55 -0500] "GET /page2.html HTTP/1.1" 200 478 "http://10.0.17.8/index.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:43:56 -0500] "GET /page2.html HTTP/1.1" 200 478 "http://10.0.17.8/page2.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:43:57 -0500] "GET /page2.html HTTP/1.1" 200 478 "http://10.0.17.8/page2.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:44:14 -0500] "GET /index.html HTTP/1.1" 200 478 "http://10.0.17.8/page2.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:44:15 -0500] "GET /page2.html HTTP/1.1" 200 479 "http://10.0.17.8/index.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:44:16 -0500] "GET /page1.html HTTP/1.1" 200 478 "http://10.0.17.8/page2.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:45:05 -0500] "-" 408 0 "-" "-"
10.0.17.8 - - [04/Nov/2024:11:45:18 -0500] "GET /index.html HTTP/1.1" 200 481 "http://10.0.17.8/page1.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:45:19 -0500] "GET /page2.html HTTP/1.1" 200 483 "http://10.0.17.8/index.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:45:20 -0500] "GET /index.html HTTP/1.1" 200 480 "http://10.0.17.8/page2.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:45:21 -0500] "GET /page1.html HTTP/1.1" 200 483 "http://10.0.17.8/index.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:45:23 -0500] "GET /index.html HTTP/1.1" 200 480 "http://10.0.17.8/page2.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:45:24 -0500] "GET /page1.html HTTP/1.1" 200 483 "http://10.0.17.8/index.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:45:40 -0500] "GET /index.html HTTP/1.1" 200 481 "http://10.0.17.8/page1.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:45:41 -0500] "GET /page1.html HTTP/1.1" 200 484 "http://10.0.17.8/index.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:45:42 -0500] "GET /index.html HTTP/1.1" 200 480 "http://10.0.17.8/page1.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36"
10.0.17.8 - - [04/Nov/2024:11:46:32 -0500] "-" 408 0 "-" "-"
10.0.17.8 - - [04/Nov/2024:11:48:03 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:11:59:51 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"
10.0.17.8 - - [04/Nov/2024:12:01:57 -0500] "GET / HTTP/1.1" 200 449 "-" "curl/7.81.0"

View file

@ -0,0 +1,115 @@
#! /bin/bash
#logFile="/var/log/apache2/access.log.1"
logFile="access.txt"
if [[ ! -f "${logFile}" ]]
then
bash getLogs.bash
fi
function displayAllLogs(){
cat "$logFile"
}
function displayOnlyIPs(){
cat "$logFile" | cut -d ' ' -f 1 | sort -n | uniq -c
}
function displayOnlyPages(){
cat "$logFile" | cut -d ' ' -f 7 | sort -n | uniq -c
}
function frequentVisitors(){
histogram | awk '$1 > 10' #visits > 10
}
function suspiciousVisitors(){
cat "$logFile" | cut -d ' ' -f 1,7 | egrep -i -f IOC.txt | uniq -c
}
function histogram(){
local visitsPerDay=$(cat "$logFile" | cut -d " " -f 4,1 | tr -d '[' | sort \
| uniq)
# This is for debugging, print here to see what it does to continue:
# echo "$visitsPerDay"
:> newtemp.txt # what :> does is in slides
echo "$visitsPerDay" | while read -r line;
do
local withoutHours=$(echo "$line" | cut -d " " -f 2 \
| cut -d ":" -f 1)
local IP=$(echo "$line" | cut -d " " -f 1)
local newLine="$IP $withoutHours"
echo "$IP $withoutHours" >> newtemp.txt
done
cat "newtemp.txt" | sort -n | uniq -c
}
# function: frequentVisitors:
# Only display the IPs that have more than 10 visits
# You can either call histogram and process the results,
# Or make a whole new function. Do not forget to separate the
# number and check with a condition whether it is greater than 10
# the output should be almost identical to histogram
# only with daily number of visits that are greater than 10
# function: suspiciousVisitors
# Manually make a list of indicators of attack (ioc.txt)
# filter the records with this indicators of attack
# only display the unique count of IP addresses.
# Hint: there are examples in slides
# Keep in mind that I have selected long way of doing things to
# demonstrate loops, functions, etc. If you can do things simpler,
# it is welcomed.
while :
do
echo "PLease select an option:"
echo "[1] Display all Logs"
echo "[2] Display only IPS"
echo "[3] Display only pages visited"
echo "[4] Histogram"
echo "[5] Frequent visitors"
echo "[6] Suspicious visitors"
echo "[7] Quit"
read userInput
echo ""
if [[ "$userInput" == "7" ]]; then
echo "Goodbye"
break
elif [[ "$userInput" == "1" ]]; then
echo "Displaying all logs:"
displayAllLogs
elif [[ "$userInput" == "2" ]]; then
echo "Displaying only IPS:"
displayOnlyIPs
elif [[ "$userInput" == "3" ]]; then
echo "Displaying only pages visited:"
displayOnlyPages
elif [[ "$userInput" == "4" ]]; then
echo "Histogram:"
histogram
elif [[ "$userInput" == "5" ]]; then
echo "Displaying frequent visitors:"
frequentVisitors
elif [[ "$userInput" == "6" ]]; then
echo "Displaying suspicious visitors:"
suspiciousVisitors
else
echo "Invalid input [1-7 allowed]"
continue
fi
done

View file

@ -0,0 +1,14 @@
#!/bin/bash
logDir="/var/log/apache2/"
allLogs=$(ls "${logDir}" | grep "access.log" | grep -v "other_vhosts")
echo "${allLogs}"
:> access.txt
for i in ${allLogs}
do
cat "${logDir}${i}" >> access.txt
done

View file

@ -0,0 +1,38 @@
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.12 17/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 04/Nov/2024
10.0.17.8 17/Nov/2024
10.0.17.8 17/Nov/2024

View file

@ -0,0 +1,109 @@
#! /bin/bash
clear
# filling courses.txt
bash courses.bash
courseFile="courses.txt"
function displayCoursesofInst(){
echo -n "Please Input an Instructor Full Name: "
read instName
echo ""
echo "Courses of $instName :"
cat "$courseFile" | grep "$instName" | cut -d';' -f1,2 | \
sed 's/;/ | /g'
echo ""
}
function courseCountofInsts(){
echo ""
echo "Course-Instructor Distribution"
cat "$courseFile" | cut -d';' -f7 | \
grep -v "/" | grep -v "\.\.\." | \
sort -n | uniq -c | sort -n -r
echo ""
}
# TODO - 1
# Make a function that displays all the courses in given location
# function dislaplays course code, course name, course days, time, instructor
# Add function to the menu
# Example input: JOYC 310
# Example output: See the screenshots in canvas
function displayCoursesofRoom(){
echo ""
echo -n "Input Classroom (ex JOYC 310): "
read classroom
echo "courses in $classroom:"
cat "$courseFile" | grep "$classroom" | \
cut -d';' -f1,2,5,6,7 | sed 's/;/ | /g' | \
sort -n
echo ""
}
#TODO - 2
# Make a function that displays all the courses that has availability
# (seat number will be more than 0) for the given course code
# Add function to the menu
# Example input: SEC
# Example output: See the screenshots in canvas
function displayAvailableCoursesofSubj(){
echo ""
echo -n "Input Course code (ex SEC): "
read courseCode
echo "available $courseCode courses:"
cat "$courseFile" | grep "$courseCode" | \
awk -F';' '$4 > 0' | sed 's/;/ | /g' | \
sort -n
echo ""
}
while :
do
echo ""
echo "Please select and option:"
echo "[1] Display courses of an instructor"
echo "[2] Display course count of instructors"
echo "[3] Display courses of a classroom"
echo "[4] Display available courses of subject"
echo "[5] Exit"
read userInput
echo ""
if [[ "$userInput" == "5" ]]; then
echo "Goodbye"
break
elif [[ "$userInput" == "1" ]]; then
displayCoursesofInst
elif [[ "$userInput" == "2" ]]; then
courseCountofInsts
elif [[ "$userInput" == "3" ]]; then
displayCoursesofRoom
elif [[ "$userInput" == "4" ]]; then
displayAvailableCoursesofSubj
else
echo "Invalid Input. Allowed: [1-5]"
fi
done

View file

@ -0,0 +1,30 @@
#! /bin/bash
# This is the link we will scrape
link="10.0.17.6/cc.html"
# get it with curl and tell curl not to give errors
fullPage=$(curl -sL "$link")
# Utilizing xmlstarlet tool to extract table from the page
toolOutput=$(echo "$fullPage" | \
xmlstarlet format --html --recover 2>/dev/null | \
xmlstarlet select --template --copy-of \
"//html//body//div//div//table//tr")
# Processing HTML with sed
# 1- Replacing every </tr> with a line break
echo "$toolOutput" | sed 's/<\/tr>/\n/g' | \
sed -e 's/&amp;//g' | \
sed -e 's/<tr>//g' | \
sed -e 's/<td[^>]*>//g' | \
sed -e 's/<\/td>/;/g' | \
sed -e 's/<[/\]\{0,1\}a[^>]*>//g' | \
sed -e 's/<[/\]\{0,1\}nobr>//g' \
> courses.txt

View file

@ -0,0 +1,598 @@
<th>Number</th><th>Course Title</th><th>Credit</th><th>Seats</th><th>Days</th><th>Times</th><th>Instructor</th><th>Dates</th><th>Prerequisite(s)</th><th>Location</th>
ACC 135-01;Accounting for Decision Making;3;11;W;9AM-11:45AM;Nicole Morris; 1/16 - 5/03;None;GBTC 114;
ACC 145-01;Financial Accounting;3;12;TF;11:30AM-12:45PM;Charles Bush; 1/16 - 5/03;Take ACC-135 OR with... more;GBTC 114;
ACC 231-01;Intermediate Accounting II;3;16;W;12:15PM-3PM;Nicole Morris; 1/16 - 5/03;ACC-230;GBTC 114;
ACC 370-01SL;Volunteer Income Tax Assistanc;1;14;TBA;Cathy Duffy; 1/16 - 5/03;Complete ACC-325 or ... more;
ACC 390-81;Accounting Internship;2;20;TBA;Barrie Silver; 1/16 - 5/03;Complete ACC-231;
ACC 420-51;Auditing;3;17;TH;5:30PM-8:15PM;Joseph Paquin; 1/16 - 5/03;MTH-200 ?ACC-231 is ... more;JOYC 305;
ART 110-01;Drawing, Introductory;3;-1;W;12:15PM-3PM;Rebecca Schwarz; 1/16 - 5/03;None;SKFA 100;
ART 120-01;Art History;3;0;TF;8:30AM-9:45AM;Olivia Scarpa; 1/16 - 5/03;None;
ART 215-51;Photography, Intermediate;3;6;T;5:30PM-8:15PM;Jordan Douglas; 1/16 - 5/03;ART-115;JOYC 102;
ART 235-01;Introduction to Painting;3;5;W;9AM-11:45AM;Sage Tucker-Ketcham; 1/16 - 5/03;Take ART-110.;CCM 434;
ART 312-01;Printmaking Studio;3;5;T;4PM-8PM;Katie Loesel; 1/16 - 5/03;ART-110 or ART-135 ... more;CCM 434;
ART 339-51;Painting Other Worlds;3;6;TH;5:30PM-8:15PM;Mallory Breiner; 1/16 - 5/03;None;CCM 434;
ART 380-01;Adv. Art History:Spec. Topics;3;5;W;12:15PM-3PM;Stella Marrs; 1/16 - 5/03;TAKE ART-120.;MIC 305/306;
BRD 110-02;Video Storytelling;3;2;MTH;11:30AM-12:45PM;Keith Oppenheim; 1/16 - 5/03;None;GBTC 014;
BRD 117-01;Intro to Brd Wrtng;3;8;MTH;4PM-5:15PM;Keith Oppenheim; 1/16 - 5/03;None;GBTC 014;
BRD 130-01;Audio Production;3;5;TF;1PM-2:15PM;John Billingsley; 1/16 - 5/03;None;GBTC 014;
BRD 140-01;Radio Production I;3;0;TF;2:30PM-3:45PM;John Billingsley; 1/16 - 5/03;None;GBTC 014;
BRD 245-01;Video Field Production;3;4;M;1PM-3:45PM;Janet Weinstein; 1/16 - 5/03;Complete one of the ... more;GBTC 014;
BRD 380-01;Truth in the Era of Fake News;3;1;TH;1PM-3:45PM;David Wright; 1/16 - 5/03;Complete 60 credits ... more;MIC 305/306;
BUS 110-01;Biz Entrepreneurial Mindset;3;3;MTH;2:30PM-3:45PM;Marie Segares; 1/16 - 5/03;None;JOYC 102;
BUS 120-01;Marketing the Org. Mindset;3;5;TF;1PM-2:15PM;Marie Segares; 1/16 - 5/03;BUS-110 or permisiso... more;CCM 221;
BUS 120-02;Marketing the Org. Mindset;3;16;TF;4PM-5:15PM;Marie Segares; 1/16 - 5/03;BUS-110 or permisiso... more;GBTC 114;
BUS 120-04;Marketing the Org. Mindset;3;2;MTH;1PM-2:15PM;Joseph O'Grady; 1/16 - 5/03;BUS-110 or permisiso... more;GBTC 112;
BUS 310-01;Int'l Bus. Macroeconomics;3;1;TF;11:30AM-12:45PM;Parthiv Patel; 1/16 - 5/03;BUS-210,ECN-255;GBTC 217;
CCC 310-01;Integrative Film Practices;1;9;MTH;10AM-11:15AM;Kerry Noonan; 1/16 - 2/16;Film majors only. Ta... more;JOYC 304;
CCC 410-01;College Capstone: SSB;5;7;W;12:15PM-3PM;Parthiv Patel; 1/16 - 5/03;Must complete COR-31... more;GBTC 112;
CCC 410-51;College Capstone;5;6;TH;4PM-6:45PM;Tanya Stone; 1/16 - 5/03;Must complete COR-31... more;MIC 305/306;
CCC 410BRD-01;Broadcast Media Capstone;4;4;W;9AM-11:15AM;Keith Oppenheim; 1/16 - 5/03;Must complete COR-31... more;GBTC 014;
CCC 410COM-01SL;Communication Capstone;4;5;T;8:30AM-11:15AM;Nancy Kerr; 1/16 - 5/03;Must complete COR-31... more;CCM 212;
CCC 410CRE-01;Creative Media Capstone;4;2;MW;1PM-1:50PM,<br/>12:15PM-3PM;Alan Larsen; 1/16 - 5/03;Must complete COR-31... more;SKFA 100;
CCC 410CRJ-71;College Capstone: Crim. Just.;3;5;T;1PM-2:15PM;Anthony Perriello; 1/16 - 5/03;Must complete COR-31... more;JOYC 202;
CCC 410EDU-01;CC: Student Teaching Capstone;3;9;T;4PM-6:45PM;Megan Jones; 1/16 - 5/03;Must complete COR-31... more;FREE 201;
CCC 410ENP-71;College Capstone;4;13;TH;11:30AM-2:15PM;Valerie Esposito; 1/16 - 5/03;Must complete COR-31... more;JOYC 313;
CCC 410FLM-01;College Capstone:Filmmaking;4;1;T;2:30PM-5:15PM;Julia Swift; 1/16 - 5/03;Must complete COR-31... more;CCM 305;
CCC 410FLM-02;College Capstone:Filmmaking;4;4;W;12:15PM-3PM;Julia Swift; 1/16 - 5/03;Must complete COR-31... more;CCM 305;
CCC 410ITS-01;Capstone Design;2;9;MTH;8:30AM-9:45AM;James Hoag; 1/16 - 5/03;Must complete COR-31... more;JOYC 201;
CCC 410LEG-71;College Capstone: Law;3;0;T;1PM-2:15PM;Anthony Perriello; 1/16 - 5/03;Must complete COR-31... more;JOYC 202;
CCC 410PSY-01;Psychology Capstone;3;9;W;9AM-11:45AM;Gary Baker; 1/16 - 5/03;Must complete COR-31... more;JOYC 313;
CCC 410SOI-01;College Capstone SoSI;3;2;W;9AM-11:45AM;Sianay Clifford; 1/16 - 5/03;Must complete COR-31... more;JOYC 311;
CCC 410SWK-01;Social Work Capstone;3;8;M;8:30AM-11:15AM;Annemarie Conlon; 1/16 - 5/03;Must complete COR-31... more;JOYC 212;
CCC 411FIN-01;College Capstone - Finance;3;20;TF;10AM-11:15AM;Frederick Burkhardt; 1/16 - 5/03;Complete FIN-300,COR... more;GBTC 217;
CCC 412-01;ITS Capstone Snr Project:CSIN;3;1;MTH;8:30AM-9:45AM;Wei Kian Chen; 1/16 - 5/03;Complete CCC-410ITS ... more;JOYC 211;
CCC 412-02;ITS Capstone Snr Project:DATA;3;1;MTH;8:30AM-9:45AM;Wei Kian Chen; 1/16 - 5/03;Complete CCC-410ITS ... more;JOYC 211;
CCC 412-03;ITS Capstone Snr Project:CNCS;3;-3;MTH;8:30AM-9:45AM;Joe Eastman; 1/16 - 5/03;Complete CCC-410ITS ... more;CCM 221;
CCC 412-04;ITS Capstone Snr Project:DIGF;3;10;MTH;8:30AM-9:45AM;Mariam Khader; 1/16 - 5/03;Complete CCC-410ITS ... more;GBTC 117;
CCC 412-05;ITS Capstone Snr Project:MATH;3;0;MTH;8:30AM-9:45AM;Wei Kian Chen; 1/16 - 5/03;Complete CCC-410ITS ... more;JOYC 211;
CCC 412DDL-71;DDL Capstone III;5;17;W;9AM-11:45AM;Michael Kelly; 1/16 - 5/03;Complete CCC-410ITS ... more;GBTC 206;
CCM 491-81;Comm Media Internship;1;18;TBA;Sarah Moore; 1/16 - 5/03;CCM Division student... more;
CCM 492-81;Comm Media Internship;2;18;TBA;Sarah Moore; 1/16 - 5/03;CCM Division student... more;
CCM 493-81;Comm Media Internship;3;6;TBA;Sarah Moore; 1/16 - 5/03;CCM Division student... more;
CCM 494-81;Comm Media Internship;4;17;TBA;Sarah Moore; 1/16 - 5/03;CCM Division student... more;
CCM 495-81;Comm Media Internship;5;18;TBA;Sarah Moore; 1/16 - 5/03;CCM Division student... more;
CCM 496-81;Comm Media Internship;6;18;TBA;Sarah Moore; 1/16 - 5/03;CCM Division student... more;
CCX 105-01;Academic Reset;0;14;T;1PM-2:30PM;Elaine O'Reilly; 1/30 - 3/22;None;MIC 301;
CCX 105-02;Academic Reset;0;14;W;11AM-12:30PM;Elaine O'Reilly; 1/30 - 3/22;None;MIC 301;
CMP 101-01;Champ 101;0;11;MTH;10AM-11:15AM;Melanie Brown; 1/15 - 3/29;None;FREE 201;
CMP 101-02;Champ 101;0;13;MTH;11:30AM-12:45PM;Elaine O'Reilly; 1/15 - 3/29;None;FREE 201;
COM 100-01;Human Communication, Foundat.;3;3;TF;2:30PM-3:45PM;Cheryl Casey; 1/16 - 5/03;You may not enroll i... more;CCM 442;
COM 100-02;Human Communication, Foundat.;3;8;TF;11:30AM-12:45PM;Cheryl Casey; 1/16 - 5/03;You may not enroll i... more;CCM 444;
COM 110-02;Public Speaking;3;1;MTH;1PM-2:15PM;Nancy Kerr; 1/16 - 5/03;None;CCM 424;
COM 210-01;Principles of Public Relations;3;4;MTH;10AM-11:15AM;Nancy Kerr; 1/16 - 5/03;Complete either COM-... more;CCM 424;
COM 270-51;Intercultural Communication;3;6;W;5:30PM-8:15PM;Nadia DuBose; 1/16 - 5/03;Must have completed ... more;CCM 424;
COM 325-51;Social Media Influencer;3;1;W;5:30PM-8:15PM;Lindsay Bumps; 1/16 - 5/03;(MKT 250 - Digital M... more;JOYC 203;
COM 355-01;Prof. Communication Practices;1;10;TH;2:30PM-3:20PM;Sarah Moore; 1/16 - 5/03;Minimum 60 credits a... more;CCM 424;
COM 365-01;Legal Issues in Communication;3;10;MTH;4PM-5:15PM;Barrie Silver; 1/16 - 5/03;Must complete 60 cre... more;JOYC 202;
COR 103-01;Navigating Information;3;-1;MTH;8:30AM-9:45AM;Charles Bashaw; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 305;
COR 103-02;Navigating Information;3;0;MTH;10AM-11:15AM;Charles Bashaw; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 305;
COR 103-03;Navigating Information;3;1;MTH;8:30AM-9:45AM;Marianne Bhonslay; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 202;
COR 103-04;Navigating Information;3;1;MTH;10AM-11:15AM;Marianne Bhonslay; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 202;
COR 103-05;Navigating Information;3;0;W;12:15PM-3PM;Marianne Bhonslay; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 203;
COR 103-06;Navigating Information;3;-1;TF;10AM-11:15AM;Clinton Bryant; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 202;
COR 103-07;Navigating Information;3;0;TF;11:30AM-12:45PM;Clinton Bryant; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 202;
COR 103-08;Navigating Information;3;0;TF;2:30PM-3:45PM;Clinton Bryant; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 202;
COR 103-09;Navigating Information;3;0;MTH;2:30PM-3:45PM;Cheryl Casey; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 311;
COR 103-10;Navigating Information;3;0;MTH;4PM-5:15PM;Cheryl Casey; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 313;
COR 103-11;Navigating Information;3;0;TF;10AM-11:15AM;Jeffrey Haig; 1/16 - 5/03;Take COR-104 concurr... more;WICK 102;
COR 103-12;Navigating Information;3;-1;TF;11:30AM-12:45PM;Jeffrey Haig; 1/16 - 5/03;Take COR-104 concurr... more;WICK 102;
COR 103-13;Navigating Information;3;0;TF;11:30AM-12:45PM;Amanda Young; 1/16 - 5/03;Take COR-104 concurr... more;WICK 101;
COR 103-14;Navigating Information;3;0;TF;1PM-2:15PM;Erik Kaarla; 1/16 - 5/03;Take COR-104 concurr... more;WICK 101;
COR 103-15;Navigating Information;3;0;TF;11:30AM-12:45PM;Erik Kaarla; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 302;
COR 103-17;Navigating Information;3;0;TF;4PM-5:15PM;Erik Kaarla; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 302;
COR 103-18;Navigating Information;3;0;TF;1PM-2:15PM;Abijah Manga; 1/16 - 5/03;Take COR-104 concurr... more;WICK 102;
COR 103-19;Navigating Information;3;0;TF;2:30PM-3:45PM;Abijah Manga; 1/16 - 5/03;Take COR-104 concurr... more;WICK 102;
COR 103-21;Navigating Information;3;7;TH;8:30AM-11:15AM;Kelly Thomas; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 313;
COR 103-22;Navigating Information;3;-1;TF;10AM-11:15AM;Rachel Moser-Hardy; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 313;
COR 103-23;Navigating Information;3;0;MTH;4PM-5:15PM;Kristin Novotny; 1/16 - 5/03;Take COR-104 concurr... more;GBTC 217;
COR 103-24;Navigating Information;3;0;TF;1PM-2:15PM;David Rous; 1/16 - 5/03;Take COR-104 concurr... more;MIC 305/306;
COR 103-25;Navigating Information;3;0;TF;2:30PM-3:45PM;David Rous; 1/16 - 5/03;Take COR-104 concurr... more;MIC 305/306;
COR 103-26;Navigating Information;3;0;W;12:15PM-3PM;William Stratton; 1/16 - 5/03;Take COR-104 concurr... more;CCM 424;
COR 103-27;Navigating Information;3;0;T;10AM-12:45PM;Kelly Thomas; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 304;
COR 103-28;Navigating Information;3;6;W;9AM-11:45AM;Kelly Thomas; 1/16 - 5/03;Take COR-104 concurr... more;JOYC 203;
COR 103-30;Navigating Information;3;1;TH;11:30AM-2:15PM;Kelly Thomas; 1/16 - 5/03;Take COR-104 concurr... more;CCM 442;
COR 103-51;Navigating Information;3;2;M;5:30PM-8:15PM;William Stratton; 1/16 - 5/03;Take COR-104 concurr... more;CCM 233;
COR 104-01;FYI: Making/Doing;3;0;TH;11:30AM-2:15PM;Jonathan Banfill; 1/16 - 5/03;Take Cor-103 concurr... more;GBTC 206;
COR 104-02;FYI: Making/Doing;3;-1;F;2:30PM-5:15PM;Jonathan Banfill; 1/16 - 5/03;Take Cor-103 concurr... more;GBTC 206;
COR 104-03;FYI: Making/Doing;3;1;MTH;1PM-2:15PM;Kelly Bowen; 1/16 - 5/03;Take Cor-103 concurr... more;GBTC 114;
COR 104-04;FYI: Making/Doing;3;0;MTH;2:30PM-3:45PM;Kelly Bowen; 1/16 - 5/03;Take Cor-103 concurr... more;GBTC 114;
COR 104-05;FYI: Making/Doing;3;1;MTH;11:30AM-12:45PM;Alfonso Capone; 1/16 - 5/03;Take Cor-103 concurr... more;FOST 100;
COR 104-06;FYI: Making/Doing;3;5;MTH;1PM-2:15PM;Alfonso Capone; 1/16 - 5/03;Take Cor-103 concurr... more;FOST 100;
COR 104-07;FYI: Making/Doing;3;2;TTH;5:30PM-6:45PM;Blake Randell; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 302;
COR 104-08;FYI: Making/Doing;3;5;TTH;5:30PM-6:45PM;Isabella Jeso; 1/16 - 5/03;Take Cor-103 concurr... more;WICK 100;
COR 104-09;FYI: Making/Doing;3;3;MTH;4PM-5:15PM;Isabella Jeso; 1/16 - 5/03;Take Cor-103 concurr... more;WICK 100;
COR 104-10;FYI: Making/Doing;3;5;TF;4PM-5:15PM;Isabella Jeso; 1/16 - 5/03;Take Cor-103 concurr... more;WICK 100;
COR 104-11;FYI: Making/Doing;3;0;MTH;10AM-11:15AM;David Kite; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 311;
COR 104-12;FYI: Making/Doing;3;0;MTH;11:30AM-12:45PM;David Kite; 1/16 - 5/03;Take Cor-103 concurr... more;WICK 102;
COR 104-13;FYI: Making/Doing;3;0;T;4PM-6:45PM;Rachel Moser-Hardy; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 311;
COR 104-14;FYI: Making/Doing;3;-1;F;2:30PM-5:15PM;Rachel Moser-Hardy; 1/16 - 5/03;Take Cor-103 concurr... more;CCM 233;
COR 104-15;FYI: Making/Doing;3;1;W;9AM-11:45AM;Erik Shonstrom; 1/16 - 5/03;Take Cor-103 concurr... more;CCM 444;
COR 104-16;FYI: Making/Doing;3;1;W;12:15PM-3PM;Erik Shonstrom; 1/16 - 5/03;Take Cor-103 concurr... more;CCM 444;
COR 104-17;FYI: Making/Doing;3;-1;TH;10AM-12:45PM;Erik Shonstrom; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 212;
COR 104-18;FYI: Making/Doing;3;-1;F;10AM-12:45PM;Erik Shonstrom; 1/16 - 5/03;Take Cor-103 concurr... more;GBTC 206;
COR 104-19;FYI: Making/Doing;3;0;MTH;11:30AM-12:45PM;Stephen Wehmeyer; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 311;
COR 104-20;FYI: Making/Doing;3;-1;MTH;1PM-2:15PM;Stephen Wehmeyer; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 202;
COR 104-21;FYI: Making/Doing;3;0;MTH;8:30AM-9:45AM;Ines De Haro; 1/16 - 5/03;Take Cor-103 concurr... more;WICK 101;
COR 104-22;FYI: Making/Doing;3;0;MTH;11:30AM-12:45PM;Ines De Haro; 1/16 - 5/03;Take Cor-103 concurr... more;WICK 101;
COR 104-23;FYI: Making/Doing;3;1;MTH;2:30PM-3:45PM;Amanda Young; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 313;
COR 104-24;FYI: Making/Doing;3;-1;W;9AM-11:45AM;Katheryn Wright; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 205;
COR 104-25;FYI: Making/Doing;3;-1;MTH;11:30AM-12:45PM;Zachary LaMalfa; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 302;
COR 104-27;FYI: Making/Doing;3;1;TF;11:30AM-12:45PM;Zachary LaMalfa; 1/16 - 5/03;Take Cor-103 concurr... more;GBTC 112;
COR 104-28;FYI: ____ (instructor Topic);3;3;W;9AM-11:45AM;Gordon Glover; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 302;
COR 104-51;FYI: Making/Doing;3;0;MW;5:30PM-6:45PM;Erik Shonstrom; 1/16 - 5/03;Take Cor-103 concurr... more;JOYC 212;
COR 201-51;Science Meaning Making;3;6;W;5:30PM-8:15PM;Velpula Paul; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 102;
COR 202-01;Interdisciplinary Perspectives;3;-2;W;12:15PM-3PM;Joanna Caroline Toy; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 102;
COR 203-01;Culture Meaning Making;3;-2;TF;8:30AM-9:45AM;Charles Bashaw; 1/16 - 5/03;Take COR-101, COR-10... more;GBTC 112;
COR 203-02;Culture Meaning Making;3;-2;TF;10AM-11:15AM;Charles Bashaw; 1/16 - 5/03;Take COR-101, COR-10... more;GBTC 112;
COR 203-03;Culture Meaning Making;3;0;TF;10AM-11:15AM;Flavio Rizzo; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 442;
COR 203-04;Culture Meaning Making;3;0;W;9AM-11:45AM;Veruska Cantelli; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 202;
COR 203-05;Culture Meaning Making;3;-2;W;12:15PM-3PM;Veruska Cantelli; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 202;
COR 203-06;Culture Meaning Making;3;-2;MTH;11:30AM-12:45PM;Gary Scudder; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 305;
COR 203-07;Culture Meaning Making;3;0;MTH;1PM-2:15PM;Ciaran Buckley; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 102;
COR 203-08;Culture Meaning Making;3;0;TF;2:30PM-3:45PM;Michael Lange; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 304;
COR 203-09;Culture Meaning Making;3;-1;MTH;2:30PM-3:45PM;Ines De Haro; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 102;
COR 203-10;Culture Meaning Making;3;-2;W;9AM-11:45AM;Faith Yacubian; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 424;
COR 203-11;Culture Meaning Making;3;0;MTH;8:30AM-9:45AM;Alena Lange; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 100;
COR 203-12;Culture Meaning Making;3;-2;MTH;10AM-11:15AM;Alena Lange; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 100;
COR 203-13;Culture Meaning Making;3;0;MTH;11:30AM-12:45PM;Alena Lange; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 100;
COR 203-14;Culture Meaning Making;3;-1;MTH;1PM-2:15PM;Rowshan Nemazee; 1/16 - 5/03;Take COR-101, COR-10... more;GBTC 217;
COR 203-15;Culture Meaning Making;3;0;MTH;2:30PM-3:45PM;Rowshan Nemazee; 1/16 - 5/03;Take COR-101, COR-10... more;GBTC 217;
COR 203-16;Culture Meaning Making;3;0;M;8:30AM-11:15AM;Flavio Rizzo; 1/16 - 5/03;Take COR-101, COR-10... more;MIC 305/306;
COR 203-17;Culture Meaning Making;3;0;M;11:30AM-2:15PM;Flavio Rizzo; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 313;
COR 203-18;Culture Meaning Making;3;-2;MTH;4PM-5:15PM;Stephen Wehmeyer; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 311;
COR 203-19;Culture Meaning Making;3;-2;TF;11:30AM-12:45PM;Stephen Wehmeyer; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 424;
COR 203-20;Culture Meaning Making;3;0;TF;10AM-11:15AM;Stephen Wehmeyer; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 444;
COR 204-01;Theoretical Perspectives;3;-2;MTH;1PM-2:15PM;Ariel Burgess; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 304;
COR 204-02;Theoretical Perspectives;3;-2;MTH;2:30PM-3:45PM;Ariel Burgess; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 304;
COR 204-03;Theoretical Perspectives;3;-2;MTH;4PM-5:15PM;Ariel Burgess; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 304;
COR 204-04;Theoretical Perspectives;3;-2;TF;11:30AM-12:45PM;Alfonso Capone; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 100;
COR 204-05;Theoretical Perspectives;3;-1;TF;1PM-2:15PM;Alfonso Capone; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 100;
COR 204-06;Theoretical Perspectives;3;-2;MTH;1PM-2:15PM;Weiling Deng; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 212;
COR 204-07;Theoretical Perspectives;3;-2;MTH;2:30PM-3:45PM;Weiling Deng; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 212;
COR 204-08;Theoretical Perspectives;3;-2;MTH;2:30PM-3:45PM;David Kite; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 302;
COR 204-09;Theoretical Perspectives;3;-2;W;9AM-11:45AM;Gary Scudder; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 301;
COR 204-10;Theoretical Perspectives;3;-1;TF;8:30AM-9:45AM;Michael Lange; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 233;
COR 204-11;Theoretical Perspectives;3;-2;TF;10AM-11:15AM;Michael Lange; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 233;
COR 204-12;Theoretical Perspectives;3;-2;TF;1PM-2:15PM;Michael Lange; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 304;
COR 204-13;Theoretical Perspectives;3;-3;MTH;11:30AM-12:45PM;Kerry Noonan; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 304;
COR 204-14;Theoretical Perspectives;3;-2;MTH;2:30PM-3:45PM;Kerry Noonan; 1/16 - 5/03;Take COR-101, COR-10... more;FOST 100;
COR 204-15;Theoretical Perspectives;3;-2;M;4PM-6:45PM;Gary Scudder; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 101;
COR 204-16;Theoretical Perspectives;3;2;TH;4PM-6:45PM;Gary Scudder; 1/16 - 5/03;Take COR-101, COR-10... more;GBTC 114;
COR 204-17;Theoretical Perspectives;3;-3;TF;8:30AM-9:45AM;Kristin Wolf; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 302;
COR 204-18;Theoretical Perspectives;3;-3;TF;10AM-11:15AM;Kristin Wolf; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 302;
COR 204-19;Theoretical Perspectives;3;-3;TF;11:30AM-12:45PM;Kristin Wolf; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 311;
COR 303-01;PastPresent;3;1;MTH;8:30AM-9:45AM;Ciaran Buckley; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 102;
COR 303-02;PastPresent;3;0;MTH;10AM-11:15AM;Ciaran Buckley; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 102;
COR 303-03;PastPresent;3;-1;MTH;1PM-2:15PM;Edward Cafferty; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 100;
COR 303-04;PastPresent;3;0;TF;1PM-2:15PM;Edward Cafferty; 1/16 - 5/03;Take COR-101, COR-10... more;FOST 100;
COR 303-05;PastPresent;3;-1;TF;4PM-5:15PM;Edward Cafferty; 1/16 - 5/03;Take COR-101, COR-10... more;FOST 100;
COR 303-07;PastPresent;3;2;M;11:30AM-2:15PM;Veruska Cantelli; 1/16 - 5/03;Take COR-101, COR-10... more;GBTC 206;
COR 303-08;PastPresent;3;0;TF;4PM-5:15PM;Ciaran Buckley; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 444;
COR 303-09;PastPresent;3;0;W;12:15PM-3PM;Fred Kosnitsky; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 311;
COR 303-10;PastPresent;3;0;TF;1PM-2:15PM;Rowshan Nemazee; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 424;
COR 303-11;PastPresent;3;1;TF;2:30PM-3:45PM;Rowshan Nemazee; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 424;
COR 303-13;PastPresent;3;1;W;12:15PM-3PM;Flavio Rizzo; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 101;
COR 303-14;PastPresent;3;6;MTH;8:30AM-9:45AM;Veruska Cantelli; 1/16 - 5/03;Take COR-101, COR-10... more;FOST 100;
COR 303-15;PastPresent;3;0;MTH;10AM-11:15AM;Gary Scudder; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 301;
COR 303-205;Northern Ireland;3;0;T;2:45PM-5:30PM;Liz Gillis; 1/16 - 5/03;Take COR-101, COR-10... more;
COR 304-01;Digital Methods;3;0;T;2:30PM-5:15PM;Jonathan Banfill; 1/16 - 5/03;Take COR-101, COR-10... more;GBTC 112;
COR 304-02;Digital Methods;3;0;W;12:15PM-3PM;Jonathan Banfill; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 305;
COR 304-03;Digital Methods;3;0;M;2:30PM-5:15PM;Kristian Brevik; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 442;
COR 304-04;Digital Methods;3;0;TH;2:30PM-5:15PM;Kristian Brevik; 1/16 - 5/03;Take COR-101, COR-10... more;CCM 442;
COR 304-05;Digital Methods;3;-1;T;10AM-12:45PM;Weiling Deng; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 102;
COR 304-06;Digital Methods;3;-1;T;2:30PM-5:15PM;Weiling Deng; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 102;
COR 304-07;Digital Methods;3;1;T;4PM-6:45PM;Joyce-Zoe Farley; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 313;
COR 304-08;Digital Methods;3;0;TH;4PM-6:45PM;Joyce-Zoe Farley; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 102;
COR 304-10;Digital Methods;3;2;M;4PM-6:45PM;Amy Howe; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 102;
COR 304-103;Graffiti and Unsanctioned Art;3;5;M;1PM-3:45PM;Melissa Proietti; 1/15 - 5/03;Take COR-101, COR-10... more;
COR 304-11;Digital Methods;3;1;W;9AM-11:45AM;Amy Howe; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 100;
COR 304-12;Digital Methods;3;3;W;12:15PM-3PM;Amy Howe; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 100;
COR 304-13;Digital Methods;3;1;T;8:30AM-11:15AM;Robert Mayer; 1/16 - 5/03;Take COR-101, COR-10... more;WICK 101;
COR 304-15;Digital Methods;3;0;TF;1PM-2:15PM;Kimberly McCray-Woodruff; 1/16 - 5/03;Take COR-101, COR-10... more;JOYC 311;
COR 304-202;Podcasting in Dublin;3;3;W;9AM-11:45AM;Marisa Brown; 1/16 - 5/03;Take COR-101, COR-10... more;
COR 304-204;Writing the City: Dublin;3;3;T;2:45PM-5:30PM;Nicole Rourke; 1/16 - 5/03;Take COR-101, COR-10... more;
CRE 100-01;Making Art;3;-1;TF;10AM-12:45PM,<br/>10AM-12PM;Gordon Glover; 1/16 - 5/03;Must be enrolled in ... more;CCM 434;
CRE 180-01;Making Culture;3;10;MTH;11:30AM-12:45PM;Peter Gallo; 1/16 - 5/03;Take 0 credits; Crea... more;JOYC 301;
CRE 180-02;Making Culture;3;0;MTH;1PM-2:15PM;Peter Gallo; 1/16 - 5/03;Take 0 credits; Crea... more;JOYC 102;
CRE 240-01;Creative Media Prof Pract I;1;-4;T;4PM-4:50PM;Micah Wood; 1/16 - 5/03;Complete 30 credits.... more;SKFA 100;
CRE 250-01;Creative Media Projects I;3;-5;MTH;10AM-12:45PM,<br/>10AM-12PM;Gordon Glover; 1/16 - 5/03;COMPLETE CRE-200.;CCM 434;
CRE 250-02;Creative Media Projects I;3;5;MTH;2:30PM-5:15PM,<br/>2:30PM-4:30PM;Micah Wood; 1/16 - 5/03;COMPLETE CRE-200.;CCM 434;
CRE 350-01;Creative Media Portfolio 2;3;9;MTH;10AM-12PM,<br/>10AM-12:45PM;Alan Larsen; 1/16 - 5/03;Complete CRE-250, CR... more;CCM 434;
CRJ 121-01;Criminal Procedure;3;8;TH;2:30PM-5:15PM;Eric Friedman; 1/16 - 5/03;None;CCM 221;
CRJ 121-51;Criminal Procedure;3;2;M;5:30PM-8:15PM;Sally Adams; 1/16 - 5/03;None;GBTC 217;
CRJ 235-51;Juvenile Justice;3;7;TH;5:30PM-8:15PM;Pamela Marsh; 1/16 - 5/03;None;JOYC 301;
CRJ 265-01;Victimology;3;-2;MTH;11:30AM-12:45PM;Annemarie Conlon; 1/16 - 5/03;None;JOYC 205;
CRJ 450-01;Criminal Justice Reform;3;6;T;10AM-12:45PM;Anthony Perriello; 1/16 - 5/03;Take 60 credits;JOYC 305;
CRJ 490-81;Criminal Justice Field Exp;6;23;TBA;Stephen Miller; 1/16 - 5/03;Must complete 90 cre... more;
CSI 140-02;Introduction to Programming;3;1;MTH;11:30AM-12:45PM;Vikas Thammanna Gowda; 1/16 - 5/03;None;JOYC 211;
CSI 140-04;Introduction to Programming;3;5;MTH;1PM-2:15PM;Sarah Pettitt; 1/16 - 5/03;None;JOYC 211;
CSI 160-02;Python Programming;3;0;TF;1PM-2:15PM;Sarah Pettitt; 1/16 - 5/03;None;MIC 308;
CSI 160-03;Python Programming;3;0;TF;8:30AM-9:45AM;Sarah Pettitt; 1/16 - 5/03;None;JOYC 211;
CSI 180-01;Innov I: Technology Sandbox;3;3;TF;10AM-11:15AM;Brian Hall; 1/16 - 5/03;Complete: CSI-120 OR... more;JOYC 210;
CSI 180-02;Innov I: Technology Sandbox;3;0;TF;11:30AM-12:45PM;Brian Hall; 1/16 - 5/03;Complete: CSI-120 OR... more;JOYC 210;
CSI 240-01;Advanced Programming;3;3;MTH;10AM-11:15AM;Murat Gungor; 1/16 - 5/03;Complete CSI-140 wit... more;MIC 308;
CSI 240-02;Advanced Programming;3;1;MTH;11:30AM-12:45PM;Murat Gungor; 1/16 - 5/03;Complete CSI-140 wit... more;MIC 308;
CSI 240-03;Advanced Programming;3;4;TF;2:30PM-3:45PM;Alexandre Tolstenko Nogueira; 1/16 - 5/03;Complete CSI-140 wit... more;JOYC 211;
CSI 240-04;Advanced Programming;3;0;TF;1PM-2:15PM;Wei Kian Chen; 1/16 - 5/03;Complete CSI-140 wit... more;JOYC 201;
CSI 260-01;Advanced Python;3;-2;MTH;2:30PM-3:45PM;Sarah Pettitt; 1/16 - 5/03;Complete CSI-160;JOYC 211;
CSI 275-01;Network Programming;3;-4;MTH;11:30AM-12:45PM;Scott Barrett; 1/16 - 5/03;Complete CSI-240 or ... more;JOYC 201;
CSI 275-02;Network Programming;3;-5;MTH;1PM-2:15PM;Scott Barrett; 1/16 - 5/03;Complete CSI-240 or ... more;JOYC 201;
CSI 280-51;Innov II:Open Source Soft Dev;3;-2;W;5:30PM-8:15PM;Christopher Bendel; 1/16 - 5/03;Grade C or better in... more;CCM 233;
CSI 280-52;Innov II:Open Source Soft Dev;3;-1;T;5:30PM-8:15PM;Christopher Bendel; 1/16 - 5/03;Grade C or better in... more;JOYC 205;
CSI 281-01;Data Structures Algorithms;3;11;TF;1PM-2:15PM;Alexandre Tolstenko Nogueira; 1/16 - 5/03;CSI-240 with minimum... more;JOYC 211;
CSI 300-01;Database Management Systems;3;-5;MTH;2:30PM-3:45PM;Frank Canovatchel; 1/16 - 5/03;Complete CSI-270 OR ... more;JOYC 201;
CSI 300-02;Database Management Systems;3;-4;MTH;4PM-5:15PM;Frank Canovatchel; 1/16 - 5/03;Complete CSI-270 OR ... more;JOYC 201;
CSI 318-51;iOS Development;3;7;MW;5:30PM-6:45PM;Morgan Seielstad; 1/16 - 5/03;Complete CSI-240 or ... more;JOYC 210;
CSI 357-01;Server-Side Application Dev.;3;5;TF;8:30AM-9:45AM;Frank Canovatchel; 1/16 - 5/03;Complete CSI-120 and... more;JOYC 201;
CSI 420-01;Software Refactoring;3;-2;T;10AM-12:45PM;Murat Gungor; 1/16 - 5/03;Complete CSI-270 or ... more;MIC 308;
DAT 210-01;Introduction to Data Analytics;3;9;TF;2:30PM-3:45PM;Vikas Thammanna Gowda; 1/16 - 5/03;Complete MTH-180 and... more;JOYC 210;
DAT 410-01;Machine Learning;3;8;TF;4PM-5:15PM;Vikas Thammanna Gowda; 1/16 - 5/03;Complete CSI-270 or ... more;JOYC 210;
DAT 430-01;Data Visualization;3;12;MTH;10AM-11:15AM;Vikas Thammanna Gowda; 1/16 - 5/03;Complete DAT-210;JOYC 210;
DDL 190-01;Project Design I;3;-3;W;9AM-11:45AM;Cynthia Brandenburg; 1/16 - 5/03;None;CCM 442;
DDL 290-01;Project Design II;3;5;W;9AM-11:45AM;Cynthia Brandenburg; 1/16 - 5/03;Take DDL-180 and DDL... more;CCM 442;
DDL 350-51;Degree Design Lab Practicum;3;14;W;5:30PM-8:15PM;Michael Kelly; 1/16 - 5/03;Take DDL-186.;JOYC 304;
DDL 401-71;Competency: Analysis;1;13;M;10AM-11:15AM;Michael Kelly; 1/16 - 2/16;None;WICK 102;
DDL 401-72;Competency: Analysis;1;13;M;8:30AM-9:45AM;Michael Kelly; 4/01 - 5/03;None;WICK 102;
DDL 402-71;Competency: Collaboration;1;14;TH;8:30AM-9:45AM;Michael Kelly; 1/16 - 2/16;None;WICK 102;
DDL 402-72;Competency: Collaboration;1;13;TH;10AM-11:15AM;Michael Kelly; 4/01 - 5/03;None;WICK 102;
DDL 403-71;Competency: Communication;1;12;TH;8:30AM-9:45AM;Michael Kelly; 2/19 - 3/29;None;WICK 102;
DDL 404-71;Competency: Creativity;1;11;TH;10AM-11:15AM;Michael Kelly; 2/19 - 3/29;None;WICK 102;
DDL 405-71;Competency: Diversityinclusn;1;13;M;10AM-11:15AM;Michael Kelly; 2/19 - 3/29;None;WICK 102;
DDL 406-71;Competency: Globalcultrl;1;11;M;10AM-11:15AM;Michael Kelly; 2/19 - 3/29;None;WICK 102;
DDL 407-71;Competency: Info Literacy;1;14;M;8:30AM-9:45AM;Michael Kelly; 2/19 - 3/29;None;WICK 102;
DDL 408-71;Competency: Inquiry;1;10;M;8:30AM-9:45AM;Michael Kelly; 2/19 - 3/29;None;WICK 102;
DDL 409-71;Competency: Integration;1;14;M;10AM-11:15AM;Michael Kelly; 1/16 - 2/16;None;WICK 102;
DDL 409-72;Competency: Integration;1;14;M;8:30AM-9:45AM;Michael Kelly; 4/01 - 5/03;None;WICK 102;
DDL 410-71;Competency: Quant Literacy;1;15;M;8:30AM-9:45AM;Michael Kelly; 1/16 - 2/16;None;WICK 102;
DDL 410-72;Competency: Quant Literacy;1;13;M;10AM-11:15AM;Michael Kelly; 4/01 - 5/03;None;WICK 102;
DDL 411-71;Competency: Sci Literacy;1;14;M;8:30AM-9:45AM;Michael Kelly; 1/16 - 2/16;None;WICK 102;
DDL 411-72;Competency: Sci Literacy;1;12;M;10AM-11:15AM;Michael Kelly; 4/01 - 5/03;None;WICK 102;
DDL 412-71;Competency: Tech Literacy;1;13;TH;10AM-11:15AM;Michael Kelly; 1/16 - 2/16;None;WICK 102;
DDL 412-72;Competency: Tech Literacy;1;13;TH;8:30AM-9:45AM;Michael Kelly; 4/01 - 5/03;None;WICK 102;
ECN 255-01;Managerial Economics;3;7;TF;1PM-2:15PM;Jennifer Vincent; 1/16 - 5/03;Take 30 credits;JOYC 305;
ECN 255-02;Managerial Economics;3;7;TF;2:30PM-3:45PM;Jennifer Vincent; 1/16 - 5/03;Take 30 credits;JOYC 305;
ECN 350-01;Financial Economic Modeling;3;8;MTH;1PM-2:15PM;Frederick Burkhardt; 1/16 - 5/03;Complete MTH-180, FI... more;JOYC 311;
EDU 112-01;Integrating Technology;3;9;T;1PM-3:45PM;Megan Jones; 1/16 - 5/03;None;FREE 201;
EDU 160-51;Math Science for Yng. Chldn;3;11;W;5:30PM-8:15PM;Erica DiVece; 1/16 - 5/03;None;FREE 201;
EDU 233-51;Teaching Diverse Learners;3;10;TH;5:30PM-8:15PM;Kara Griswold; 1/16 - 5/03;Complete EDU-110;FREE 201;
EDU 399-81;Trauma Informed Classrooms;3;0;TBA;John Stroup; 1/16 - 5/03;None;
EDU 490-01;Integrated Curr Student Teac;9;18;TBA;John Stroup; 1/16 - 5/03;EDU-312 and EDU-313 ... more;
EDU 490-02;Integrated Curr Student Teac;9;19;TBA;Megan Jones; 1/16 - 5/03;EDU-312 and EDU-313 ... more;
EGD 220-01AA;Game Studio I;3;0;MTH;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-01GD;Game Studio I;3;0;MTH;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-01GPM;Game Studio I;3;0;MTH;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-01GS;Game Studio I;3;0;MTH;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-01IN;Game Studio I;3;0;MTH;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-01PR;Game Studio I;3;0;MTH;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-02AA;Game Studio I;3;-1;TF;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-02GD;Game Studio I;3;0;TF;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-02GPM;Game Studio I;3;0;TF;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-02GS;Game Studio I;3;0;TF;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-02IN;Game Studio I;3;2;TF;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-02PR;Game Studio I;3;1;TF;8:30AM-9:45AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-03AA;Game Studio I;3;0;MTH;10AM-11:15AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-03GD;Game Studio I;3;0;MTH;10AM-11:15AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-03GPM;Game Studio I;3;0;MTH;10AM-11:15AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-03GS;Game Studio I;3;0;MTH;10AM-11:15AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-03IN;Game Studio I;3;0;MTH;10AM-11:15AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-03PR;Game Studio I;3;0;MTH;10AM-11:15AM;Peter Wehr; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-04AA;Game Studio I;3;2;TF;10AM-11:15AM;Tracy Seamster; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-04GD;Game Studio I;3;-1;TF;10AM-11:15AM;Tracy Seamster; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-04GS;Game Studio I;3;0;TF;10AM-11:15AM;Tracy Seamster; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-04IN;Game Studio I;3;0;TF;10AM-11:15AM;Tracy Seamster; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-04PR;Game Studio I;3;0;TF;10AM-11:15AM;Tracy Seamster; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 222;
EGD 220-05AA;Game Studio I;3;-1;MTH;8:30AM-9:45AM;Dana Steinhoff; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-05GD;Game Studio I;3;0;MTH;8:30AM-9:45AM;Dana Steinhoff; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-05GS;Game Studio I;3;0;MTH;8:30AM-9:45AM;Dana Steinhoff; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-05PR;Game Studio I;3;1;MTH;8:30AM-9:45AM;Dana Steinhoff; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-06AA;Game Studio I;3;0;TF;8:30AM-9:45AM;Robin Lloyd-Miller; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-06GD;Game Studio I;3;-3;TF;8:30AM-9:45AM;Robin Lloyd-Miller; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-06GS;Game Studio I;3;0;TF;8:30AM-9:45AM;Robin Lloyd-Miller; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-06IN;Game Studio I;3;2;TF;8:30AM-9:45AM;Robin Lloyd-Miller; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-06PR;Game Studio I;3;0;TF;8:30AM-9:45AM;Robin Lloyd-Miller; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-07AA;Game Studio I;3;-1;MTH;10AM-11:15AM;Dana Steinhoff; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-07GD;Game Studio I;3;-1;MTH;10AM-11:15AM;Dana Steinhoff; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-07GS;Game Studio I;3;0;MTH;10AM-11:15AM;Dana Steinhoff; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-07PR;Game Studio I;3;0;MTH;10AM-11:15AM;Dana Steinhoff; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-08AA;Game Studio I;3;2;TF;10AM-11:15AM;Christopher Mendenhall; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-08GD;Game Studio I;3;1;TF;10AM-11:15AM;Christopher Mendenhall; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-08IN;Game Studio I;3;2;TF;10AM-11:15AM;Christopher Mendenhall; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 220-08PR;Game Studio I;3;0;TF;10AM-11:15AM;Christopher Mendenhall; 1/16 - 5/03;All - GDES, GMRT, GP... more;CCM 224;
EGD 320-01AA;Game Studio II;3;1;W;9AM-11:45AM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-01GD;Game Studio II;3;3;W;9AM-11:45AM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-01GPM;Game Studio II;3;1;W;9AM-11:45AM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-01GS;Game Studio II;3;-1;W;9AM-11:45AM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-01PR;Game Studio II;3;-1;W;9AM-11:45AM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-02AA;Game Studio II;3;0;W;12:15PM-3PM;Evan Janssen; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-02GD;Game Studio II;3;0;W;12:15PM-3PM;Evan Janssen; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-02GPM;Game Studio II;3;1;W;12:15PM-3PM;Evan Janssen; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-02GS;Game Studio II;3;0;W;12:15PM-3PM;Evan Janssen; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-02IN;Game Studio II;3;1;W;12:15PM-3PM;Evan Janssen; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-02PR;Game Studio II;3;0;W;12:15PM-3PM;Evan Janssen; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-03AA;Game Studio II;3;0;W;9AM-11:45AM;Robert Wakefield; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-03GD;Game Studio II;3;2;W;9AM-11:45AM;Robert Wakefield; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-03GPM;Game Studio II;3;0;W;9AM-11:45AM;Robert Wakefield; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-03GS;Game Studio II;3;0;W;9AM-11:45AM;Robert Wakefield; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-03PR;Game Studio II;3;0;W;9AM-11:45AM;Robert Wakefield; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-04AA;Game Studio II;3;0;W;12:15PM-3PM;Jessie Gagnon; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-04GD;Game Studio II;3;1;W;12:15PM-3PM;Jessie Gagnon; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-04GPM;Game Studio II;3;0;W;12:15PM-3PM;Jessie Gagnon; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-04GS;Game Studio II;3;-1;W;12:15PM-3PM;Jessie Gagnon; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-04IN;Game Studio II;3;1;W;12:15PM-3PM;Jessie Gagnon; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-04PR;Game Studio II;3;-1;W;12:15PM-3PM;Jessie Gagnon; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 224;
EGD 320-05AA;Game Studio II;3;0;F;11:30AM-2:15PM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-05GD;Game Studio II;3;1;F;11:30AM-2:15PM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-05GPM;Game Studio II;3;1;F;11:30AM-2:15PM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-05GS;Game Studio II;3;-1;F;11:30AM-2:15PM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-05PR;Game Studio II;3;1;F;11:30AM-2:15PM;Dana Steinhoff; 1/16 - 5/03;GDES.BS, GART.BS, GP... more;CCM 222;
EGD 320-102;Game Studio II;3;17;T;6PM-8:45PM;Rodolphe Recca; 1/15 - 5/03;GDES.BS, GART.BS, GP... more;
EGD 380B-01;Adv. Sem.: Game Development;3;0;T;10AM-12:45PM;Robin Perlah; 1/16 - 5/03;Game Design majors o... more;MCLC 105A;
EGD 380B-02;Advanced Seminar;3;-1;M;5:30PM-8:15PM;John Levee; 1/16 - 5/03;Game Design majors o... more;CCM 402;
EGD 420-01;Game Studio III;5;72;M;2:30PM-5:15PM;Eric Winebrenner; 1/16 - 5/03;CCC-410EGD with a mi... more;CCM 222;
EGD 420-02;Game Studio III;5;-16;M;2:30PM-5:15PM;Ryan Huggins; 1/16 - 5/03;CCC-410EGD with a mi... more;CCM 224;
EGD 420-04;Game Studio III;5;-16;TH;2:30PM-5:15PM;Shannon Mitchell; 1/16 - 5/03;CCC-410EGD with a mi... more;CCM 222;
EGD 420-05;Game Studio III;5;-17;TH;2:30PM-5:15PM;Jennifer Vincent; 1/16 - 5/03;CCC-410EGD with a mi... more;CCM 224;
EGD 420-51;Game Studio III;5;-20;M;5:30PM-8:15PM;Edmar Mendizabal; 1/16 - 5/03;CCC-410EGD with a mi... more;FOST 104;
EHS 210-01SL;Social Justice Intensive;1;-6;M;1PM-1:50PM;Jean-Marie Severance; 1/16 - 3/29;EHS 100 is a prerequ... more;CCM 442;
EHS 210-03SL;Social Justice Intensive;1;-6;T;4PM-4:50PM;Valerie Esposito; 1/16 - 3/29;EHS 100 is a prerequ... more;JOYC 202;
EHS 230-01;Self Collective Care Soc Ch;1;0;MTH;2:30PM-3:45PM;Valerie Esposito; 1/16 - 2/16;None;JOYC 202;
EHS 230-02;Self Collective Care Soc Ch;1;11;TF;11:30AM-12:45PM;Valerie Esposito; 3/25 - 4/26;None;JOYC 212;
EHS 490-81;EHS Internship Experience;3;0;TBA;Stephen Miller; 1/16 - 5/03;Students must comple... more;
ENG 260-01;Survey of Drama;3;10;W;9AM-11:45AM;Christopher Tebbetts; 1/16 - 5/03;ENG-112 or COR-125 o... more;CCM 305;
ENP 270-01;Food Systems and Policy;3;0;M;4PM-6:45PM;Kelly Dolan; 1/16 - 5/03;None;JOYC 302;
ENP 300-01;Place-Based Environ. Study;3;0;T;1PM-3:45PM;Valerie Esposito; 1/16 - 5/03;None;JOYC 212;
ENP 360-51;Environmental Law;3;4;W;5:30PM-8:15PM;Salvatore Spinosa; 1/16 - 5/03;60 completed credits... more;JOYC 301;
EVT 497-81;Event Planning;3;0;TBA;Nancy Kerr; 1/16 - 5/03;None;
FIN 240-01;Financial Management I;3;11;MTH;8:30AM-9:45AM;Frederick Burkhardt; 1/16 - 5/03;Take ACC-135;GBTC 114;
FIN 240-02;Financial Management I;3;-1;MTH;10AM-11:15AM;Frederick Burkhardt; 1/16 - 5/03;Take ACC-135;GBTC 114;
FIN 300-01;Investments;3;4;TF;1PM-2:15PM;Frederick Burkhardt; 1/16 - 5/03;ACC-135;GBTC 217;
FLM 100-51;Film Studies: Screenings;1;38;W;5:30PM-8:15PM;Mira Niagolova; 1/16 - 5/03;None;CCM 305;
FLM 125-01;Audio Production for Film;3;-2;T;2:30PM-5:15PM;Matthew Parillo; 1/16 - 5/03;None;CCM 101;
FLM 125-51;Audio Production for Film;3;0;T;5:30PM-8:15PM;Michael DiBiasio; 1/16 - 5/03;None;CCM 101;
FLM 128-01;Screenwriting I;3;0;T;8:30AM-11:15AM;Julia Swift; 1/16 - 5/03;None;GBTC 206;
FLM 128-02;Screenwriting I;3;0;W;9AM-11:45AM;Scott Tuft; 1/16 - 5/03;None;JOYC 212;
FLM 128-03;Screenwriting I;3;0;TH;8:30AM-11:15AM;Scott Tuft; 1/16 - 5/03;None;GBTC 206;
FLM 211-01;Film History II;3;15;MTH;5:30PM-8:15PM,<br/>2:30PM-3:45PM;Matthew Parillo; 1/16 - 5/03;Take FLM-210 OR any ... more;GBTC 112;
FLM 211-02;Film History II;3;2;MTH;5:30PM-8:15PM,<br/>4PM-5:15PM;Matthew Parillo; 1/16 - 5/03;Take FLM-210 OR any ... more;GBTC 112;
FLM 215-01;Filmmaking I;3;-1;M;8:30AM-11:15AM;Mira Niagolova; 1/16 - 5/03;Film majors only. Co... more;FOST 101;
FLM 215-02;Filmmaking I;3;1;T;8:30AM-11:15AM;Mira Niagolova; 1/16 - 5/03;Film majors only. Co... more;FOST 101;
FLM 225-01;Cinematography and Lighting;3;-2;TTH;11:30AM-2:15PM,<br/>5:30PM-6:45PM;Christian Acosta; 1/16 - 5/03;Take FLM-110 or BRD-... more;CCM 101;
FLM 225-02;Cinematography and Lighting;3;1;WTH;9AM-11:45AM,<br/>7PM-8:15PM;Christian Acosta; 1/16 - 5/03;Take FLM-110 or BRD-... more;CCM 101;
FLM 301-01;Topics in Cinema;3;3;T;11:30AM-2:15PM;Mark Osborne; 1/16 - 5/03;This course is only ... more;CCM 305;
FLM 310-51;Production Management;3;0;M;5:30PM-8:15PM;Danielle Hazelton; 1/16 - 5/03;Complete 36 credits.;FOST 101;
FLM 325-01;Advanced Cinematography;3;-2;TH;1PM-3:45PM;Dillon Toole; 1/16 - 5/03;FLM-225 or permissio... more;CCM 101;
FLM 330-01;Video Comp Special Effects;3;7;F;8:30AM-11:15AM;Ryan Dunleavy; 1/16 - 5/03;Complete FLM-230;FOST 101;
FLM 330-02;Video Comp Special Effects;3;3;M;11:30AM-2:15PM;Ryan Dunleavy; 1/16 - 5/03;Complete FLM-230;FOST 101;
FLM 428-01;Screenwriting III;3;2;M;2:30PM-5:15PM;Michael DiBiasio; 1/16 - 5/03;FLM-328;FOST 101;
FOR 100-01;Intro to Cybercrime DF;3;3;MTH;10AM-11:15AM;Joseph Letourneau; 1/16 - 5/03;None;GBTC 117;
FOR 100-02;Intro to Cybercrime DF;3;0;TF;11:30AM-12:45PM;Joseph Letourneau; 1/16 - 5/03;None;GBTC 117;
FOR 120-01;Intro. to DF Analysis;3;5;MTH;1PM-2:15PM;Amy Keigwin; 1/16 - 5/03;Complete FOR-100 wit... more;GBTC 117;
FOR 120-02;Intro. to DF Analysis;3;-1;TF;4PM-5:15PM;Amy Keigwin; 1/16 - 5/03;Complete FOR-100 wit... more;GBTC 117;
FOR 230-01;Operating System Forensics I;3;-6;MTH;11:30AM-12:45PM;Mariam Khader; 1/16 - 5/03;Complete FOR-120 wit... more;GBTC 117;
FOR 230-02;Operating System Forensics I;3;-4;TF;2:30PM-3:45PM;Mariam Khader; 1/16 - 5/03;Complete FOR-120 wit... more;GBTC 117;
FOR 300-51;Special Topics in DF;1;-1;TH;5:30PM-8:15PM;Thomas Claflin; 2/19 - 3/29;FOR-120 or by permis... more;JOYC 202;
FOR 350-01;Malware Analysis IR;3;-9;MTH;2:30PM-3:45PM;Ali Hadi; 1/16 - 5/03;(FOR-230 with C or b... more;GBTC 117;
FOR 370-01;File System Forensics;3;3;TF;10AM-11:15AM;Ali Hadi; 1/16 - 5/03;FOR 230 with C or be... more;GBTC 117;
FOR 480-01;Digital Forensic Practicum;3;5;MTH;4PM-5:15PM;Ali Hadi; 1/16 - 5/03;Complete FOR-230 wit... more;GBTC 117;
GAA 105-01;Intro to 2D Digital Art;3;-2;T;8:30AM-11:15AM;Felipe Lega; 1/16 - 5/03;Game Art, Animation ... more;CCM 001;
GAA 125-01;Drawing for Realism I;3;0;M;10AM-12:45PM;Logan Pike; 1/16 - 5/03;Game Art, Animation ... more;SKFA 100;
GAA 135-01;Intro 3D Modeling Texturing;3;1;T;11:30AM-2:15PM;Christopher Mendenhall; 1/16 - 5/03;Game Art, Animation,... more;CCM 232;
GAA 135-02;Intro 3D Modeling Texturing;3;0;W;9AM-11:45AM;Felipe Lega; 1/16 - 5/03;Game Art, Animation,... more;CCM 232;
GAA 135-03;Intro 3D Modeling Texturing;3;-1;W;12:15PM-3PM;Joshua Stutts; 1/16 - 5/03;Game Art, Animation,... more;CCM 232;
GAA 135-04;Intro 3D Modeling Texturing;3;-1;TH;11:30AM-2:15PM;Christopher Mendenhall; 1/16 - 5/03;Game Art, Animation,... more;CCM 232;
GAA 175-01;Intro to Animation;3;-2;M;8:30AM-11:15AM;Nathan Walpole; 1/16 - 5/03;Game Art, Animation,... more;CCM 001;
GAA 175-02;Intro to Animation;3;0;TH;8:30AM-11:15AM;Felipe Lega; 1/16 - 5/03;Game Art, Animation,... more;CCM 001;
GAA 175-03;Intro to Animation;3;-1;F;8:30AM-11:15AM;Nathan Walpole; 1/16 - 5/03;Game Art, Animation,... more;CCM 001;
GAA 235-01;3D Modeling;3;8;T;11:30AM-2:15PM;Joshua Buck; 1/16 - 5/03;Take GAA-135, grade ... more;CCM 001;
GAA 245-01;Concept Painting, Foundations;3;6;T;2:30PM-5:15PM;Benjamin Jelter; 1/16 - 5/03;Complete GAA-225.;CCM 001;
GAA 245-02;Concept Painting, Foundations;3;1;W;9AM-11:45AM;Benjamin Jelter; 1/16 - 5/03;Complete GAA-225.;CCM 001;
GAA 245-03;Concept Painting, Foundations;3;9;TH;2:30PM-5:15PM;Logan Pike; 1/16 - 5/03;Complete GAA-225.;CCM 001;
GAA 255-01;3D Modeling II;3;3;M;11:30AM-2:15PM;Joshua Stutts; 1/16 - 5/03;Complete GAA-235 wit... more;CCM 001;
GAA 255-02;3D Modeling II;3;4;F;11:30AM-2:15PM;Joshua Stutts; 1/16 - 5/03;Complete GAA-235 wit... more;CCM 001;
GAA 275-01;3D Animation I;3;10;W;12:15PM-3PM;Nathan Walpole; 1/16 - 5/03;Complete GAA-175 wit... more;CCM 001;
GAA 345-01;3D Character Development;3;14;TH;11:30AM-2:15PM;Joshua Stutts; 1/16 - 5/03;Complete GAA-255 min... more;CCM 001;
GAA 360-01;Procedural 3D Modeling;3;4;M;11:30AM-2:15PM;Jo Ann Patel; 1/16 - 5/03;Take GAA-135 grade C... more;CCM 232;
GAA 380-01;Adv Sem: MoCap Animation;3;1;T;8:30AM-11:15AM;Nathan Walpole; 1/16 - 5/03;60 credits completed... more;CCM 232;
GAA 380-02;Adv Seminar: Game Art;3;0;F;8:30AM-11:15AM;Jennifer Carlin; 1/16 - 5/03;60 credits completed... more;CCM 232;
GAA 380-03;Adv Seminar: Game Art;3;1;F;11:30AM-2:15PM;Joshua Buck; 1/16 - 5/03;60 credits completed... more;CCM 232;
GAA 415-01;Sr Portfolio: Game Art;3;1;M;8:30AM-11:15AM;Joshua Buck; 1/16 - 5/03;90 credits completed... more;CCM 232;
GAA 415-02;Sr Portfolio: Game Art;3;0;TH;8:30AM-11:15AM;Joshua Buck; 1/16 - 5/03;90 credits completed... more;CCM 232;
GBP 310-01;Esports Management;3;17;MTH;10AM-11:15AM;Christian Konczal; 1/16 - 5/03;Game Business and Pu... more;CCM 444;
GMD 100-01;Visual Comm. for Game Design;3;-1;MTH;1PM-2:15PM;Tracy Seamster; 1/16 - 5/03;Game Design majors o... more;FOST 104;
GMD 100-02;Visual Comm. for Game Design;3;-4;TF;2:30PM-3:45PM;Tracy Seamster; 1/16 - 5/03;Game Design majors o... more;CCM 222;
GMD 100-03;Visual Comm. for Game Design;3;-4;MTH;4PM-5:15PM;Tracy Seamster; 1/16 - 5/03;Game Design majors o... more;FOST 104;
GMD 110-01;Introduction to Game Design;3;2;TF;10AM-11:15AM;Greg Bemis; 1/16 - 5/03;Game Design, CREM or... more;FOST 104;
GMD 120-01;Creativity and Play;3;0;MTH;10AM-11:15AM;Samara Fantie; 1/16 - 5/03;Game Design and CREM... more;FOST 100;
GMD 120-02;Creativity and Play;3;0;MTH;11:30AM-12:45PM;Kenneth Howell; 1/16 - 5/03;Game Design and CREM... more;CCM 424;
GMD 120-03;Creativity and Play;3;3;MTH;8:30AM-9:45AM;Samara Fantie; 1/16 - 5/03;Game Design and CREM... more;CCM 444;
GMD 120-04;Creativity and Play;3;-1;MTH;2:30PM-3:45PM;Kenneth Howell; 1/16 - 5/03;Game Design and CREM... more;WICK 100;
GMD 200-01;Game Technology I;3;1;T;11:30AM-2:15PM;Joseph Manley; 1/16 - 5/03;CSI-140 or CSI-160 a... more;FOST 104;
GMD 200-02;Game Technology I;3;0;T;2:30PM-5:15PM;Joseph Manley; 1/16 - 5/03;CSI-140 or CSI-160 a... more;CCM 224;
GMD 200-03GPR;Game Technology I;3;4;MTH;11:30AM-12:45PM;Eric Winebrenner; 1/16 - 5/03;CSI-140 or CSI-160 a... more;JOYC 101;
GMD 200-04GPR;Game Technology I;3;1;TF;4PM-5:15PM;Eric Winebrenner; 1/16 - 5/03;CSI-140 or CSI-160 a... more;JOYC 101;
GMD 200-51;Game Technology I;3;2;W;5:30PM-8:15PM;Robert Wakefield; 1/16 - 5/03;CSI-140 or CSI-160 a... more;FOST 104;
GMD 200-52;Game Technology I;3;2;TH;5:30PM-8:15PM;Robert Wakefield; 1/16 - 5/03;CSI-140 or CSI-160 a... more;FOST 104;
GMD 230-01;Interactive Narrative I;3;-3;M;8:30AM-11:15AM;Kellan Bachus; 1/16 - 5/03;Take GMD-110, WRT-12... more;CCM 233;
GMD 240-01;Level Design;3;0;T;11:30AM-2:15PM;John Boyd; 1/16 - 5/03;Game Design majors o... more;CCM 222;
GMD 240-02;Level Design;3;0;W;12:15PM-3PM;John Boyd; 1/16 - 5/03;Game Design majors o... more;FOST 104;
GMD 240-03;Level Design;3;6;TH;8:30AM-11:15AM;John Boyd; 1/16 - 5/03;Game Design majors o... more;CCM 233;
GMD 320-01;Game Sys. Experience Design;3;7;T;11:30AM-2:15PM;Greg Bemis; 1/16 - 5/03;Game Design majors o... more;CCM 224;
GMD 320-03;Game Sys. Experience Design;3;0;TH;11:30AM-2:15PM;Greg Bemis; 1/16 - 5/03;Game Design majors o... more;CCM 224;
GMD 320-102;Game Sys. Experience Design;3;17;T;2PM-4:45PM;Kaermack Polewska; 1/15 - 5/03;Game Design majors o... more;
GMD 350-01;Interactive Narrative II;3;5;M;11:30AM-2:15PM;Kellan Bachus; 1/16 - 5/03;Complete GMD-230.;CCM 233;
GMD 380-01;Adv Sem: Creating Atmosphere;3;1;W;5:30PM-8:15PM;Benjamin Throop; 1/16 - 5/03;Game Design majors o... more;CCM 222;
GMD 380-02;Advanced Seminar: Game Design;3;0;W;9AM-11:45AM;John Boyd; 1/16 - 5/03;Game Design majors o... more;CCM 233;
GMD 380-04;AdvSem: Interactive Narrative;3;0;T;2:30PM-5:15PM;Kellan Bachus; 1/16 - 5/03;Game Design majors o... more;CCM 233;
GMD 410-01;Senior Portfolio: Game Design;3;0;W;9AM-11:45AM;Greg Bemis; 1/16 - 5/03;90 credits completed... more;FOST 104;
GMD 410-02;Senior Portfolio: Game Design;3;7;TH;11:30AM-2:15PM;Joseph Manley; 1/16 - 5/03;90 credits completed... more;CCM 233;
GMS 110-01;Intro to Game Engines for Sou;3;0;T;10AM-12:45PM;John Levee; 1/16 - 5/03;Take SON-120;GBTC 012;
GMS 110-02;Intro to Game Engines for Sou;3;1;TH;2:30PM-5:15PM;John Levee; 1/16 - 5/03;Take SON-120;GBTC 012;
GMS 300-01;Game Snd Des II;3;11;W;12:15PM-3PM;John Levee; 1/16 - 5/03;Take SON-200;GBTC 012;
GPR 250-01;Game Architecture;3;1;MTH;2:30PM-3:45PM;Dean Lawson; 1/16 - 5/03;Complete CSI-240 wit... more;JOYC 101;
GPR 250-02;Game Architecture;3;-2;TF;2:30PM-3:45PM;Dean Lawson; 1/16 - 5/03;Complete CSI-240 wit... more;JOYC 101;
GPR 250-03;Game Architecture;3;0;MTH;4PM-5:15PM;Dean Lawson; 1/16 - 5/03;Complete CSI-240 wit... more;JOYC 101;
GPR 300-01;Inter Graphics Anim Prog;3;1;TF;10AM-11:15AM;Eric Winebrenner; 1/16 - 5/03;GPR-200 AND (GPR-250... more;JOYC 101;
GPR 300-02;Inter Graphics Anim Prog;3;6;MTH;10AM-11:15AM;Eric Winebrenner; 1/16 - 5/03;GPR-200 AND (GPR-250... more;JOYC 101;
GPR 430-01;Networking for Online Games;3;2;TF;11:30AM-12:45PM;Scott Barrett; 1/16 - 5/03;Complete GPR-200, GP... more;JOYC 101;
GPR 430-02;Networking for Online Games;3;1;TF;1PM-2:15PM;Scott Barrett; 1/16 - 5/03;Complete GPR-200, GP... more;JOYC 101;
GPR 440-01;Advanced AI for Games;3;2;MTH;1PM-2:15PM;Alexandre Tolstenko Nogueira; 1/16 - 5/03;GPR-340, Minimum gra... more;JOYC 101;
GPR 470-02;Game Programmer's Portfolio;3;-7;W;12:15PM-3PM;Alexandre Tolstenko Nogueira; 1/16 - 5/03;Game Programming maj... more;JOYC 101;
INT 230-01;Import/Export;3;12;TF;4PM-5:15PM;Parthiv Patel; 1/16 - 5/03;INT-210;GBTC 217;
INT 320-01;International Finance Trade;3;11;TF;8:30AM-9:45AM;Ciaran Buckley; 1/16 - 5/03;Complete BUS-310, EC... more;CCM 442;
ITS 192-71;ITS Internship I;2;1;TBA;Zoltan Sachs; 2/19 - 5/03;None;
ITS 292-71;ITS Internship II;2;0;TBA;Zoltan Sachs; 2/19 - 5/03;Complete 30 credits;
IXD 200-01;Aesthetic Interactions;3;0;T;1PM-3:45PM;Kenneth Howell; 1/16 - 5/03;COMPLETE ONE OF THE ... more;CCM 426;
IXD 200-02;Aesthetic Interactions;3;-2;W;12:15PM-3PM;Kenneth Howell; 1/16 - 5/03;COMPLETE ONE OF THE ... more;CCM 426;
IXD 399-51;Sonic Circuits;3;4;TH;1PM-3:45PM;Alan Larsen; 1/16 - 5/03;57 completed credits... more;CCM 426;
LAN 140-01;Japanese I;3;-2;MTH;2:30PM-3:45PM;Sinyoung Evans; 1/16 - 5/03;None;GBTC 206;
LAN 340-01;Japanese III;3;5;MTH;4PM-5:15PM;Sinyoung Evans; 1/16 - 5/03;LAN-240 or permissio... more;GBTC 206;
LEG 120-51;Business Law;3;0;M;5:30PM-8:15PM;Jeffrey Messina; 1/16 - 5/03;None;JOYC 304;
LEG 160-01;Contracts;3;11;MTH;11:30AM-12:45PM;Eric Friedman; 1/16 - 5/03;None;CCM 221;
LEG 310-01;Wills, Trusts Estates;3;7;MTH;1PM-2:15PM;Eric Friedman; 1/16 - 5/03;LEG-210;CCM 221;
LEG 360-51;Environmental Law;3;6;W;5:30PM-8:15PM;Salvatore Spinosa; 1/16 - 5/03;60 completed credits... more;JOYC 301;
LEG 390-81;Law Externship;3;20;TBA;Stephen Miller; 1/16 - 5/03;60 completed credits... more;
LEG 410-01;US Constitutional Law;3;10;MTH;10AM-11:15AM;Eric Friedman; 1/16 - 5/03;Must complete 60 cre... more;CCM 221;
MGT 140-01;Intro to Game Develop. Mgmt;3;5;MTH;2:30PM-3:45PM;Peter Wehr; 1/16 - 5/03;For Game Production ... more;CCM 233;
MGT 150-01;Exploring Analytics;3;11;TF;8:30AM-9:45AM;Jennifer Vincent; 1/16 - 5/03;Complete MTH-180;WICK 100;
MGT 150-02;Exploring Analytics;3;1;TF;10AM-11:15AM;Jennifer Vincent; 1/16 - 5/03;Complete MTH-180;WICK 100;
MGT 210-01;Catalyze Positive Org Behavio;3;12;MTH;10AM-11:15AM;Lindsey Godwin; 1/16 - 5/03;None;GBTC 217;
MGT 260-01;Project Mgmt Team Leadership;3;1;M;2:30PM-5:15PM;Lindsey Godwin; 1/16 - 5/03;Must complete 30 cre... more;GBTC 112;
MGT 265-51;Information Systems for Mgmt;3;4;MW;5:30PM-6:45PM;Kenneth Heskett; 1/16 - 5/03;Complete 30 credits ... more;GBTC 112;
MGT 270-51;Business of Entrepreneurship;3;1;T;5:30PM-8:15PM;Charles Bush; 1/16 - 5/03;Complete BUS-110 and... more;HULA 100;
MGT 290-81;Business Career Internship;3;22;TBA;Barrie Silver; 1/16 - 5/03;MGT-210 Must complet... more;
MGT 320-01;Product/Operation Management;3;11;MTH;4PM-5:15PM;Marie Segares; 1/16 - 5/03;MTH-180, ACC-140;JOYC 102;
MGT 330-01;HRM I:Talent/Plng/Acquisition;3;17;TF;8:30AM-9:45AM;Joseph O'Grady; 1/16 - 5/03;None;GBTC 217;
MGT 331-01;HRM II:Talent/Dev Retention;3;20;TF;1PM-2:15PM;Joseph O'Grady; 1/16 - 5/03;MGT-330;GBTC 112;
MGT 365-01;Entrepreneurship: New Venture;3;16;TF;10AM-11:15AM;Charles Bush; 1/16 - 5/03;Complete MGT-270;GBTC 114;
MGT 390-81;Advanced Business Internship;3;16;TBA;Barrie Silver; 1/16 - 5/03;Must have completed ... more;
MGT 425-01;Problem Analysis/Decision Mkg.;3;9;MTH;11:30AM-12:45PM;Joseph O'Grady; 1/16 - 5/03;Must complete 75 cre... more;GBTC 112;
MGT 460-01;Business Policy/Strategic Mgt;3;17;TF;2:30PM-3:45PM;Parthiv Patel; 1/16 - 5/03;Complete 90 and be a... more;GBTC 217;
MKT 110-01;Introduction to Marketing;3;11;TF;2:30PM-3:45PM;Charles Bush; 1/16 - 5/03;None;GBTC 114;
MKT 111-51;Exploring Marketing I;1;18;T;5:30PM-8:15PM;Teresa Anderson; 1/16 - 2/16;Marketing Major (fir... more;GBTC 112;
MKT 112-51;Exploring Marketing II;1;18;T;5:30PM-8:15PM;Teresa Anderson; 2/19 - 3/29;MKT 111; Marketing M... more;GBTC 114;
MKT 210-01;Consumer Behavior;3;18;MTH;10AM-11:15AM;Robert Bloch; 1/16 - 5/03;Complete BUS-120 or ... more;GBTC 112;
MKT 250-51;Intro. to Digital Marketing;3;11;MW;5:30PM-6:45PM;Thomas Funk; 1/16 - 5/03;Complete BUS-120 or ... more;JOYC 305;
MKT 280-01;Activist Marketing;3;13;MTH;11:30AM-12:45PM;Barrie Silver; 1/16 - 5/03;Complete either BUS-... more;GBTC 217;
MKT 290-81;Marketing Internship;3;21;TBA;Barrie Silver; 1/16 - 5/03;Marketing Majors and... more;
MKT 430-01;Strategic Community Mgt.;3;14;TF;2:30PM-3:45PM;Barrie Silver; 1/16 - 5/03;Complete MKT 250 and... more;CCM 444;
MKT 490-81;Advanced Marketing Internship;4;24;TBA;Barrie Silver; 1/16 - 5/03;Approval of Marketin... more;
MTH 115-01;Math for ProbSolv/DecMaking;3;10;MTH;8:30AM-9:45AM;Michael Weinberg; 1/16 - 5/03;None;JOYC 205;
MTH 115-02;Math for ProbSolv/DecMaking;3;0;MTH;10AM-11:15AM;Michael Weinberg; 1/16 - 5/03;None;JOYC 205;
MTH 115-03;Math for ProbSolv/DecMaking;3;0;MTH;2:30PM-3:45PM;Brandon Tries; 1/16 - 5/03;None;JOYC 205;
MTH 115-04;Math for ProbSolv/DecMaking;3;-13;MTH;4PM-5:15PM;Lindsay Day; 1/16 - 5/03;None;JOYC 205;
MTH 115-51;Math for ProbSolv/DecMaking;3;-1;MW;5:30PM-6:45PM;Lindsay Day; 1/16 - 5/03;None;JOYC 205;
MTH 180-02;Statistics, Introduction to;3;0;MTH;11:30AM-12:45PM;Michael Opperman; 1/16 - 5/03;None;JOYC 203;
MTH 180-03;Statistics, Introduction to;3;0;MTH;1PM-2:15PM;Brandon Tries; 1/16 - 5/03;None;JOYC 205;
MTH 180-04;Statistics, Introduction to;3;0;MTH;2:30PM-3:45PM;Warren Sides; 1/16 - 5/03;None;JOYC 203;
MTH 180-06;Statistics, Introduction to;3;-1;TF;10AM-11:15AM;Warren Sides; 1/16 - 5/03;None;JOYC 203;
MTH 180-07;Statistics, Introduction to;3;-1;TF;11:30AM-12:45PM;Warren Sides; 1/16 - 5/03;None;JOYC 203;
MTH 180-10;Statistics, Introduction to;3;5;TF;8:30AM-9:45AM;Erin Milne; 1/16 - 5/03;None;JOYC 205;
MTH 230-02;Calculus I;3;0;TF;2:30PM-3:45PM;Michael Lambert; 1/16 - 5/03;Complete MTH-125 or ... more;JOYC 203;
MTH 240-01;Calculus II;3;-6;TF;1PM-2:15PM;Michael Lambert; 1/16 - 5/03;MTH-230;JOYC 203;
MTH 250-01;Matrices, Vectors, and 3D Math;3;-2;MTH;1PM-2:15PM;Michael Opperman; 1/16 - 5/03;MTH-230;MIC 308;
MTH 250-02;Matrices, Vectors, and 3D Math;3;3;MTH;2:30PM-3:45PM;Michael Opperman; 1/16 - 5/03;MTH-230;MIC 308;
MTH 270-01;Discrete Mathematics;3;8;TF;11:30AM-12:45PM;Melanie Brown; 1/16 - 5/03;Complete MTH-125 wit... more;JOYC 205;
MTH 275-01;Mathematical Cryptography;3;6;TF;1PM-2:15PM;Melanie Brown; 1/16 - 5/03;Complete MTH-125 OR ... more;JOYC 205;
MTH 280-01;Applied Statistics;3;5;W;12:15PM-3PM;Michael Opperman; 1/16 - 5/03;MTH-180;MIC 308;
MTH 315-01;Survey of Geometries;3;9;MTH;4PM-5:15PM;Warren Sides; 1/16 - 5/03;MTH-270;JOYC 203;
MTH 400-01;Advanced Topics in Math;3;-9;TF;2:30PM-3:45PM;Melanie Brown; 1/16 - 5/03;Take MTH-270;;JOYC 205;
MTH 491-81;Topology;3;0;TBA;Warren Sides; 1/16 - 5/03;None;
MTH 492-81;Abstract Algebra;3;0;TBA;Warren Sides; 1/16 - 5/03;None;
NET 150-01;Network Fundamentals;3;0;MTH;10AM-11:15AM;David Ginter; 1/16 - 5/03;None;FOST 202;
NET 150-03;Network Fundamentals;3;1;TF;10AM-11:15AM;David Ginter; 1/16 - 5/03;None;FOST 202;
NET 150-04;Network Fundamentals;3;-2;TF;11:30AM-12:45PM;David Ginter; 1/16 - 5/03;None;FOST 202;
NET 150-05;Network Fundamentals;3;-1;MTH;1PM-2:15PM;Adam Goldstein; 1/16 - 5/03;None;FOST 202;
NET 480-01;Advanced Topics in Networking;3;0;W;9AM-11:45AM;Ryan Gillen; 1/16 - 5/03;Complete NET-330 wit... more;JOYC 310;
PSY 100-01;Psychology, Introduction to;3;5;MTH;1PM-2:15PM;Gary Baker; 1/16 - 5/03;None;JOYC 302;
PSY 200-01;App Psy: Theory to Analyses;3;7;W;9AM-11:45AM;Barbara Colombo; 1/16 - 5/03;Take PSY-201 Take PS... more;JOYC 103;
PSY 202-01;Research Methods Analysis II;3;2;TF;10AM-11:15AM;Gary Baker; 1/16 - 5/03;PSY-201 and MTH-180.;JOYC 212;
PSY 210-01;Cognitive Psychology;3;0;MTH;11:30AM-12:45PM;Kimberly Quinn; 1/16 - 5/03;PSY-100 or 100-level... more;JOYC 102;
PSY 210-02;Cognitive Psychology;3;9;MTH;2:30PM-3:45PM;Kimberly Quinn; 1/16 - 5/03;PSY-100 or 100-level... more;WICK 101;
PSY 220-01;Developmental Psychology;3;0;T;4PM-6:45PM;Melissa McDuffie; 1/16 - 5/03;PSY-100 or COR-110.;JOYC 301;
PSY 290-01;Career Internship I;2;7;MTH;2:30PM-3:45PM;Barbara Colombo; 1/16 - 5/03;Complete PSY-115;JOYC 305;
PSY 330-01;Psychology and Law;3;8;MTH;10AM-11:15AM;Gary Baker; 1/16 - 5/03;Must have completed ... more;JOYC 302;
PSY 340-01;Behavioral Neuroscience;4;6;MTH;1PM-2:15PM;Barbara Colombo; 1/16 - 5/03;Complete SCI-115 and... more;JOYC 305;
PSY 450-01;Counseling Skills;3;6;TF;1PM-2:15PM;Melissa McDuffie; 1/16 - 5/03;PSY-205;JOYC 301;
SCI 115-01;Human Biology, Introduction to;4;0;TFT;1PM-2:15PM,<br/>3PM-5PM;Sarah Beno; 1/16 - 5/03;None;JOYC 103;
SCI 140-01;Nutrition Fitness/Biology of;4;3;TFW;8:30AM-9:45AM,<br/>9AM-11AM;Sarah Beno; 1/16 - 5/03;None;JOYC 103;
SCI 140-02;Nutrition Fitness/Biology of;4;0;TFW;10AM-11:15AM,<br/>12PM-2PM;Sarah Beno; 1/16 - 5/03;None;JOYC 103;
SCI 150-01;Environmental Earth Sciences;4;1;MTHM;8:30AM-9:45AM,<br/>12PM-2PM;Jennifer Supple; 1/16 - 5/03;None;JOYC 103;
SCI 150-51;Environmental Earth Sciences;4;2;TTH;5:30PM-8:15PM,<br/>5:30PM-7:30PM;John Brawley; 1/16 - 5/03;None;FREE 102;
SCI 170-01;Forensic Science, Intro to;4;1;MTHW;11:30AM-12:45PM,<br/>9AM-11AM;Alexandra Collins; 1/16 - 5/03;None;FREE 105;
SCI 170-02;Forensic Science, Intro to;4;0;MTHW;1PM-2:15PM,<br/>12PM-2PM;Alexandra Collins; 1/16 - 5/03;None;JOYC 103;
SCI 170-51;Forensic Science, Intro to;4;0;MT;5:30PM-8:15PM,<br/>5:30PM-7:30PM;Velpula Paul; 1/16 - 5/03;None;FREE 105;
SEC 250-01;Computer Network Security;3;-1;MTH;1PM-2:15PM;Joseph Letourneau; 1/16 - 5/03;Complete SEC-110 or ... more;GBTC 017;
SEC 250-02;Computer Network Security;3;2;MTH;2:30PM-3:45PM;Mariam Khader; 1/16 - 5/03;Complete SEC-110 or ... more;JOYC 310;
SEC 250-03;Computer Network Security;3;0;TF;1PM-2:15PM;Joseph Letourneau; 1/16 - 5/03;Complete SEC-110 or ... more;GBTC 017;
SEC 250-04;Computer Network Security;3;1;TF;2:30PM-3:45PM;Syed Ali; 1/16 - 5/03;Complete SEC-110 or ... more;GBTC 017;
SEC 260-01;Web and Applications Security;3;-4;TF;1PM-2:15PM;Furkan Paligu; 1/16 - 5/03;Complete NET-150 and... more;JOYC 310;
SEC 260-02;Web and Applications Security;3;-1;MTH;4PM-5:15PM;Furkan Paligu; 1/16 - 5/03;Complete NET-150 and... more;GBTC 017;
SEC 260-03;Web and Applications Security;3;-1;MTH;1PM-2:15PM;David Ginter; 1/16 - 5/03;Complete NET-150 and... more;JOYC 310;
SEC 300-71;Special Topic:Wireless Cyber;1;14;T;4PM-5:15PM;Adam Goldstein; 3/26 - 4/23; Complete SEC-250, N... more;JOYC 310;
SEC 335-51;Eth. Hacking Pen. Testing;3;-4;M;5:30PM-8:15PM;Furkan Paligu; 1/16 - 5/03;Complete SEC-260, SE... more;JOYC 310;
SEC 345-72;Information Assurance;3;1;M;4PM-5:15PM;Lakysha Patnode; 1/16 - 5/03;Complete SEC-250 wit... more;JOYC 310;
SEC 350-01;Network Security Controls;3;1;M;10AM-12:45PM;Syed Ali; 1/16 - 5/03;Complete SEC-250, SY... more;GBTC 017;
SEC 350-02;Network Security Controls;3;2;W;9AM-11:45AM;Syed Ali; 1/16 - 5/03;Complete SEC-250, SY... more;GBTC 017;
SEC 440-01;Systems Security;3;10;T;10AM-12:45PM;Adam Goldstein; 1/16 - 5/03;Complete SYS-265, NE... more;JOYC 310;
SEC 480-01;Adv Topics in Cyber Security;3;-2;W;9AM-11:45AM;Ryan Gillen; 1/16 - 5/03;Complete 90 credits ... more;JOYC 310;
SON 101-01;Sound Studio Production;3;1;FF;10AM-12:45PM,<br/>10AM-12:45PM;Justin Croft; 1/16 - 5/03;Must have approval f... more;CCM 014;
SON 101-51;Sound Studio Production;3;0;THTH;5:30PM-8:15PM,<br/>5:30PM-8:15PM;Justin Croft; 1/16 - 5/03;Must have approval f... more;CCM 014;
SON 120-01;Fundamentals of Digital Music;3;2;TF;1PM-2:15PM;Eric Sample; 1/16 - 5/03;None;GBTC 012;
SON 120-02;Fundamentals of Digital Music;3;1;TF;2:30PM-3:45PM;Eric Sample; 1/16 - 5/03;None;GBTC 012;
SON 131-01;History of Musical Innovation;3;2;MTH;1PM-2:15PM;Eric Sample; 1/16 - 5/03;None;GBTC 012;
SON 165-51;Business of Music, the;3;6;M;5:30PM-8:15PM;Malcolm Francis; 1/16 - 5/03;None;GBTC 012;
SON 282-01;Synthesis and Sound Design;3;1;W;9AM-11:45AM;Eric Sample; 1/16 - 5/03;None;GBTC 012;
SWK 140-01SL;Survey of Community Agencies;3;9;W;10AM-12:45PM;Tarn Foerg; 1/16 - 5/03;None;JOYC 304;
SWK 141-01SL;Community Experience;1;17;T;11:30AM-12:20PM;Tarn Foerg; 1/16 - 5/03;Only Social Work Maj... more;JOYC 103;
SWK 235-01;Human Behav: Person-in-Envir.;3;0;MTH;8:30AM-9:45AM;Alicia Cerasoli; 1/16 - 5/03;Complete 40 credits ... more;JOYC 301;
SWK 240-51;Family Violence;3;3;M;5:30PM-8:15PM;Jennifer Jorgenson; 1/16 - 5/03;None;JOYC 301;
SWK 250-71;Intro to Antiracist Practice;3;4;W;5:30PM-8:15PM;Joyce-Zoe Farley; 1/16 - 5/03;Complete 25 credits.;JOYC 302;
SWK 300-01;Policy Pract.:Local to Global;3;15;MTH;2:30PM-3:45PM;Sianay Clifford; 1/16 - 5/03;Must complete 50 cre... more;JOYC 301;
SWK 315-01;Generalist Practice II;3;5;MTH;1PM-2:15PM;Sianay Clifford; 1/16 - 5/03;Take SWK-310.;FREE 201;
SWK 495-71;Social Wk Field Experience II;4;15;TBA;Tarn Foerg; 1/16 - 5/03;Complete SWK-490 and... more;
SWK 495S-01;Int. Social Wk Field Seminar;1;11;M;11:30AM-12:20PM;Tarn Foerg; 1/16 - 5/03;Complete SWK-490 and... more;JOYC 202;
SYS 140-01;Systems Fundamentals;3;4;MTH;2:30PM-3:45PM;Eric Shore; 1/16 - 5/03;None;GBTC 017;
SYS 255-01;Sysadmin Net Services I;3;-8;TH;10AM-12:45PM;Syed Ali; 1/16 - 5/03;Complete NET-150 and... more;GBTC 017;
SYS 265-01;Sysadmin Net Services II;3;2;M;10AM-12:45PM;Joe Eastman; 1/16 - 5/03;Complete NET-215 and... more;JOYC 310;
SYS 265-02;Sysadmin Net Services II;3;0;TH;10AM-12:45PM;Joe Eastman; 1/16 - 5/03;Complete NET-215 and... more;JOYC 310;
SYS 265-03;Sysadmin Net Services II;3;0;W;12:15PM-3PM;Joe Eastman; 1/16 - 5/03;Complete NET-215 and... more;JOYC 310;
SYS 320-01;Automation and Scripting;3;1;F;10AM-12:45PM;Furkan Paligu; 1/16 - 5/03;Complete SYS-255 wit... more;JOYC 310;
SYS 360-01;Cloud Admin Deploy.;3;-5;W;12:15PM-3PM;Adam Goldstein; 1/16 - 5/03;Complete SYS-265;GBTC 017;
SYS 480-01;Adv Topics in SysAdmin;3;0;W;9AM-11:45AM;Ryan Gillen; 1/16 - 5/03;Complete 90 credits,... more;JOYC 310;
THE 140-01;Fundamentals of Acting;3;7;M;2:30PM-5:15PM;Paul Schnabel; 1/16 - 5/03;None;CCM 305;
VCD 110-01;Image Technology;3;-2;M;10AM-12:45PM;Emily Andrews; 1/16 - 5/03;None;CCM 426;
VCD 115-51VCD;The Digital Image;3;2;THT;6PM-8PM,<br/>5:30PM-8:15PM;Andrew Frost; 1/16 - 5/03;None;CCM 426;
VCD 181-01;Design Solutions;3;1;W;9AM-11:45AM;Sheri Bannister; 1/16 - 5/03;None;CCM 426;
VCD 201-01;Intro to Typography;3;1;WW;9AM-11:45AM,<br/>12:15PM-2:15PM;Michelle Hobbs; 1/16 - 5/03;VCD- 100 or approval... more;BARN 200;
VCD 201-02;Intro to Typography;3;2;FF;10AM-12:45PM,<br/>1:45PM-3:45PM;Deborah Kehoe-Yergeau; 1/16 - 5/03;VCD- 100 or approval... more;BARN 200;
VCD 203-51;Form in Motion;3;0;M;5:30PM-8:15PM;Kevin Murakami; 1/16 - 5/03;None;GBTC 014;
VCD 203-52;Form in Motion;3;-1;TH;5:30PM-8:15PM;Kevin Murakami; 1/15 - 5/03;None;GBTC 014;
VCD 206-01;Web Design I;3;-3;FT;10AM-12:45PM,<br/>10AM-12PM;Jamie Aponas; 1/16 - 5/03;VCD-100 or VCD-111;CCM 426;
VCD 220-01;Visual Creativity Meaning;3;-2;TF;1PM-2:15PM;Robin Perlah; 1/16 - 5/03;ART-120;GBTC 114;
VCD 250-01;Prof Comm Practice;1;9;M;10AM-10:50AM;Sarah Moore; 1/16 - 5/03;Complete 45 credits ... more;GBTC 206;
VCD 270-01;Intermediate Typography;3;0;THTH;10AM-12:45PM,<br/>1:45PM-3:45PM;Suzanne Snyder; 1/16 - 5/03;VCD-201;BARN 200;
VCD 301-01;Advanced Typography;3;6;MM;1:45PM-3:45PM,<br/>10AM-12:45PM;Suzanne Snyder; 1/16 - 5/03;Complete VCD-270;BARN 200;
VCD 302-01;Graphic Design/ObjectsSpaces;3;11;T;4PM-6:45PM;Dennis Healy; 1/16 - 5/03;VCD-201;BARN 200;
VCD 303-51;Illustration, Introduction to;3;6;M;5:30PM-8:15PM;Teresa Celemin; 1/16 - 5/03;ART-110 or GDD-110 o... more;CCM 434;
VCD 305-01;Publication Design II;3;2;TH;8:30AM-11:15AM;Matthew Douglas; 1/16 - 5/03;Complete VCD-205;CCM 426;
VCD 307-51;Form in Motion II;3;5;TH;5:30PM-8:15PM;Kevin Murakami; 1/16 - 5/03;Complete VCD-203 or ... more;GBTC 014;
VCD 400-01;Projects in Graphic Design II;3;12;TT;10AM-12:45PM,<br/>1:45PM-3:45PM;Deborah Kehoe-Yergeau; 1/16 - 5/03;MMGD or GDDM or VCDS... more;BARN 200;
VCD 430-51;Creative Production Studio;3;10;MTH;4PM-6:45PM,<br/>4PM-6PM;Rachel Hooper; 1/16 - 5/03;Complete 60 credits ... more;BARN 200;
VCD 450-01;Portfolio Studio;2;2;T;4PM-5:40PM;Deborah Kehoe-Yergeau; 1/16 - 5/03;Complete VCD-250. GD... more;BARN 100;
VCD 450-02;Portfolio Studio;2;2;F;4PM-5:40PM;Deborah Kehoe-Yergeau; 1/16 - 5/03;Complete VCD-250. GD... more;BARN 200;
WRT 120-01;Creative Writing, Introduction;3;0;MTH;1PM-2:15PM;James Ellefson; 1/16 - 5/03;ENG-111 OR COR-115;CCM 444;
WRT 120-02;Creative Writing, Introduction;3;-1;MTH;2:30PM-3:45PM;James Ellefson; 1/16 - 5/03;ENG-111 OR COR-115;CCM 444;
WRT 200-01;Fundamentals of Journalism;3;0;MTH;8:30AM-9:45AM;Rebecca Holt; 1/16 - 5/03;ENG-111 OR COR-115;CCM 442;
WRT 220-51;Creative Writing, Intermediate;3;0;TH;4PM-6:45PM;James Ellefson; 1/16 - 5/03;WRT-120;CCM 444;
WRT 231-01;Writing for the Workplace;3;2;TF;8:30AM-9:45AM;Sheila Liming; 1/16 - 5/03;None;CCM 424;
WRT 231-02;Writing for the Workplace;3;0;TF;10AM-11:15AM;Sheila Liming; 1/16 - 5/03;None;CCM 424;
WRT 231-03;Writing for the Workplace;3;4;MTH;8:30AM-9:45AM;Siobhan Neela-Stock; 1/16 - 5/03;None;CCM 424;
WRT 235-01;Writing Children's Literature;3;1;MTH;11:30AM-12:45PM;Tanya Stone; 1/16 - 5/03;ENG-112 OR COR-125 O... more;MIC 305/306;
WRT 250-01;Book Publishing/Editor's Role;3;4;TF;8:30AM-9:45AM;Rebecca Holt; 1/16 - 5/03;Complete WRT-120 and... more;CCM 444;
WRT 324-51;Advanced Poetry Workshop;3;1;M;4PM-6:45PM;James Ellefson; 1/16 - 5/03;WRT-220;CCM 444;
WRT 325-01;Advanced Fiction Workshop;3;7;MTH;2:30PM-3:45PM;Rachel Carter; 1/16 - 5/03;WRT-220 or permissio... more;JOYC 103;
WRT 337-01;Creative Non-Fiction, Advanced;3;8;W;12:15PM-3PM;Sheila Liming; 1/16 - 5/03;WRT-137 and 57 compl... more;CCM 442;
WRT 346-51;Publishing in 21st Century;3;5;M;4PM-6:45PM;Tanya Stone; 1/16 - 5/03;60 completed credits;CCM 424;
WRT 347-01;Transmedia Storytelling;3;0;TF;1PM-2:15PM;Sheila Liming; 1/16 - 5/03;Complete either COM-... more;CCM 444;
WRT 350-51;Reading and Writing in Genre;3;0;W;5:30PM-8:15PM;William Stratton; 1/16 - 5/03;Complete WRT-120 and... more;CCM 442;

View file

@ -0,0 +1,6 @@
etc/passwd
cmd=
/bin/bash
/bin/sh
1=1#
1=1--

View file

@ -0,0 +1,20 @@
10.0.17.5 - - [04/Mar/2024:13:28:46 -0500] "GET /index.html HTTP/1.1" 404 295 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:13:29:21 -0500] "GET /index.html HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:42:42 -0500] "GET /index.php HTTP/1.1" 404 295 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:43:07 -0500] "GET /index.php HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:43:21 -0500] "GET /index.php?a=1&b=2 HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:43:50 -0500] "GET /index.php?cmd=etc/passwd HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:44:19 -0500] "GET /index.php?cmd=cat+etc/passwd HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:44:52 -0500] "GET /index.php?cmd=/bing/bash+myscript.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:45:01 -0500] "GET /index.php?cmd=/bin/bash+myscript.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:45:19 -0500] "GET /index.php?cmd=/bin/sh+simplebackdoor.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:45:31 -0500] "GET /index.php?/bin/sh+simplebackdoor.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:46:03 -0500] "GET /index.php?a=1+OR+1=1-- HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:46:12 -0500] "GET /index.php?a=1+OR+1=1- HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:46:27 -0500] "GET /index.php?a=1+OR+1=1 HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.5 - - [04/Mar/2024:14:46:47 -0500] "GET /index.php?word=Hello+World HTTP/1.1" 200 758 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.17.6 - - [04/Mar/2024:14:48:39 -0500] "GET / HTTP/1.1" 200 758 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"
10.0.17.6 - - [04/Mar/2024:14:48:40 -0500] "GET /favicon.ico HTTP/1.1" 404 295 "http://10.0.17.5/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"
10.0.17.6 - - [04/Mar/2024:14:48:50 -0500] "GET /index.html HTTP/1.1" 200 758 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"
10.0.17.6 - - [04/Mar/2024:14:49:44 -0500] "GET /index.html?command=/bin/bash/+reverseshell.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"
10.0.17.6 - - [04/Mar/2024:14:50:24 -0500] "GET /index.html?command=/bin/bash/+midtermcheatdetector.bash HTTP/1.1" 200 758 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0"

View file

@ -0,0 +1,21 @@
#! /bin/bash
# This is the link we will scrape
link="10.0.17.6/IOC.html"
# get it with curl and tell curl not to give errors
fullPage=$(curl -sL "$link")
# Utilizing xmlstarlet tool to extract table from the page
toolOutput=$(echo "$fullPage" | \
xmlstarlet format --html --recover 2>/dev/null | \
xmlstarlet select -n --template --copy-of \
"//html//body//table//tr//td[1]")
# Processing HTML with sed
echo "$toolOutput" | sed -e 's/<td[^>]*>//g' | sed -e 's/<\/td>/;/g' | \
tr ';' '\n' | sed '/^$/d' > IOC.txt

View file

@ -0,0 +1,4 @@
#!/bin/bash
cat access.log | cut -d' ' -f1,4,7 | tr -d '[' | \
egrep -i -f IOC.txt > report.txt

View file

@ -0,0 +1,16 @@
#!/bin/bash
# turn report.txt into an html report
echo -e "<html>\n<head>\n\t<style>\n\t\ttd {border: 1px solid black;}\n\t</style>\n</head>\n<body>\n<h3>Access logs with IOC indicators:</h3>\n<table>" > report.html
cat report.txt | while read -r line; do
echo -e "\t<tr>\n" >> report.html
for element in $line; do
echo -e "\t\t<td>$element</td>" >> report.html
done
echo -e "\t</tr>" >> report.html
done
echo -e "</table>\n</body>\n</html>" >> report.html
cp report.html /var/www/html/report.html

View file

@ -0,0 +1,66 @@
<html>
<head>
<style>
td {border: 1px solid black;}
</style>
</head>
<body>
<h3>Access logs with IOC indicators:</h3>
<table>
<tr>
<td>10.0.17.5</td>
<td>04/Mar/2024:14:43:50</td>
<td>/index.php?cmd=etc/passwd</td>
</tr>
<tr>
<td>10.0.17.5</td>
<td>04/Mar/2024:14:44:19</td>
<td>/index.php?cmd=cat+etc/passwd</td>
</tr>
<tr>
<td>10.0.17.5</td>
<td>04/Mar/2024:14:44:52</td>
<td>/index.php?cmd=/bing/bash+myscript.bash</td>
</tr>
<tr>
<td>10.0.17.5</td>
<td>04/Mar/2024:14:45:01</td>
<td>/index.php?cmd=/bin/bash+myscript.bash</td>
</tr>
<tr>
<td>10.0.17.5</td>
<td>04/Mar/2024:14:45:19</td>
<td>/index.php?cmd=/bin/sh+simplebackdoor.bash</td>
</tr>
<tr>
<td>10.0.17.5</td>
<td>04/Mar/2024:14:45:31</td>
<td>/index.php?/bin/sh+simplebackdoor.bash</td>
</tr>
<tr>
<td>10.0.17.5</td>
<td>04/Mar/2024:14:46:03</td>
<td>/index.php?a=1+OR+1=1--</td>
</tr>
<tr>
<td>10.0.17.6</td>
<td>04/Mar/2024:14:49:44</td>
<td>/index.html?command=/bin/bash/+reverseshell.bash</td>
</tr>
<tr>
<td>10.0.17.6</td>
<td>04/Mar/2024:14:50:24</td>
<td>/index.html?command=/bin/bash/+midtermcheatdetector.bash</td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,9 @@
10.0.17.5 04/Mar/2024:14:43:50 /index.php?cmd=etc/passwd
10.0.17.5 04/Mar/2024:14:44:19 /index.php?cmd=cat+etc/passwd
10.0.17.5 04/Mar/2024:14:44:52 /index.php?cmd=/bing/bash+myscript.bash
10.0.17.5 04/Mar/2024:14:45:01 /index.php?cmd=/bin/bash+myscript.bash
10.0.17.5 04/Mar/2024:14:45:19 /index.php?cmd=/bin/sh+simplebackdoor.bash
10.0.17.5 04/Mar/2024:14:45:31 /index.php?/bin/sh+simplebackdoor.bash
10.0.17.5 04/Mar/2024:14:46:03 /index.php?a=1+OR+1=1--
10.0.17.6 04/Mar/2024:14:49:44 /index.html?command=/bin/bash/+reverseshell.bash
10.0.17.6 04/Mar/2024:14:50:24 /index.html?command=/bin/bash/+midtermcheatdetector.bash