SlideShare a Scribd company logo
Technical Workshop 1ADVANCED SYSTEMS MANAGEMENTPresented By Arik FletcherThursday January 29th 2009
Why Are We Here?These workshops aim to relay a simple mantra:A little TIME, EFFORT, and the right RESOURCES combined with TRAINING, PRACTICE, and TEAMWORK will vastly improve your KNOWLEDGE, ABILITY, and EXPERIENCE.KNOWLEDGETEAMWORKTIMETRAININGRESOURCESEXPERIENCEPRACTICEEFFORTABILITYTechnical Workshop 1 - Advanced Network Management
AgendaTechnical Workshop 1 - Advanced Network ManagementAdministration Essentials09:45 – 10:30Discussion:IT Support ExpectationsExercise:Task Management and AutomationTutorial:	The Realities of AutomationBREAK						10:30 –10:40Scripting Essentials10:40 – 12:10Overview:	Introduction to ScriptingTutorial:	Syntax and Reference DocumentsTutorial:	Structure and Sample CodeExercise:	Script Writing and TroubleshootingBREAK						12:10 –12:20Toolkit Essentials12:0 – 13:00Overview: 	Utility DVD contentsDiscussion:	Recommended Tools
Administration EssentialsTASK MANAGEMENT FOR SYSTEMS ENGINEERSTechnical Workshop 1 - Advanced Network Management
IT Support:ExpectationsInterviews with staff at the Computer Depot in the University of Vermont.This video focuses on what IT Support Technicians expect from their computers.Technical Workshop 1 - Advanced Network Management
What Do You Expect From Your Computers?Technical Workshop 1 - Advanced Network Management
Recommended Admin TasksDaily Checks:Server ServicesServer Event LogsServer Hardware StatusFirewall Logs and StatusBackup StatusAntivirus UpdatesWeekly Checks:Server Disk SpaceMail Store & Database SpaceTechnical Workshop 1 - Advanced Network ManagementMonthly Checks:Restore StatusServer Security UpdatesNetwork Application PatchesServer Disk FragmentationWorkstation Hardware StatusPrinter Hardware StatusDocumentation StatusQuarterly Checks:Workstation Builds
Where Does The Day Go?If you feel like this guy...don’t panic, help is at hand!Technical Workshop 1 - Advanced Network Management
Automated vs. Manual TasksAutomated Checks:Server ServicesServer Event LogsServer Hardware StatusFirewall Logs and StatusBackup StatusAntivirus UpdatesServer Disk SpaceMail Store & Database SpaceServer Security UpdatesNetwork Application PatchesServer Disk FragmentationWorkstation Hardware StatusPrinter Hardware StatusTechnical Workshop 1 - Advanced Network ManagementManual Checks:Restore StatusDocumentation StatusWorkstation Builds
Follow The A.R.P.C.E.D. LawTechnical Workshop 1 - Advanced Network Management
The Truth Is Out There...Search before indulging in a potentially long and complex coding projectSomeone else has been there before and has probably written a scriptIf in doubt, ask the team!Technical Workshop 1 - Advanced Network Management
All The Time In The World...Scripting is a long-term gain, but a short-term loss...A script can save you time once completed, but it will need a fair amount of time and energy to be invested in its initial development.Even when your script is done, you will find yourself spending further time and resources on testing and improving it.Technical Workshop 1 - Advanced Network Management
Can You Handle The Truth?Technical Workshop 1 - Advanced Network ManagementTAKE THE RED PILL:Stay in Wonderland and I show you how deep the rabbit-hole goes...TAKE THE BLUE PILL:The story ends, you wake up in your bed and believe whatever you want to believe...THE CHOICE IS YOURS...
Scripting EssentialsA LOOK AT WINDOWS SHELL SCRIPTINGTechnical Workshop 1 - Advanced Network Management
Scripting Essentials OverviewWhat is shell scripting?What can/can’t it do?What else is out there?How do I get started?Where do I learn more?Will this happen to me?Technical Workshop 1 - Advanced Network Management
What is Shell Scripting?A collection or ‘batch’ of commands run in sequence to complete a task or set of tasks.Quick and easy method of automating the most common admin or user tasks.An essential tool for both improving task efficiency and time management.Technical Workshop 1 - Advanced Network Management
What can/can’t shell scripts do?Technical Workshop 1 - Advanced Network Management
What Else Is Out There?Technical Workshop 1 - Advanced Network Management
Code Writing GuidelinesTechnical Workshop 1 - Advanced Network Management
When In Rome (or America)...Scripts are designed to be written in American English. Regional Settings will not change the commands‘Correct’ spelling is critical- “It is the American Way!”e.g. COLOR, Favorites, Organization, Customize, etcTechnical Workshop 1 - Advanced Network Management
Shell Command SymbolsTechnical Workshop 1 - Advanced Network Management
Shell Prompt ModificationTechnical Workshop 1 - Advanced Network Management
Arguments & VariablesARGUMENTSRepresented by single % symbolValues set by end userNumbered from 1 (0 is script)Generally used as switchese.g. ArguVars.cmd/testVARIABLESIdentified by enclosed % symbolsValues set by OS or script writerNamed by OS or script writerCan be used as argumentse.g. ArguVars.cmd%os%Technical Workshop 1 - Advanced Network Management
Environmental VariablesTechnical Workshop 1 - Advanced Network Management
Environmental Variables (cont.)Technical Workshop 1 - Advanced Network Management
Internal & External CommandsINTERNAL COMMANDSPart of CMD shellNo file extensionsCannot run without shellHelp command can be usede.g. HELP DIREXTERNAL COMMANDSSeparate from CMD shellUsually .exe or .com extensionsCan be run outside of shellExternal help is usually needede.g. MSTSC/?Technical Workshop 1 - Advanced Network Management
Internal CommandsTechnical Workshop 1 - Advanced Network Management
Internal Commands (cont.)Technical Workshop 1 - Advanced Network Management
External CommandsTechnical Workshop 1 - Advanced Network Management
External Commands (cont.)Technical Workshop 1 - Advanced Network Management
Recommended Code Layout@ECHO off	- only show outputCLS		- clear screen:START		- label start of codeTITLE		- window/script titleREM		- author/copyright:RUN		- label body of codeREM		- command notesECHO- a command to run:FINISH	- label end of codeREM		- closing commentsGOTO :EOF	- exit the scriptTechnical Workshop 1 - Advanced Network Management
Importance of Comments and LayoutTechnical Workshop 1 - Advanced Network Management
FORUsed to iterate (repeat) tasks USAGE:Uses lettered arguments with double % symbol in scripts and single % symbol from shellRequires in and do functionsCOMMON SWITCHES:Follow numeric series: FOR /lPerform file functions: FOR /fTechnical Workshop 1 - Advanced Network Management
IFAllows for conditional tasksUSAGEFollow with not for negativesUses else in place of multiplesCase sensitive unless /i is usedUses double = symbol in scripts and single = symbol in shellCOMMON USES:File Check: IFexist %path%Variable Check: IFdefined osCompare: IF“%1”==“%path%”Technical Workshop 1 - Advanced Network Management
SETCreates temporary variablesValues from script writer or userPerforms arithmetic functionsCOMMON USES:Set Variable: SETvar=valueCalculate: SET/a var=equationPrompt:SET/p var=questionTechnical Workshop 1 - Advanced Network Management
Green Code is Good CodeRE-USABLE CODE:Mini-script within main scriptReduces development timeGuarantees fewer mistakesImproves code legibilityUSAGE GUIDELINES:Use labels to identify routinesUse arguments and variablesShould be after ‘end’ of scriptMust be called not directed toTechnical Workshop 1 - Advanced Network Management
I can only show you the door, you're the one that has to walk through it...Technical Workshop 1 - Advanced Network Management
Script This!Print a line of textClear the screenChange window colorView a text fileSave output to a fileCreate a variableCompare a variableRepeat a file taskCalculate an equationECHOvalueCLSCOLOR valueTYPEpath\file.extIPCONFIG> file.extSETvar=valueIF “%var%”==“value”FOR/f%%ain (‘cmd’) doSET/avar=equationTechnical Workshop 1 - Advanced Network Management
Un-script This!Disables command echoChange window titleRun the SUBTASK routineExit the scriptShow a file in single pagesCheck for variableCheck if command workedPrompt user for valuePerform a task five times@ECHO offTITLE valueCALL :SUBTASKGOTO:EOFTYPEfile.ext |MOREIFDEFINEDvarIF “%errorlevel%”==“0”SET/p var=valueFOR/l%%ain (1,1,5) doTechnical Workshop 1 - Advanced Network Management
Scripting ResourcesWeb LinksBooksCS Portal Script Repositoryhttp://tinyurl.com/cspscriptsFrank-Peter Schultze Scriptshttp://tinyurl.com/fpschultzeTSCMD FAQ: Scripting Trickshttp://tinyurl.com/tscmdfaqTechNet A-Z Command Referencehttp://tinyurl.com/mscmdrefBackup Exec 11d Documentshttp://tinyurl.com/be11docsBackup Exec 12d Documentshttp://tinyurl.com/be12doczipWindows NT Shell ScriptingISBN: 1-57870-047-7Zero Administration for WindowsISBN: 1-56592-508-4Windows 2000 Active DirectoryISBN: 1-56592-638-2Windows 2000 Scripting BibleISBN: 0-7645-4677-5Windows Desktop Deployment Resource KitISBN: 0-7356-1898-4Windows Command Pocket ConsultantISBN: 0-7356-2262-0Technical Workshop 1 - Advanced Network Management
Toolkit EssentialsVITAL TOOLS AND UTILITIES FOR ALL TECHIESTechnical Workshop 1 - Advanced Network Management
Technical Workshop 1 - Advanced Network Management
Utility Disc – DigiWiz miniPE2-XTTechnical Workshop 1 - Advanced Network Management
Utility Disc – Hiren’s Boot CDTechnical Workshop 1 - Advanced Network ManagementDOS Utility Boot CDwith additional Windows Tools
Recommended ToolsScript Writing:Notepad2Notepad++System Information:AIDA32EZAuditPassword Reset:Password RenewNT Offline Password ResetProduct Key Recovery:Magic Jelly Bean KeyfinderNirsoftProduKeyFile Compression:IzArc2Go7-ZipDisk Cloning:Symantec GhostAcronis True ImageDisk Partitioning:Partition MagicParagon Partition ManagerPartition Recovery:TestDiskOntrack Easy Recovery ProDeep Data Recovery:NTFS UndeleteGetDataBack-NTFS/GetDataBack-FATUser Friendly Data Recovery:RecuvaRestorationTechnical Workshop 1 - Advanced Network Management
Recommended Tools (cont.)Floppy/USB Key Cloning:WinImageAntiSpyware:SDFixWebroot Spy SweeperCD Image Creation:LCISOCreatorISO BusterCD Burning:ImgBurnExpress BurnDisk Defragmentation:DefragglerJkDefragFile Copier:FastCopySyncToySystem Optimisation:CCleanerWinASOEasyTweakDriver Backup and Restore:Smart Driver Backup DriverBackup!PE Editor:Resource HackerPE Resource ExplorerPersonal Antivirus:Avast!NOD32Technical Workshop 1 - Advanced Network Management
Ad

