SlideShare a Scribd company logo
1 of 46
Technical Workshop 1 ADVANCED SYSTEMS MANAGEMENT Presented By Arik Fletcher Thursday 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. KNOWLEDGE TEAMWORK TIME TRAINING RESOURCES EXPERIENCE PRACTICE EFFORT ABILITY Technical Workshop 1 - Advanced Network Management
Agenda Technical Workshop 1 - Advanced Network Management Administration Essentials09:45 – 10:30 Discussion:IT Support Expectations Exercise:Task Management and Automation Tutorial:	The Realities of Automation BREAK						10:30 –10:40 Scripting Essentials10:40 – 12:10 Overview:	Introduction to Scripting Tutorial:	Syntax and Reference Documents Tutorial:	Structure and Sample Code Exercise:	Script Writing and Troubleshooting BREAK						12:10 –12:20 Toolkit Essentials12:0 – 13:00 Overview: 	Utility DVD contents Discussion:	Recommended Tools
Administration Essentials TASK MANAGEMENT FOR SYSTEMS ENGINEERS Technical Workshop 1 - Advanced Network Management
IT Support:Expectations Interviews 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 Tasks Daily Checks: Server Services Server Event Logs Server Hardware Status Firewall Logs and Status Backup Status Antivirus Updates Weekly Checks: Server Disk Space Mail Store & Database Space Technical Workshop 1 - Advanced Network Management Monthly Checks: Restore Status Server Security Updates Network Application Patches Server Disk Fragmentation Workstation Hardware Status Printer Hardware Status Documentation Status Quarterly 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 Tasks Automated Checks: Server Services Server Event Logs Server Hardware Status Firewall Logs and Status Backup Status Antivirus Updates Server Disk Space Mail Store & Database Space Server Security Updates Network Application Patches Server Disk Fragmentation Workstation Hardware Status Printer Hardware Status Technical Workshop 1 - Advanced Network Management Manual Checks: Restore Status Documentation Status Workstation Builds
Follow The A.R.P.C.E.D. Law Technical Workshop 1 - Advanced Network Management
The Truth Is Out There... Search before indulging in a potentially long and complex coding project Someone else has been there before and has probably written a script If 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 Management TAKE 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 Essentials A LOOK AT WINDOWS SHELL SCRIPTING Technical Workshop 1 - Advanced Network Management
Scripting Essentials Overview What 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 Guidelines Technical 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, etc Technical Workshop 1 - Advanced Network Management
Shell Command Symbols Technical Workshop 1 - Advanced Network Management
Shell Prompt Modification Technical Workshop 1 - Advanced Network Management
Arguments & Variables ARGUMENTS Represented by single % symbol Values set by end user Numbered from 1 (0 is script) Generally used as switchese.g. ArguVars.cmd/test VARIABLES Identified by enclosed % symbols Values set by OS or script writer Named by OS or script writer Can be used as argumentse.g. ArguVars.cmd%os% Technical Workshop 1 - Advanced Network Management
Environmental Variables Technical Workshop 1 - Advanced Network Management
Environmental Variables (cont.) Technical Workshop 1 - Advanced Network Management
Internal & External Commands INTERNAL COMMANDS Part of CMD shell No file extensions Cannot run without shell Help command can be usede.g. HELP DIR EXTERNAL COMMANDS Separate from CMD shell Usually .exe or .com extensions Can be run outside of shell External help is usually needede.g. MSTSC/? Technical Workshop 1 - Advanced Network Management
Internal Commands Technical Workshop 1 - Advanced Network Management
Internal Commands (cont.) Technical Workshop 1 - Advanced Network Management
External Commands Technical Workshop 1 - Advanced Network Management
External Commands (cont.) Technical Workshop 1 - Advanced Network Management
Recommended Code Layout @ECHO off	- only show output CLS		- clear screen :START		- label start of code TITLE		- window/script title REM		- author/copyright :RUN		- label body of code REM		- command notes ECHO- a command to run :FINISH	- label end of code REM		- closing comments GOTO :EOF	- exit the script Technical Workshop 1 - Advanced Network Management
Importance of Comments and Layout Technical Workshop 1 - Advanced Network Management
FOR Used to iterate (repeat) tasks  USAGE: Uses lettered arguments with double % symbol in scripts and single % symbol from shell Requires in and do functions COMMON SWITCHES: Follow numeric series: FOR /l Perform file functions: FOR /f Technical Workshop 1 - Advanced Network Management
IF Allows for conditional tasks USAGE Follow with not for negatives Uses else in place of multiples Case sensitive unless /i is used Uses double = symbol in scripts and single = symbol in shell COMMON USES: File Check: IFexist %path% Variable Check: IFdefined os Compare: IF“%1”==“%path%” Technical Workshop 1 - Advanced Network Management
SET Creates temporary variables Values from script writer or user Performs arithmetic functions COMMON USES: Set Variable: SETvar=value Calculate: SET/a var=equation Prompt:SET/p var=question Technical Workshop 1 - Advanced Network Management
Green Code is Good Code RE-USABLE CODE: Mini-script within main script Reduces development time Guarantees fewer mistakes Improves code legibility USAGE GUIDELINES: Use labels to identify routines Use arguments and variables Should be after ‘end’ of script Must be called not directed to Technical 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 text Clear the screen Change window color View a text file Save output to a file Create a variable Compare a variable Repeat a file task Calculate an equation ECHOvalue CLS COLOR value TYPEpathile.ext IPCONFIG> file.ext SETvar=value IF “%var%”==“value” FOR/f%%ain (‘cmd’) do SET/avar=equation Technical Workshop 1 - Advanced Network Management
Un-script This! Disables command echo Change window title Run the SUBTASK routine Exit the script Show a file in single pages Check for variable Check if command worked Prompt user for value Perform a task five times @ECHO off TITLE value CALL :SUBTASK GOTO:EOF TYPEfile.ext |MORE IFDEFINEDvar IF “%errorlevel%”==“0” SET/p var=value FOR/l%%ain (1,1,5) do Technical Workshop 1 - Advanced Network Management
Scripting Resources Web Links Books CS Portal Script Repositoryhttp://tinyurl.com/cspscripts Frank-Peter Schultze Scriptshttp://tinyurl.com/fpschultze TSCMD FAQ: Scripting Trickshttp://tinyurl.com/tscmdfaq TechNet A-Z Command Referencehttp://tinyurl.com/mscmdref Backup Exec 11d Documentshttp://tinyurl.com/be11docs Backup Exec 12d Documentshttp://tinyurl.com/be12doczip Windows NT Shell ScriptingISBN: 1-57870-047-7 Zero Administration for WindowsISBN: 1-56592-508-4 Windows 2000 Active DirectoryISBN: 1-56592-638-2 Windows 2000 Scripting BibleISBN: 0-7645-4677-5 Windows Desktop Deployment Resource KitISBN: 0-7356-1898-4 Windows Command Pocket ConsultantISBN: 0-7356-2262-0 Technical Workshop 1 - Advanced Network Management
Toolkit Essentials VITAL TOOLS AND UTILITIES FOR ALL TECHIES Technical Workshop 1 - Advanced Network Management
Technical Workshop 1 - Advanced Network Management
Utility Disc – DigiWiz miniPE2-XT Technical Workshop 1 - Advanced Network Management
Utility Disc – Hiren’s Boot CD Technical Workshop 1 - Advanced Network Management DOS Utility Boot CD with additional Windows Tools
Recommended Tools Script Writing: Notepad2 Notepad++ System Information: AIDA32 EZAudit Password Reset: Password Renew NT Offline Password Reset Product Key Recovery: Magic Jelly Bean Keyfinder NirsoftProduKey File Compression: IzArc2Go 7-Zip Disk Cloning: Symantec Ghost Acronis True Image Disk Partitioning: Partition Magic Paragon Partition Manager Partition Recovery: TestDisk Ontrack Easy Recovery Pro Deep Data Recovery: NTFS Undelete GetDataBack-NTFS/GetDataBack-FAT User Friendly Data Recovery: Recuva Restoration Technical Workshop 1 - Advanced Network Management
Recommended Tools (cont.) Floppy/USB Key Cloning: WinImage AntiSpyware: SDFix Webroot Spy Sweeper CD Image Creation: LCISOCreator ISO Buster CD Burning: ImgBurn Express Burn Disk Defragmentation: Defraggler JkDefrag File Copier: FastCopy SyncToy System Optimisation: CCleaner WinASOEasyTweak Driver Backup and Restore: Smart Driver Backup  DriverBackup! PE Editor: Resource Hacker PE Resource Explorer Personal Antivirus: Avast! NOD32 Technical Workshop 1 - Advanced Network Management

