PowerShell Cookbook: Your Complete Guide to Scripting the Ubiquitous Object-Based Shell, 4th Edition
- Length: 1100 pages
- Edition: 4
- Language: English
- Publisher: O'Reilly Media
- Publication Date: 2021-08-17
- ISBN-10: 109810160X
- ISBN-13: 9781098101602
- Sales Rank: #1951247 (See Top 100 Books)
How do you use PowerShell to navigate the filesystem, manage files and folders, or retrieve a web page? This introduction to the PowerShell language and scripting environment provides more than 400 task-oriented recipes to help you solve all kinds of problems. Intermediate to advanced system administrators will find more than 100 tried-and-tested scripts they can copy and use immediately.
Updated for PowerShell 5, Open Source PowerShell up to 7 and beyond, this comprehensive cookbook includes hands-on recipes for common tasks and administrative jobs that you can apply whether you’re on the client or server version of Windows. You also get quick references to technologies used in conjunction with PowerShell, including format specifiers and frequently referenced registry keys to selected .NET, COM, and WMI classes.
- Learn how to use PowerShell on Windows 10 and Windows Server 2019
- Tour PowerShell’s core features, including the command model, object-based pipeline, and ubiquitous scripting
- Master fundamentals such as the interactive shell, pipeline, and object concepts
- Perform common tasks that involve working with files, Internet-connected scripts, user interaction, and more
- Solve tasks in systems and enterprise management, such as working with Active Directory and the filesystem
Table of contents
1. The PowerShell Interactive Shell
2. Pipelines
3. Variables and Objects
4. Looping and Flow Control
5. Strings and Unstructured Text
6. Calculations and Math
7. Lists, Arrays, and Hashtables
8. Utility Tasks
9. Simple Files
10. Structured Files
11. Code Reuse
12. Internet-Enabled Scripts
13. User Interaction
14. Debugging
15. Tracing and Error Management
16. Environmental Awareness
17. Extend the Reach of PowerShell
18. Security and Script Signing
19. Visual Studio Code
20. Files and Directories
21. The Windows Registry
22. Comparing Data
23. Event Logs
24. Processes
25. System Services
26. Active Directory
27. Enterprise Computer Management
28. CIM and Windows Management Instrumentation
29. Remoting
30. Transactions
31. Event Handling
Foreword Preface Who This Book Is For How This Book Is Organized What You Need to Use This Book Conventions Used in This Book Access This Book in Digital Format O’Reilly Online Learning How to Contact Us Acknowledgments I. Tour A Guided Tour of PowerShell Introduction An Interactive Shell Structured Commands (Cmdlets) Deep Integration of Objects Administrators as First-Class Users Composable Commands Techniques to Protect You from Yourself Common Discovery Commands Ubiquitous Scripting Ad Hoc Development Bridging Technologies Namespace Navigation Through Providers Much, Much More II. Fundamentals 1. The PowerShell Interactive Shell 1.0. Introduction 1.1. Install PowerShell Core 1.2. Run Programs, Scripts, and Existing Tools 1.3. Run a PowerShell Command 1.4. Resolve Errors Calling Native Executables 1.5. Supply Default Values for Parameters 1.6. Invoke a Long-Running or Background Command 1.7. Program: Monitor a Command for Changes 1.8. Notify Yourself of Job Completion 1.9. Customize Your Shell, Profile, and Prompt 1.10. Customize PowerShell’s User Input Behavior 1.11. Customize PowerShell’s Command Resolution Behavior 1.12. Find a Command to Accomplish a Task 1.13. Get Help on a Command 1.14. Update System Help Content 1.15. Program: Search Help for Text 1.16. Launch PowerShell at a Specific Location 1.17. Invoke a PowerShell Command or Script from Outside PowerShell 1.18. Understand and Customize PowerShell’s Tab Completion 1.19. Program: Learn Aliases for Common Commands 1.20. Program: Learn Aliases for Common Parameters 1.21. Access and Manage Your Console History 1.22. Program: Create Scripts from Your Session History 1.23. Invoke a Command from Your Session History 1.24. Program: Search Formatted Output for a Pattern 1.25. Interactively View and Process Command Output 1.26. Program: Interactively View and Explore Objects 1.27. Record a Transcript of Your Shell Session 1.28. Extend Your Shell with Additional Commands 1.29. Find and Install Additional PowerShell Scripts and Modules 1.30. Use Commands from Customized Shells 1.31. Save State Between Sessions 2. Pipelines 2.0. Introduction 2.1. Chain Commands Based on Their Success or Error 2.2. Filter Items in a List or Command Output 2.3. Group and Pivot Data by Name 2.4. Interactively Filter Lists of Objects 2.5. Work with Each Item in a List or Command Output 2.6. Automate Data-Intensive Tasks 2.7. Intercept Stages of the Pipeline 2.8. Automatically Capture Pipeline Output 2.9. Capture and Redirect Binary Process Output 3. Variables and Objects 3.0. Introduction 3.1. Display the Properties of an Item as a List 3.2. Display the Properties of an Item as a Table 3.3. Store Information in Variables 3.4. Access Environment Variables 3.5. Program: Retain Changes to Environment Variables Set by a Batch File 3.6. Control Access and Scope of Variables and Other Items 3.7. Program: Create a Dynamic Variable 3.8. Work with .NET Objects 3.9. Create an Instance of a .NET Object 3.10. Create Instances of Generic Objects 3.11. Use a COM Object 3.12. Learn About Types and Objects 3.13. Get Detailed Documentation About Types and Objects 3.14. Add Custom Methods and Properties to Objects 3.15. Create and Initialize Custom Objects 3.16. Add Custom Methods and Properties to Types 3.17. Define Custom Formatting for a Type 4. Looping and Flow Control 4.0. Introduction 4.1. Make Decisions with Comparison and Logical Operators 4.2. Adjust Script Flow Using Conditional Statements 4.3. Manage Large Conditional Statements with Switches 4.4. Repeat Operations with Loops 4.5. Process Time-Consuming Action in Parallel 4.6. Add a Pause or Delay 5. Strings and Unstructured Text 5.0. Introduction 5.1. Create a String 5.2. Create a Multiline or Formatted String 5.3. Place Special Characters in a String 5.4. Insert Dynamic Information in a String 5.5. Prevent a String from Including Dynamic Information 5.6. Place Formatted Information in a String 5.7. Search a String for Text or a Pattern 5.8. Replace Text in a String 5.9. Split a String on Text or a Pattern 5.10. Combine Strings into a Larger String 5.11. Convert a String to Uppercase or Lowercase 5.12. Trim a String 5.13. Format a Date for Output 5.14. Convert a String Between One Format and Another 5.15. Convert Text Streams to Objects 5.16. Generate Large Reports and Text Streams 5.17. Generate Source Code and Other Repetitive Text 6. Calculations and Math 6.0. Introduction 6.1. Perform Simple Arithmetic 6.2. Perform Complex Arithmetic 6.3. Measure Statistical Properties of a List 6.4. Work with Numbers as Binary 6.5. Simplify Math with Administrative Constants 6.6. Convert Numbers Between Bases 7. Lists, Arrays, and Hashtables 7.0. Introduction 7.1. Create an Array or List of Items 7.2. Create a Jagged or Multidimensional Array 7.3. Access Elements of an Array 7.4. Visit Each Element of an Array 7.5. Sort an Array or List of Items 7.6. Determine Whether an Array Contains an Item 7.7. Combine Two Arrays 7.8. Find Items in an Array That Match a Value 7.9. Compare Two Lists 7.10. Remove Elements from an Array 7.11. Find Items in an Array Greater or Less Than a Value 7.12. Use the ArrayList Class for Advanced Array Tasks 7.13. Create a Hashtable or Associative Array 7.14. Sort a Hashtable by Key or Value 8. Utility Tasks 8.0. Introduction 8.1. Get the System Date and Time 8.2. Measure the Duration of a Command 8.3. Read and Write from the Clipboard 8.4. Generate a Random Number or Object 8.5. Convert Time Between Time Zones 8.6. Program: Search the Windows Start Menu 8.7. Program: Show Colorized Script Content III. Common Tasks 9. Simple Files 9.0. Introduction 9.1. Get the Content of a File 9.2. Store the Output of a Command into a File 9.3. Add Information to the End of a File 9.4. Search a File for Text or a Pattern 9.5. Parse and Manage Text-Based Logfiles 9.6. Parse and Manage Binary Files 9.7. Create and Manage Temporary Files 9.8. Search and Replace Text in a File 9.9. Program: Get the Encoding of a File 9.10. View the Hexadecimal Representation of Content 10. Structured Files 10.0. Introduction 10.1. Access Information in an XML File 10.2. Perform an XPath Query Against XML 10.3. Convert Objects to XML 10.4. Modify Data in an XML File 10.5. Easily Import and Export Your Structured Data 10.6. Store the Output of a Command in a CSV or Delimited File 10.7. Import CSV and Delimited Data from a File 10.8. Manage JSON Data Streams 10.9. Use Excel to Manage Command Output 10.10. Parse and Interpret PowerShell Scripts 11. Code Reuse 11.0. Introduction 11.1. Write a Script 11.2. Write a Function 11.3. Find a Verb Appropriate for a Command Name 11.4. Write a Script Block 11.5. Return Data from a Script, Function, or Script Block 11.6. Package Common Commands in a Module 11.7. Write Commands That Maintain State 11.8. Selectively Export Commands from a Module 11.9. Diagnose and Interact with Internal Module State 11.10. Handle Cleanup Tasks When a Module Is Removed 11.11. Access Arguments of a Script, Function, or Script Block 11.12. Add Validation to Parameters 11.13. Accept Script Block Parameters with Local Variables 11.14. Dynamically Compose Command Parameters 11.15. Provide -WhatIf, -Confirm, and Other Cmdlet Features 11.16. Add Help to Scripts or Functions 11.17. Add Custom Tags to a Function or Script Block 11.18. Access a Script’s Pipeline Input 11.19. Write Pipeline-Oriented Scripts with Cmdlet Keywords 11.20. Write a Pipeline-Oriented Function 11.21. Organize Scripts for Improved Readability 11.22. Invoke Dynamically Named Commands 11.23. Program: Enhance or Extend an Existing Cmdlet 12. Internet-Enabled Scripts 12.0. Introduction 12.1. Download a File from an FTP or Internet Site 12.2. Upload a File to an FTP Site 12.3. Program: Resolve the Destination of an Internet Redirect 12.4. Download a Web Page from the Internet 12.5. Parse and Analyze a Web Page from the Internet 12.6. Script a Web Application Session 12.7. Interact with REST-Based Web APIs 12.8. Connect to a Web Service 12.9. Interact with and Manage Remote SSL Certificates 12.10. Export Command Output as a Web Page 12.11. Send an Email 12.12. Program: Monitor Website Uptimes 12.13. Program: Interact with Internet Protocols 13. User Interaction 13.0. Introduction 13.1. Read a Line of User Input 13.2. Read a Key of User Input 13.3. Program: Display a Menu to the User 13.4. Display Messages and Output to the User 13.5. Provide Progress Updates on Long-Running Tasks 13.6. Write Culture-Aware Scripts 13.7. Support Other Languages in Script Output 13.8. Program: Invoke a Script Block with Alternate Culture Settings 13.9. Access Features of the Host’s UI 13.10. Add a Graphical User Interface to Your Script 13.11. Program: Add a Console UI to Your Script 13.12. Interact with MTA Objects 14. Debugging 14.0. Introduction 14.1. Prevent Common Scripting Errors 14.2. Write Unit Tests for your Scripts 14.3. Trace Script Execution 14.4. Set a Script Breakpoint 14.5. Debug a Script When It Encounters an Error 14.6. Create a Conditional Breakpoint 14.7. Investigate System State While Debugging 14.8. Debug a Script on a Remote Machine 14.9. Program: Watch an Expression for Changes 14.10. Debug a Script in Another Process 14.11. Program: Get Script Code Coverage 15. Tracing and Error Management 15.0. Introduction 15.1. Determine the Status of the Last Command 15.2. View the Errors Generated by a Command 15.3. Manage the Error Output of Commands 15.4. Program: Resolve an Error 15.5. Configure Debug, Verbose, and Progress Output 15.6. Handle Warnings, Errors, and Terminating Errors 15.7. Output Warnings, Errors, and Terminating Errors 15.8. Analyze a Script’s Performance Profile 16. Environmental Awareness 16.0. Introduction 16.1. View and Modify Environment Variables 16.2. Modify the User or System Path 16.3. Access Information About Your Command’s Invocation 16.4. Program: Investigate the InvocationInfo Variable 16.5. Find Your Script’s Name 16.6. Find Your Script’s Location 16.7. Find the Location of Common System Paths 16.8. Get the Current Location 16.9. Safely Build File Paths Out of Their Components 16.10. Interact with PowerShell’s Global Environment 16.11. Determine PowerShell Version Information 16.12. Test for Administrative Privileges 17. Extend the Reach of PowerShell 17.0. Introduction 17.1. Automate Programs Using COM Scripting Interfaces 17.2. Program: Query a SQL Data Source 17.3. Access Windows Performance Counters 17.4. Access Windows API Functions 17.5. Program: Invoke Simple Windows API Calls 17.6. Define or Extend a .NET Class 17.7. Add Inline C# to Your PowerShell Script 17.8. Access a .NET SDK Library 17.9. Create Your Own PowerShell Cmdlet 17.10. Add PowerShell Scripting to Your Own Program 18. Security and Script Signing 18.0. Introduction 18.1. Enable Scripting Through an Execution Policy 18.2. Enable PowerShell Security Logging 18.3. Disable Warnings for UNC Paths 18.4. Sign a PowerShell Script, Module, or Formatting File 18.5. Create a Self-Signed Certificate 18.6. Manage PowerShell Security in an Enterprise 18.7. Block Scripts by Publisher, Path, or Hash 18.8. Verify the Digital Signature of a PowerShell Script 18.9. Securely Handle Sensitive Information 18.10. Securely Request Usernames and Passwords 18.11. Start a Process as Another User 18.12. Program: Run a Temporarily Elevated Command 18.13. Securely Store Credentials on Disk 18.14. Access User and Machine Certificates 18.15. Program: Search the Certificate Store 18.16. Add and Remove Certificates 18.17. Manage Security Descriptors in SDDL Form 18.18. Create a Task-Specific Remoting Endpoint 18.19. Limit Interactive Use of PowerShell 18.20. Detect and Prevent Code Injection Vulnerabilities 18.21. Get the Cryptographic Hash of a File 18.22. Capture and Validate Integrity of File Sets 19. Visual Studio Code 19.0. Introduction 19.1. Debug a Script 19.2. Connect to a Remote Computer 19.3. Interact with Visual Studio Code Through Its Object Model 19.4. Quickly Insert Script Snippets IV. Administrator Tasks 20. Files and Directories 20.0. Introduction 20.1. Determine and Change the Current Location 20.2. Get the Files in a Directory 20.3. Find All Files Modified Before a Certain Date 20.4. Clear the Content of a File 20.5. Manage and Change the Attributes of a File 20.6. Find Files That Match a Pattern 20.7. Manage Files That Include Special Characters 20.8. Program: Get Disk Usage Information 20.9. Monitor a File for Changes 20.10. Get the Version of a DLL or Executable 20.11. Create a Directory 20.12. Remove a File or Directory 20.13. Rename a File or Directory 20.14. Move a File or Directory 20.15. Create and Map PowerShell Drives 20.16. Access Long File and Directory Names 20.17. Unblock a File 20.18. Interact with Alternate Data Streams 20.19. Program: Move or Remove a Locked File 20.20. Get the ACL of a File or Directory 20.21. Set the ACL of a File or Directory 20.22. Program: Add Extended File Properties to Files 20.23. Manage ZIP Archives 21. The Windows Registry 21.0. Introduction 21.1. Navigate the Registry 21.2. View a Registry Key 21.3. Modify or Remove a Registry Key Value 21.4. Create a Registry Key Value 21.5. Remove a Registry Key 21.6. Safely Combine Related Registry Modifications 21.7. Add a Site to an Internet Explorer Security Zone 21.8. Modify Internet Explorer Settings 21.9. Program: Search the Windows Registry 21.10. Get the ACL of a Registry Key 21.11. Set the ACL of a Registry Key 21.12. Work with the Registry of a Remote Computer 21.13. Program: Get Registry Items from Remote Machines 21.14. Program: Get Properties of Remote Registry Keys 21.15. Program: Set Properties of Remote Registry Keys 21.16. Discover Registry Settings for Programs 22. Comparing Data 22.0. Introduction 22.1. Compare the Output of Two Commands 22.2. Determine the Differences Between Two Files 23. Event Logs 23.0. Introduction 23.1. List All Event Logs 23.2. Get the Oldest Entries from an Event Log 23.3. Find Event Log Entries with Specific Text 23.4. Retrieve and Filter Event Log Entries 23.5. Find Event Log Entries by Their Frequency 23.6. Back Up an Event Log 23.7. Create or Remove an Event Log 23.8. Write to an Event Log 23.9. Run a PowerShell Script for Windows Event Log Entries 23.10. Clear or Maintain an Event Log 23.11. Access Event Logs of a Remote Machine 24. Processes 24.0. Introduction 24.1. List Currently Running Processes 24.2. Launch the Application Associated with a Document 24.3. Launch a Process 24.4. Stop a Process 24.5. Get the Owner of a Process 24.6. Get the Parent Process of a Process 24.7. Debug a Process 25. System Services 25.0. Introduction 25.1. List All Running Services 25.2. Manage a Running Service 25.3. Configure a Service 26. Active Directory 26.0. Introduction 26.1. Test Active Directory Scripts on a Local Installation 26.2. Create an Organizational Unit 26.3. Get the Properties of an Organizational Unit 26.4. Modify Properties of an Organizational Unit 26.5. Delete an Organizational Unit 26.6. Get the Children of an Active Directory Container 26.7. Create a User Account 26.8. Program: Import Users in Bulk to Active Directory 26.9. Search for a User Account 26.10. Get and List the Properties of a User Account 26.11. Modify Properties of a User Account 26.12. Change a User Password 26.13. Create a Security or Distribution Group 26.14. Search for a Security or Distribution Group 26.15. Get the Properties of a Group 26.16. Find the Owner of a Group 26.17. Modify Properties of a Security or Distribution Group 26.18. Add a User to a Security or Distribution Group 26.19. Remove a User from a Security or Distribution Group 26.20. List a User’s Group Membership 26.21. List the Members of a Group 26.22. List the Users in an Organizational Unit 26.23. Search for a Computer Account 26.24. Get and List the Properties of a Computer Account 27. Enterprise Computer Management 27.0. Introduction 27.1. Join a Computer to a Domain or Workgroup 27.2. Remove a Computer from a Domain 27.3. Rename a Computer 27.4. Program: List Logon or Logoff Scripts for a User 27.5. Program: List Startup or Shutdown Scripts for a Machine 27.6. Deploy PowerShell-Based Logon Scripts 27.7. Enable or Disable the Windows Firewall 27.8. Open or Close Ports in the Windows Firewall 27.9. Program: List All Installed Software 27.10. Uninstall an Application 27.11. Manage Computer Restore Points 27.12. Reboot or Shut Down a Computer 27.13. Determine Whether a Hotfix Is Installed 27.14. Manage Scheduled Tasks on a Computer 27.15. Retrieve Printer Information 27.16. Retrieve Printer Queue Statistics 27.17. Manage Printers and Print Queues 27.18. Program: Summarize System Information 27.19. Renew a DHCP Lease 27.20. Assign a Static IP Address 27.21. List All IP Addresses for a Computer 27.22. List Network Adapter Properties 28. CIM and Windows Management Instrumentation 28.0. Introduction 28.1. Access Windows Management Instrumentation and CIM Data 28.2. Modify the Properties of a WMI or CIM Instance 28.3. Invoke a Method on a WMI Instance or Class 28.4. Program: Determine Properties Available to WMI and CIM Filters 28.5. Search for the WMI or CIM Class to Accomplish a Task 28.6. Use .NET to Perform Advanced WMI Tasks 28.7. Convert a VBScript WMI Script to PowerShell 29. Remoting 29.0. Introduction 29.1. Find Commands That Support Their Own Remoting 29.2. Enable PowerShell Remoting on a Computer 29.3. Enable SSH as a PowerShell Remoting Transport 29.4. Interactively Manage a Remote Computer 29.5. Invoke a Command on a Remote Computer 29.6. Disconnect and Reconnect PowerShell Sessions 29.7. Program: Remotely Enable PowerShell Remoting 29.8. Program: Invoke a PowerShell Expression on a Remote Machine 29.9. Test Connectivity Between Two Computers 29.10. Limit Networking Scripts to Hosts That Respond 29.11. Enable Remote Desktop on a Computer 29.12. Configure User Permissions for Remoting 29.13. Enable Remoting to Workgroup Computers 29.14. Implicitly Invoke Commands from a Remote Computer 29.15. Create Sessions with Full Network Access 29.16. Pass Variables to Remote Sessions 29.17. Manage and Edit Files on Remote Machines 29.18. Configure Advanced Remoting Quotas and Options 29.19. Invoke a Command on Many Computers 29.20. Run a Local Script on a Remote Computer 29.21. Determine Whether a Script Is Running on a Remote Computer 30. Transactions 30.0. Introduction 30.1. Safely Experiment with Transactions 30.2. Change Error Recovery Behavior in Transactions 31. Event Handling 31.0. Introduction 31.1. Respond to Automatically Generated Events 31.2. Create and Respond to Custom Events 31.3. Create a Temporary Event Subscription 31.4. Forward Events from a Remote Computer 31.5. Investigate Internal Event Action State 31.6. Use a Script Block as a .NET Delegate or Event Handler V. References A. PowerShell Language and Environment Commands and Expressions Comments Help Comments Variables Booleans Strings Numbers Arrays and Lists Hashtables (Associative Arrays) XML Simple Operators Comparison Operators Conditional Statements Looping Statements Working with the .NET Framework Writing Scripts, Reusing Functionality Managing Errors Formatting Output Capturing Output Common Customization Points B. Regular Expression Reference C. XPath Quick Reference D. .NET String Formatting String Formatting Syntax Standard Numeric Format Strings Custom Numeric Format Strings E. .NET DateTime Formatting Custom DateTime Format Strings F. Selected .NET Classes and Their Uses G. WMI Reference H. Selected COM Objects and Their Uses I. Selected Events and Their Uses J. Standard PowerShell Verbs Index
Donate to keep this site alive
How to download source code?
1. Go to: https://www.oreilly.com/
2. Search the book title: PowerShell Cookbook: Your Complete Guide to Scripting the Ubiquitous Object-Based Shell, 4th Edition
, sometime you may not get the results, please search the main title
3. Click the book title in the search results
3. Publisher resources
section, click Download Example Code
.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.