Recommended

Unidad 6 Seguridad en redes corporativas
Unidad 6 Seguridad en redes corporativas
vverdu
 
Hack wifi password using kali linux
Hack wifi password using kali linux
Helder Oliveira
 
SSH - Secure Shell
SSH - Secure Shell
Peter R. Egli
 
Wireshark Basic Presentation
Wireshark Basic Presentation
MD. SHORIFUL ISLAM
 
Seguridad en redes
Seguridad en redes
dpovedaups123
 
Module 8 System Hacking
Module 8 System Hacking
leminhvuong
 
Linux06 nfs
Linux06 nfs
Jainul Musani
 
Linux Hardening - nullhyd
Linux Hardening - nullhyd
n|u - The Open Security Community
 
Vulnerability threat and attack
Vulnerability threat and attack
newbie2019
 
Keyloggers
Keyloggers
novacharter
 
Windows Security
Windows Security
Pooja Talreja
 
Unix seminar
Unix seminar
Ajeet Kushwaha
 
Cisco Ironport WSA- Introduction and Guide in Short
Cisco Ironport WSA- Introduction and Guide in Short
Priyank Sharma
 
chroot and SELinux
chroot and SELinux
Shay Cohen
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm
 
Linux security introduction
Linux security introduction
Mohamed Gad
 