More Related Content

What's hot (20)

Lecture 2
Lecture 2Lecture 2
Lecture 2
 
Basic Unix
Basic UnixBasic Unix
Basic Unix
 
Basic commands of linux
Basic commands of linuxBasic commands of linux
Basic commands of linux
 
Batch programming and Viruses
Batch programming and VirusesBatch programming and Viruses
Batch programming and Viruses
 
Linux operating system ppt
Linux operating system pptLinux operating system ppt
Linux operating system ppt
 
Shell and its types in LINUX
Shell and its types in LINUXShell and its types in LINUX
Shell and its types in LINUX
 
Linux distributions
Linux    distributionsLinux    distributions
Linux distributions
 
BFS and DFS
BFS and DFSBFS and DFS
BFS and DFS
 
Linux
LinuxLinux
Linux
 
Unix ppt
Unix pptUnix ppt
Unix ppt
 
Understanding The Boot Process
Understanding The Boot ProcessUnderstanding The Boot Process
Understanding The Boot Process
 
Apache web server
Apache web serverApache web server
Apache web server
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Open source software and os
Open source software and osOpen source software and os
Open source software and os
 
Tools kali
Tools kaliTools kali
Tools kali
 
Linux Environment- Linux Basics
Linux Environment- Linux BasicsLinux Environment- Linux Basics
Linux Environment- Linux Basics
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 
Operating system components
Operating system componentsOperating system components
Operating system components
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt
 
