Book Image

Enterprise PowerShell Scripting Bootcamp

By : Brenton J.W. Blawat
Book Image

Enterprise PowerShell Scripting Bootcamp

By: Brenton J.W. Blawat

Overview of this book

Enterprise PowerShell Scripting Bootcamp explains how to create your own repeatable PowerShell scripting framework. This framework contains script logging methodologies, answer file interactions, and string encryption and decryption strategies. This book focuses on evaluating individual components to identify the system’s function, role, and unique characteristics. To do this, you will leverage built-in CMDlets and Windows Management Instrumentation (WMI) to explore Windows services, Windows processes, Windows features, scheduled tasks, and disk statistics. You will also create custom functions to perform a deep search for specific strings in files and evaluate installed software through executable properties. We will then discuss different scripting techniques to improve the efficiency of scripts. By leveraging several small changes to your code, you can increase the execution performance by over 130%. By the end of this book, you will be able to tie all of the concepts together in a PowerShell-based Windows server scanning script. This discovery script will be able to scan a Windows server to identify a multitude of components.
Table of Contents (21 chapters)
Enterprise PowerShell Scripting Bootcamp
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
3
Working with Answer Files
Index

Creating a termination function


When PowerShell scripts execute on systems, they consume memory and CPU resources. This is especially true if you are scanning directories and leveraging the Get-Content cmdlet to evaluate files. PowerShell has to load the directory listing in memory, and place the entire contents of the file in memory for processing.

One of the common concerns with deploying a PowerShell script enterprise-wide is being able to terminate the script mid-scan if necessary. While you could use the stop-process cmdlet or the taskkill.exe to terminate the PowerShell processes, you may also inadvertently terminate all running PowerShell processes on a system. Without fully executing the script, you may be leaving sensitive scan data on the system.

An alternative to killing the PowerShell processes is to create a function to check to see if a kill file exists on the system. If that kill file exists on the system, the script will gracefully terminate. This will allow the script to stop...