Elementos basicos de una arquitectura de red
Elementos basicos de una arquitectura de red
José Miguel Bello Valera
 
INTRODUCTION TO NETWORK OS
INTRODUCTION TO NETWORK OS
kinish kumar
 
Server operating system
Server operating system
Tapan Khilar
 
Basic commands of linux
Basic commands of linux
shravan saini
 
Metasploit
Metasploit
Cristian Alejandro Rojas Quintero
 
Fedora history 3441-3408-3437-3423
Fedora history 3441-3408-3437-3423
Muhammad Saad Hassan
 
Disk and File System Management in Linux
Disk and File System Management in Linux
Henry Osborne
 
API Security Best Practices & Guidelines
API Security Best Practices & Guidelines
Prabath Siriwardena
 
Linux file system
Linux file system
Midaga Mengistu
 
Linux cheat-sheet
Linux cheat-sheet
Zeeshan Rizvi
 
Tools kali
Tools kali
ketban0702
 
Linux basics part 1
Linux basics part 1
Lilesh Pathe
 
Batch file programming
Batch file programming
swapnil kapate
 
Batch File Programming
Batch File Programming
Frz Khan
 

More Related Content

What's hot (20)

Vulnerability threat and attack
Vulnerability threat and attack
newbie2019
 
Keyloggers
Keyloggers
novacharter
 