Linux commands
Linux commandsLinux commands
Linux commands
 

Viewers also liked

Viewers also liked (15)

Batch file programming
Batch file programmingBatch file programming
Batch file programming
 
Batch File Programming
Batch File ProgrammingBatch File Programming
Batch File Programming
 
Batch file-programming
Batch file-programmingBatch file-programming
Batch file-programming
 
Linux unix-commands
Linux unix-commandsLinux unix-commands
Linux unix-commands
 
System Administration
System AdministrationSystem Administration
System Administration
 
ppt on SNA
ppt on SNAppt on SNA
ppt on SNA
 
Process and Threads in Linux - PPT
Process and Threads in Linux - PPTProcess and Threads in Linux - PPT
Process and Threads in Linux - PPT
 
virus programming using batch file
virus programming using batch filevirus programming using batch file
virus programming using batch file
 
System Administration: Introduction to system administration
System Administration: Introduction to system administrationSystem Administration: Introduction to system administration
System Administration: Introduction to system administration
 
Vi editor
Vi editorVi editor
Vi editor
 
Linux process management
Linux process managementLinux process management
Linux process management
 
Vi editor in linux
Vi editor in linuxVi editor in linux
Vi editor in linux
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Shell Scripting in Linux
Shell Scripting in LinuxShell Scripting in Linux
Shell Scripting in Linux
 
The "vi" Text Editor
The "vi" Text EditorThe "vi" Text Editor
The "vi" Text Editor
 

Similar to Basics of Batch Scripting

Mastering Regex in Perl
Mastering Regex in PerlMastering Regex in Perl
Mastering Regex in PerlEdureka!
 
REX about installing Kubernetes on Premise
REX about installing Kubernetes on PremiseREX about installing Kubernetes on Premise
REX about installing Kubernetes on PremiseAnaël CHARDAN
 
Big Java Chapter 1
Big Java Chapter 1Big Java Chapter 1
Big Java Chapter 1Maria Joslin
 
Webinar: Learn Perl - The Jewel of Scripting Languages
Webinar: Learn Perl - The Jewel of Scripting LanguagesWebinar: Learn Perl - The Jewel of Scripting Languages
Webinar: Learn Perl - The Jewel of Scripting LanguagesEdureka!
 
Wsv406 Advanced Automation Using Windows Power Shell2.0
Wsv406 Advanced Automation Using Windows Power Shell2.0Wsv406 Advanced Automation Using Windows Power Shell2.0
Wsv406 Advanced Automation Using Windows Power Shell2.0jsnover1
 