Windows Security
Windows Security
Pooja Talreja
 
Unix seminar
Unix seminar
Ajeet Kushwaha
 
Cisco Ironport WSA- Introduction and Guide in Short
Cisco Ironport WSA- Introduction and Guide in Short
Priyank Sharma
 
chroot and SELinux
chroot and SELinux
Shay Cohen
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm
 
Linux security introduction
Linux security introduction
Mohamed Gad
 
Elementos basicos de una arquitectura de red
Elementos basicos de una arquitectura de red
José Miguel Bello Valera
 
INTRODUCTION TO NETWORK OS
INTRODUCTION TO NETWORK OS
kinish kumar
 
Server operating system
Server operating system
Tapan Khilar
 
Basic commands of linux
Basic commands of linux
shravan saini
 
Metasploit
Metasploit
Cristian Alejandro Rojas Quintero
 
Fedora history 3441-3408-3437-3423
Fedora history 3441-3408-3437-3423
Muhammad Saad Hassan
 
Disk and File System Management in Linux
Disk and File System Management in Linux
Henry Osborne
 
API Security Best Practices & Guidelines
API Security Best Practices & Guidelines
Prabath Siriwardena
 
Linux file system
Linux file system
Midaga Mengistu
 
Linux cheat-sheet
Linux cheat-sheet
Zeeshan Rizvi
 
Tools kali
Tools kali
ketban0702
 
Linux basics part 1
Linux basics part 1
Lilesh Pathe
 
Vulnerability threat and attack
Vulnerability threat and attack
newbie2019
 
Cisco Ironport WSA- Introduction and Guide in Short
Cisco Ironport WSA- Introduction and Guide in Short
Priyank Sharma
 
chroot and SELinux
chroot and SELinux
Shay Cohen
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm
 
Linux security introduction
Linux security introduction
Mohamed Gad
 
Elementos basicos de una arquitectura de red
Elementos basicos de una arquitectura de red
José Miguel Bello Valera
 
INTRODUCTION TO NETWORK OS
INTRODUCTION TO NETWORK OS
kinish kumar
 
Server operating system
Server operating system
Tapan Khilar
 
Basic commands of linux
Basic commands of linux
shravan saini
 
Fedora history 3441-3408-3437-3423
Fedora history 3441-3408-3437-3423
Muhammad Saad Hassan
 
Disk and File System Management in Linux
Disk and File System Management in Linux
Henry Osborne
 
API Security Best Practices & Guidelines
API Security Best Practices & Guidelines
Prabath Siriwardena
 
Linux basics part 1
Linux basics part 1
Lilesh Pathe
 

Viewers also liked (15)

Batch file programming
Batch file programming
swapnil kapate
 
Batch File Programming
Batch File Programming
Frz Khan
 
Batch file-programming
Batch file-programming
jamilur
 
Linux unix-commands
Linux unix-commands
Zeelogic Solu
 
System Administration
System Administration
Free Open Source Software Technology Lab
 
ppt on SNA
ppt on SNA
Dr Ashok dhaka Bishnoi
 
Process and Threads in Linux - PPT
Process and Threads in Linux - PPT
QUONTRASOLUTIONS
 
virus programming using batch file
virus programming using batch file
Aris Suryadi
 
System Administration: Introduction to system administration
System Administration: Introduction to system administration
Khang-Ling Loh
 
Vi editor
Vi editor
Er Mittinpreet Singh
 
Linux process management
Linux process management
Raghu nath
 
Vi editor in linux
Vi editor in linux
Bhumivaghasiya
 
Shell scripting
Shell scripting
simha.dev.lin
 
Shell Scripting in Linux
Shell Scripting in Linux
Anu Chaudhry
 
The "vi" Text Editor
The "vi" Text Editor
Alessandro Manfredi
 
Ad

Similar to Basics of Batch Scripting (20)

Scripting and Automation within the MAX Platform - Mark Petrie
Scripting and Automation within the MAX Platform - Mark Petrie
MAXfocus
 
System administration with automation
System administration with automation
Shivam Srivastava
 
1 - Introduction.ppt
1 - Introduction.ppt
MuhammadFarhan571648
 
Cybersecurity Ops With Bash Attack Defend And Analyze From The Command Line 1...
Cybersecurity Ops With Bash Attack Defend And Analyze From The Command Line 1...
guhmanlosic
 
Linux Shell Scripting Craftsmanship
Linux Shell Scripting Craftsmanship
bokonen
 
Web 2.0 Performance and Reliability: How to Run Large Web Apps
Web 2.0 Performance and Reliability: How to Run Large Web Apps
adunne
 
Network Monitoring Basics
Network Monitoring Basics
Rob Dunn
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server Management
Sharkrit JOBBO
 
Shell Scripting Classroom Training
Shell Scripting Classroom Training
Srihitha Technologies
 
RES Automation Manager 2012 - What's new...Online Seminar 17 July 2012
RES Automation Manager 2012 - What's new...Online Seminar 17 July 2012
RES Software Nederland
 
Aws meetup ssm
Aws meetup ssm
Manjunath H Gowda
 
TIAD 2016 : Is Automation Worth My Time?
TIAD 2016 : Is Automation Worth My Time?
The Incredible Automation Day
 
TIAD - Is Automation Worth My Time?
TIAD - Is Automation Worth My Time?
Randall Hunt
 
Wsv406 Advanced Automation Using Windows Power Shell2.0
Wsv406 Advanced Automation Using Windows Power Shell2.0
jsnover1
 
linux_Commads
linux_Commads
tastedone
 
Aucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricks
Glen Ogilvie
 
Ch03
Ch03
Raja Waseem Akhtar
 
Ch03 system administration
Ch03 system administration
Raja Waseem Akhtar
 
Introduction to Network and System Administration
Introduction to Network and System Administration
Duressa Teshome
 
24HOP Introduction to Linux for SQL Server DBAs
24HOP Introduction to Linux for SQL Server DBAs
Kellyn Pot'Vin-Gorman
 
Scripting and Automation within the MAX Platform - Mark Petrie
Scripting and Automation within the MAX Platform - Mark Petrie
MAXfocus
 
System administration with automation
System administration with automation
Shivam Srivastava
 
Cybersecurity Ops With Bash Attack Defend And Analyze From The Command Line 1...
Cybersecurity Ops With Bash Attack Defend And Analyze From The Command Line 1...
guhmanlosic
 
Linux Shell Scripting Craftsmanship
Linux Shell Scripting Craftsmanship
bokonen
 
Web 2.0 Performance and Reliability: How to Run Large Web Apps
Web 2.0 Performance and Reliability: How to Run Large Web Apps
adunne
 
Network Monitoring Basics
Network Monitoring Basics
Rob Dunn
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server Management
Sharkrit JOBBO
 
RES Automation Manager 2012 - What's new...Online Seminar 17 July 2012
RES Automation Manager 2012 - What's new...Online Seminar 17 July 2012
RES Software Nederland
 
TIAD - Is Automation Worth My Time?
TIAD - Is Automation Worth My Time?
Randall Hunt
 
Wsv406 Advanced Automation Using Windows Power Shell2.0
Wsv406 Advanced Automation Using Windows Power Shell2.0
jsnover1
 
linux_Commads
linux_Commads
tastedone
 
Aucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricks
Glen Ogilvie
 
Introduction to Network and System Administration
Introduction to Network and System Administration
Duressa Teshome
 
24HOP Introduction to Linux for SQL Server DBAs
24HOP Introduction to Linux for SQL Server DBAs
Kellyn Pot'Vin-Gorman
 
Ad

More from Arik Fletcher (6)

Navigating Emerging Technologies in Business
Navigating Emerging Technologies in Business
Arik Fletcher
 
Making Connections that Matter - Networking for Technical Leaders
Making Connections that Matter - Networking for Technical Leaders
Arik Fletcher
 
The CTO's Role in Business and Tech Strategy.pptx
The CTO's Role in Business and Tech Strategy.pptx
Arik Fletcher
 
Technical Leaders - Working with the Management Team
Technical Leaders - Working with the Management Team
Arik Fletcher
 