Learn Powershell Scripting Tutorial Full Course 1dollarcart.com.pdf
Learn Powershell Scripting Tutorial Full Course 1dollarcart.com.pdfLearn Powershell Scripting Tutorial Full Course 1dollarcart.com.pdf
Learn Powershell Scripting Tutorial Full Course 1dollarcart.com.pdfClapperboardCinemaPV
 
The UNIX philosophy
The UNIX philosophyThe UNIX philosophy
The UNIX philosophyKevin Maiyo
 
"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017Neeran Karnik
 
PHP Performance: Principles and tools
PHP Performance: Principles and toolsPHP Performance: Principles and tools
PHP Performance: Principles and tools10n Software, LLC
 
Chapter_1_Computer_Abstractions_and_Tech.ppt
Chapter_1_Computer_Abstractions_and_Tech.pptChapter_1_Computer_Abstractions_and_Tech.ppt
Chapter_1_Computer_Abstractions_and_Tech.pptnivine7
 
Life & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentLife & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentPersistent Systems Ltd.
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructuredAmi Mahloof
 

Similar to Basics of Batch Scripting (20)

Mastering Regex in Perl
Mastering Regex in PerlMastering Regex in Perl
Mastering Regex in Perl
 
REX about installing Kubernetes on Premise
REX about installing Kubernetes on PremiseREX about installing Kubernetes on Premise
REX about installing Kubernetes on Premise
 
Big Java Chapter 1
Big Java Chapter 1Big Java Chapter 1
Big Java Chapter 1
 
Webinar: Learn Perl - The Jewel of Scripting Languages
Webinar: Learn Perl - The Jewel of Scripting LanguagesWebinar: Learn Perl - The Jewel of Scripting Languages
Webinar: Learn Perl - The Jewel of Scripting Languages
 
Savitch Ch 01
Savitch Ch 01Savitch Ch 01
Savitch Ch 01
 
Wsv406 Advanced Automation Using Windows Power Shell2.0
Wsv406 Advanced Automation Using Windows Power Shell2.0Wsv406 Advanced Automation Using Windows Power Shell2.0
Wsv406 Advanced Automation Using Windows Power Shell2.0
 
Intro To AOP
Intro To AOPIntro To AOP
Intro To AOP
 
Activity 5
Activity 5Activity 5
Activity 5
 
Ch1
Ch1Ch1
Ch1
 
Ch1
Ch1Ch1
Ch1
 
Learn Powershell Scripting Tutorial Full Course 1dollarcart.com.pdf
Learn Powershell Scripting Tutorial Full Course 1dollarcart.com.pdfLearn Powershell Scripting Tutorial Full Course 1dollarcart.com.pdf
Learn Powershell Scripting Tutorial Full Course 1dollarcart.com.pdf
 
Savitch ch 01
Savitch ch 01Savitch ch 01
Savitch ch 01
 
Savitch ch 01
Savitch ch 01Savitch ch 01
Savitch ch 01
 
The UNIX philosophy
The UNIX philosophyThe UNIX philosophy
The UNIX philosophy
 
"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017
 
PHP Performance: Principles and tools
PHP Performance: Principles and toolsPHP Performance: Principles and tools
PHP Performance: Principles and tools
 
Chapter_1_Computer_Abstractions_and_Tech.ppt
Chapter_1_Computer_Abstractions_and_Tech.pptChapter_1_Computer_Abstractions_and_Tech.ppt
Chapter_1_Computer_Abstractions_and_Tech.ppt
 
No-script PowerShell v2
No-script PowerShell v2No-script PowerShell v2
No-script PowerShell v2
 
Life & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentLife & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@Persistent
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 

Recently uploaded

New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

Basics of Batch Scripting

  • 1. Technical Workshop 1 ADVANCED SYSTEMS MANAGEMENT Presented By Arik Fletcher Thursday 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. KNOWLEDGE TEAMWORK TIME TRAINING RESOURCES EXPERIENCE PRACTICE EFFORT ABILITY Technical Workshop 1 - Advanced Network Management
  • 3. Agenda Technical Workshop 1 - Advanced Network Management Administration Essentials09:45 – 10:30 Discussion:IT Support Expectations Exercise:Task Management and Automation Tutorial: The Realities of Automation BREAK 10:30 –10:40 Scripting Essentials10:40 – 12:10 Overview: Introduction to Scripting Tutorial: Syntax and Reference Documents Tutorial: Structure and Sample Code Exercise: Script Writing and Troubleshooting BREAK 12:10 –12:20 Toolkit Essentials12:0 – 13:00 Overview: Utility DVD contents Discussion: Recommended Tools
  • 4. Administration Essentials TASK MANAGEMENT FOR SYSTEMS ENGINEERS Technical Workshop 1 - Advanced Network Management
  • 5. IT Support:Expectations Interviews 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 Tasks Daily Checks: Server Services Server Event Logs Server Hardware Status Firewall Logs and Status Backup Status Antivirus Updates Weekly Checks: Server Disk Space Mail Store & Database Space Technical Workshop 1 - Advanced Network Management Monthly Checks: Restore Status Server Security Updates Network Application Patches Server Disk Fragmentation Workstation Hardware Status Printer Hardware Status Documentation Status Quarterly 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 Tasks Automated Checks: Server Services Server Event Logs Server Hardware Status Firewall Logs and Status Backup Status Antivirus Updates Server Disk Space Mail Store & Database Space Server Security Updates Network Application Patches Server Disk Fragmentation Workstation Hardware Status Printer Hardware Status Technical Workshop 1 - Advanced Network Management Manual Checks: Restore Status Documentation Status Workstation Builds
  • 10. Follow The A.R.P.C.E.D. Law Technical Workshop 1 - Advanced Network Management
  • 11. The Truth Is Out There... Search before indulging in a potentially long and complex coding project Someone else has been there before and has probably written a script If 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 Management TAKE 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 Essentials A LOOK AT WINDOWS SHELL SCRIPTING Technical Workshop 1 - Advanced Network Management
  • 15. Scripting Essentials Overview What 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 Guidelines Technical 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, etc Technical Workshop 1 - Advanced Network Management
  • 21. Shell Command Symbols Technical Workshop 1 - Advanced Network Management
  • 22. Shell Prompt Modification Technical Workshop 1 - Advanced Network Management
  • 23. Arguments & Variables ARGUMENTS Represented by single % symbol Values set by end user Numbered from 1 (0 is script) Generally used as switchese.g. ArguVars.cmd/test VARIABLES Identified by enclosed % symbols Values set by OS or script writer Named by OS or script writer Can be used as argumentse.g. ArguVars.cmd%os% Technical Workshop 1 - Advanced Network Management
  • 24. Environmental Variables Technical Workshop 1 - Advanced Network Management
  • 25. Environmental Variables (cont.) Technical Workshop 1 - Advanced Network Management
  • 26. Internal & External Commands INTERNAL COMMANDS Part of CMD shell No file extensions Cannot run without shell Help command can be usede.g. HELP DIR EXTERNAL COMMANDS Separate from CMD shell Usually .exe or .com extensions Can be run outside of shell External help is usually needede.g. MSTSC/? Technical Workshop 1 - Advanced Network Management
  • 27. Internal Commands Technical Workshop 1 - Advanced Network Management
  • 28. Internal Commands (cont.) Technical Workshop 1 - Advanced Network Management
  • 29. External Commands Technical Workshop 1 - Advanced Network Management
  • 30. External Commands (cont.) Technical Workshop 1 - Advanced Network Management
  • 31. Recommended Code Layout @ECHO off - only show output CLS - clear screen :START - label start of code TITLE - window/script title REM - author/copyright :RUN - label body of code REM - command notes ECHO- a command to run :FINISH - label end of code REM - closing comments GOTO :EOF - exit the script Technical Workshop 1 - Advanced Network Management
  • 32. Importance of Comments and Layout Technical Workshop 1 - Advanced Network Management
  • 33. FOR Used to iterate (repeat) tasks USAGE: Uses lettered arguments with double % symbol in scripts and single % symbol from shell Requires in and do functions COMMON SWITCHES: Follow numeric series: FOR /l Perform file functions: FOR /f Technical Workshop 1 - Advanced Network Management
  • 34. IF Allows for conditional tasks USAGE Follow with not for negatives Uses else in place of multiples Case sensitive unless /i is used Uses double = symbol in scripts and single = symbol in shell COMMON USES: File Check: IFexist %path% Variable Check: IFdefined os Compare: IF“%1”==“%path%” Technical Workshop 1 - Advanced Network Management
  • 35. SET Creates temporary variables Values from script writer or user Performs arithmetic functions COMMON USES: Set Variable: SETvar=value Calculate: SET/a var=equation Prompt:SET/p var=question Technical Workshop 1 - Advanced Network Management
  • 36. Green Code is Good Code RE-USABLE CODE: Mini-script within main script Reduces development time Guarantees fewer mistakes Improves code legibility USAGE GUIDELINES: Use labels to identify routines Use arguments and variables Should be after ‘end’ of script Must be called not directed to Technical 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 text Clear the screen Change window color View a text file Save output to a file Create a variable Compare a variable Repeat a file task Calculate an equation ECHOvalue CLS COLOR value TYPEpathile.ext IPCONFIG> file.ext SETvar=value IF “%var%”==“value” FOR/f%%ain (‘cmd’) do SET/avar=equation Technical Workshop 1 - Advanced Network Management
  • 39. Un-script This! Disables command echo Change window title Run the SUBTASK routine Exit the script Show a file in single pages Check for variable Check if command worked Prompt user for value Perform a task five times @ECHO off TITLE value CALL :SUBTASK GOTO:EOF TYPEfile.ext |MORE IFDEFINEDvar IF “%errorlevel%”==“0” SET/p var=value FOR/l%%ain (1,1,5) do Technical Workshop 1 - Advanced Network Management
  • 40. Scripting Resources Web Links Books CS Portal Script Repositoryhttp://tinyurl.com/cspscripts Frank-Peter Schultze Scriptshttp://tinyurl.com/fpschultze TSCMD FAQ: Scripting Trickshttp://tinyurl.com/tscmdfaq TechNet A-Z Command Referencehttp://tinyurl.com/mscmdref Backup Exec 11d Documentshttp://tinyurl.com/be11docs Backup Exec 12d Documentshttp://tinyurl.com/be12doczip Windows NT Shell ScriptingISBN: 1-57870-047-7 Zero Administration for WindowsISBN: 1-56592-508-4 Windows 2000 Active DirectoryISBN: 1-56592-638-2 Windows 2000 Scripting BibleISBN: 0-7645-4677-5 Windows Desktop Deployment Resource KitISBN: 0-7356-1898-4 Windows Command Pocket ConsultantISBN: 0-7356-2262-0 Technical Workshop 1 - Advanced Network Management
  • 41. Toolkit Essentials VITAL TOOLS AND UTILITIES FOR ALL TECHIES Technical Workshop 1 - Advanced Network Management
  • 42. Technical Workshop 1 - Advanced Network Management
  • 43. Utility Disc – DigiWiz miniPE2-XT Technical Workshop 1 - Advanced Network Management
  • 44. Utility Disc – Hiren’s Boot CD Technical Workshop 1 - Advanced Network Management DOS Utility Boot CD with additional Windows Tools
  • 45. Recommended Tools Script Writing: Notepad2 Notepad++ System Information: AIDA32 EZAudit Password Reset: Password Renew NT Offline Password Reset Product Key Recovery: Magic Jelly Bean Keyfinder NirsoftProduKey File Compression: IzArc2Go 7-Zip Disk Cloning: Symantec Ghost Acronis True Image Disk Partitioning: Partition Magic Paragon Partition Manager Partition Recovery: TestDisk Ontrack Easy Recovery Pro Deep Data Recovery: NTFS Undelete GetDataBack-NTFS/GetDataBack-FAT User Friendly Data Recovery: Recuva Restoration Technical Workshop 1 - Advanced Network Management
  • 46. Recommended Tools (cont.) Floppy/USB Key Cloning: WinImage AntiSpyware: SDFix Webroot Spy Sweeper CD Image Creation: LCISOCreator ISO Buster CD Burning: ImgBurn Express Burn Disk Defragmentation: Defraggler JkDefrag File Copier: FastCopy SyncToy System Optimisation: CCleaner WinASOEasyTweak Driver Backup and Restore: Smart Driver Backup DriverBackup! PE Editor: Resource Hacker PE Resource Explorer Personal Antivirus: Avast! NOD32 Technical Workshop 1 - Advanced Network Management

Editor's Notes

  1. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  2. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  3. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  4. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  5. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  6. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  7. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  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. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  38. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  39. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________