Office 365 - The Need To Know
Office 365 - The Need To Know
Arik Fletcher
 
Windows 10 Upgrade: The best bad idea you never had…
Windows 10 Upgrade: The best bad idea you never had…
Arik Fletcher
 
Navigating Emerging Technologies in Business
Navigating Emerging Technologies in Business
Arik Fletcher
 
Making Connections that Matter - Networking for Technical Leaders
Making Connections that Matter - Networking for Technical Leaders
Arik Fletcher
 
The CTO's Role in Business and Tech Strategy.pptx
The CTO's Role in Business and Tech Strategy.pptx
Arik Fletcher
 
Technical Leaders - Working with the Management Team
Technical Leaders - Working with the Management Team
Arik Fletcher
 
Office 365 - The Need To Know
Office 365 - The Need To Know
Arik Fletcher
 
Windows 10 Upgrade: The best bad idea you never had…
Windows 10 Upgrade: The best bad idea you never had…
Arik Fletcher
 

Recently uploaded (20)

OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 

Basics of Batch Scripting

  • 1. Technical Workshop 1ADVANCED SYSTEMS MANAGEMENTPresented By Arik FletcherThursday January 29th 2009
  • 2. Why Are We Here?These workshops aim to relay a simple mantra:A little TIME, EFFORT, and the right RESOURCES combined with TRAINING, PRACTICE, and TEAMWORK will vastly improve your KNOWLEDGE, ABILITY, and EXPERIENCE.KNOWLEDGETEAMWORKTIMETRAININGRESOURCESEXPERIENCEPRACTICEEFFORTABILITYTechnical Workshop 1 - Advanced Network Management
  • 3. AgendaTechnical Workshop 1 - Advanced Network ManagementAdministration Essentials09:45 – 10:30Discussion:IT Support ExpectationsExercise:Task Management and AutomationTutorial: The Realities of AutomationBREAK 10:30 –10:40Scripting Essentials10:40 – 12:10Overview: Introduction to ScriptingTutorial: Syntax and Reference DocumentsTutorial: Structure and Sample CodeExercise: Script Writing and TroubleshootingBREAK 12:10 –12:20Toolkit Essentials12:0 – 13:00Overview: Utility DVD contentsDiscussion: Recommended Tools
  • 4. Administration EssentialsTASK MANAGEMENT FOR SYSTEMS ENGINEERSTechnical Workshop 1 - Advanced Network Management
  • 5. IT Support:ExpectationsInterviews with staff at the Computer Depot in the University of Vermont.This video focuses on what IT Support Technicians expect from their computers.Technical Workshop 1 - Advanced Network Management
  • 6. What Do You Expect From Your Computers?Technical Workshop 1 - Advanced Network Management
  • 7. Recommended Admin TasksDaily Checks:Server ServicesServer Event LogsServer Hardware StatusFirewall Logs and StatusBackup StatusAntivirus UpdatesWeekly Checks:Server Disk SpaceMail Store & Database SpaceTechnical Workshop 1 - Advanced Network ManagementMonthly Checks:Restore StatusServer Security UpdatesNetwork Application PatchesServer Disk FragmentationWorkstation Hardware StatusPrinter Hardware StatusDocumentation StatusQuarterly Checks:Workstation Builds
  • 8. Where Does The Day Go?If you feel like this guy...don’t panic, help is at hand!Technical Workshop 1 - Advanced Network Management
  • 9. Automated vs. Manual TasksAutomated Checks:Server ServicesServer Event LogsServer Hardware StatusFirewall Logs and StatusBackup StatusAntivirus UpdatesServer Disk SpaceMail Store & Database SpaceServer Security UpdatesNetwork Application PatchesServer Disk FragmentationWorkstation Hardware StatusPrinter Hardware StatusTechnical Workshop 1 - Advanced Network ManagementManual Checks:Restore StatusDocumentation StatusWorkstation Builds
  • 10. Follow The A.R.P.C.E.D. LawTechnical Workshop 1 - Advanced Network Management
  • 11. The Truth Is Out There...Search before indulging in a potentially long and complex coding projectSomeone else has been there before and has probably written a scriptIf in doubt, ask the team!Technical Workshop 1 - Advanced Network Management
  • 12. All The Time In The World...Scripting is a long-term gain, but a short-term loss...A script can save you time once completed, but it will need a fair amount of time and energy to be invested in its initial development.Even when your script is done, you will find yourself spending further time and resources on testing and improving it.Technical Workshop 1 - Advanced Network Management
  • 13. Can You Handle The Truth?Technical Workshop 1 - Advanced Network ManagementTAKE THE RED PILL:Stay in Wonderland and I show you how deep the rabbit-hole goes...TAKE THE BLUE PILL:The story ends, you wake up in your bed and believe whatever you want to believe...THE CHOICE IS YOURS...
  • 14. Scripting EssentialsA LOOK AT WINDOWS SHELL SCRIPTINGTechnical Workshop 1 - Advanced Network Management
  • 15. Scripting Essentials OverviewWhat is shell scripting?What can/can’t it do?What else is out there?How do I get started?Where do I learn more?Will this happen to me?Technical Workshop 1 - Advanced Network Management
  • 16. What is Shell Scripting?A collection or ‘batch’ of commands run in sequence to complete a task or set of tasks.Quick and easy method of automating the most common admin or user tasks.An essential tool for both improving task efficiency and time management.Technical Workshop 1 - Advanced Network Management
  • 17. What can/can’t shell scripts do?Technical Workshop 1 - Advanced Network Management
  • 18. What Else Is Out There?Technical Workshop 1 - Advanced Network Management
  • 19. Code Writing GuidelinesTechnical Workshop 1 - Advanced Network Management
  • 20. When In Rome (or America)...Scripts are designed to be written in American English. Regional Settings will not change the commands‘Correct’ spelling is critical- “It is the American Way!”e.g. COLOR, Favorites, Organization, Customize, etcTechnical Workshop 1 - Advanced Network Management
  • 21. Shell Command SymbolsTechnical Workshop 1 - Advanced Network Management
  • 22. Shell Prompt ModificationTechnical Workshop 1 - Advanced Network Management
  • 23. Arguments & VariablesARGUMENTSRepresented by single % symbolValues set by end userNumbered from 1 (0 is script)Generally used as switchese.g. ArguVars.cmd/testVARIABLESIdentified by enclosed % symbolsValues set by OS or script writerNamed by OS or script writerCan be used as argumentse.g. ArguVars.cmd%os%Technical Workshop 1 - Advanced Network Management
  • 24. Environmental VariablesTechnical Workshop 1 - Advanced Network Management
  • 25. Environmental Variables (cont.)Technical Workshop 1 - Advanced Network Management
  • 26. Internal & External CommandsINTERNAL COMMANDSPart of CMD shellNo file extensionsCannot run without shellHelp command can be usede.g. HELP DIREXTERNAL COMMANDSSeparate from CMD shellUsually .exe or .com extensionsCan be run outside of shellExternal help is usually needede.g. MSTSC/?Technical Workshop 1 - Advanced Network Management
  • 27. Internal CommandsTechnical Workshop 1 - Advanced Network Management
  • 28. Internal Commands (cont.)Technical Workshop 1 - Advanced Network Management
  • 29. External CommandsTechnical Workshop 1 - Advanced Network Management
  • 30. External Commands (cont.)Technical Workshop 1 - Advanced Network Management
  • 31. Recommended Code Layout@ECHO off - only show outputCLS - clear screen:START - label start of codeTITLE - window/script titleREM - author/copyright:RUN - label body of codeREM - command notesECHO- a command to run:FINISH - label end of codeREM - closing commentsGOTO :EOF - exit the scriptTechnical Workshop 1 - Advanced Network Management
  • 32. Importance of Comments and LayoutTechnical Workshop 1 - Advanced Network Management
  • 33. FORUsed to iterate (repeat) tasks USAGE:Uses lettered arguments with double % symbol in scripts and single % symbol from shellRequires in and do functionsCOMMON SWITCHES:Follow numeric series: FOR /lPerform file functions: FOR /fTechnical Workshop 1 - Advanced Network Management
  • 34. IFAllows for conditional tasksUSAGEFollow with not for negativesUses else in place of multiplesCase sensitive unless /i is usedUses double = symbol in scripts and single = symbol in shellCOMMON USES:File Check: IFexist %path%Variable Check: IFdefined osCompare: IF“%1”==“%path%”Technical Workshop 1 - Advanced Network Management
  • 35. SETCreates temporary variablesValues from script writer or userPerforms arithmetic functionsCOMMON USES:Set Variable: SETvar=valueCalculate: SET/a var=equationPrompt:SET/p var=questionTechnical Workshop 1 - Advanced Network Management
  • 36. Green Code is Good CodeRE-USABLE CODE:Mini-script within main scriptReduces development timeGuarantees fewer mistakesImproves code legibilityUSAGE GUIDELINES:Use labels to identify routinesUse arguments and variablesShould be after ‘end’ of scriptMust be called not directed toTechnical Workshop 1 - Advanced Network Management
  • 37. I can only show you the door, you're the one that has to walk through it...Technical Workshop 1 - Advanced Network Management
  • 38. Script This!Print a line of textClear the screenChange window colorView a text fileSave output to a fileCreate a variableCompare a variableRepeat a file taskCalculate an equationECHOvalueCLSCOLOR valueTYPEpath\file.extIPCONFIG> file.extSETvar=valueIF “%var%”==“value”FOR/f%%ain (‘cmd’) doSET/avar=equationTechnical Workshop 1 - Advanced Network Management
  • 39. Un-script This!Disables command echoChange window titleRun the SUBTASK routineExit the scriptShow a file in single pagesCheck for variableCheck if command workedPrompt user for valuePerform a task five times@ECHO offTITLE valueCALL :SUBTASKGOTO:EOFTYPEfile.ext |MOREIFDEFINEDvarIF “%errorlevel%”==“0”SET/p var=valueFOR/l%%ain (1,1,5) doTechnical Workshop 1 - Advanced Network Management
  • 40. Scripting ResourcesWeb LinksBooksCS Portal Script Repositoryhttp://tinyurl.com/cspscriptsFrank-Peter Schultze Scriptshttp://tinyurl.com/fpschultzeTSCMD FAQ: Scripting Trickshttp://tinyurl.com/tscmdfaqTechNet A-Z Command Referencehttp://tinyurl.com/mscmdrefBackup Exec 11d Documentshttp://tinyurl.com/be11docsBackup Exec 12d Documentshttp://tinyurl.com/be12doczipWindows NT Shell ScriptingISBN: 1-57870-047-7Zero Administration for WindowsISBN: 1-56592-508-4Windows 2000 Active DirectoryISBN: 1-56592-638-2Windows 2000 Scripting BibleISBN: 0-7645-4677-5Windows Desktop Deployment Resource KitISBN: 0-7356-1898-4Windows Command Pocket ConsultantISBN: 0-7356-2262-0Technical Workshop 1 - Advanced Network Management
  • 41. Toolkit EssentialsVITAL TOOLS AND UTILITIES FOR ALL TECHIESTechnical Workshop 1 - Advanced Network Management
  • 42. Technical Workshop 1 - Advanced Network Management
  • 43. Utility Disc – DigiWiz miniPE2-XTTechnical Workshop 1 - Advanced Network Management
  • 44. Utility Disc – Hiren’s Boot CDTechnical Workshop 1 - Advanced Network ManagementDOS Utility Boot CDwith additional Windows Tools
  • 45. Recommended ToolsScript Writing:Notepad2Notepad++System Information:AIDA32EZAuditPassword Reset:Password RenewNT Offline Password ResetProduct Key Recovery:Magic Jelly Bean KeyfinderNirsoftProduKeyFile Compression:IzArc2Go7-ZipDisk Cloning:Symantec GhostAcronis True ImageDisk Partitioning:Partition MagicParagon Partition ManagerPartition Recovery:TestDiskOntrack Easy Recovery ProDeep Data Recovery:NTFS UndeleteGetDataBack-NTFS/GetDataBack-FATUser Friendly Data Recovery:RecuvaRestorationTechnical Workshop 1 - Advanced Network Management
  • 46. Recommended Tools (cont.)Floppy/USB Key Cloning:WinImageAntiSpyware:SDFixWebroot Spy SweeperCD Image Creation:LCISOCreatorISO BusterCD Burning:ImgBurnExpress BurnDisk Defragmentation:DefragglerJkDefragFile Copier:FastCopySyncToySystem Optimisation:CCleanerWinASOEasyTweakDriver Backup and Restore:Smart Driver Backup DriverBackup!PE Editor:Resource HackerPE Resource ExplorerPersonal Antivirus:Avast!NOD32Technical Workshop 1 - Advanced Network Management

Editor's Notes

  • #2: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #3: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #4: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #5: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #8: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #9: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #10: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #11: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #12: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #13: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #14: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #15: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #16: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #17: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #18: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #19: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #20: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #21: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #22: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #23: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #24: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #25: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #26: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #27: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #28: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #29: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #30: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #31: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #32: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #33: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #34: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #35: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #36: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #37: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #39: _________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #40: ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #42: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #44: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • #45: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________