Mastering PowerShell Scripting, 5th Edition: Automate repetitive tasks and simplify complex administrative tasks using PowerShell / Осваиваем работу со сценариями PowerShell, 5-е издание: Автоматизируйте повторяющиеся задачи и упростите сложные административные задачи с помощью PowerShell Год издания: 2024 Автор: Dent Chris / Дент Крис Издательство: Packt Publishing ISBN: 978-1-80512-027-8 Язык: Английский Формат: PDF/EPUB Качество: Издательский макет или текст (eBook) Интерактивное оглавление: Да Количество страниц: 827 Описание: Use PowerShell to save time and reduce the potential for human error by writing scripts that automate the execution of tasks Key Features: Explores PowerShell as a programming languageTake advantage of the features built into the PowerShell language in day-to-day automationAutomation of complex tasks, data manipulation, and environment security Book Description: Mastering PowerShell Scripting, Fifth Edition, can help you overcome any fears and become proficient in navigating PowerShell’s capabilities. This edition includes new chapters on debugging, troubleshooting, and creating GUIs. You will learn about the latest features of PowerShell 7.3, including working with parameters, objects, and .NET classes. The book covers basic and advanced topics, such as asynchronous processing, desired state configuration, managing large amounts of data, interacting with other services, and working with regular expressions and Windows Management Instrument (WMI). Discover how to efficiently use PowerShell’s automation features and error-handling techniques for more complex scripts and filters. Starting with foundational knowledge, this extensive guide progresses to advanced concepts like using complex scripts and filters, asynchronous processing, desired state configuration, debugging, and error-handling techniques. You will learn how to effectively handle large data sets and interact with external services using PowerShell 7.3. Additionally, you’ll discover how to fully utilize PowerShell’s automation capabilities, including parsing data, manipulating regular expressions, and working with WMI using various methods. What You Will Learn: Create scripts that can be run on different systemsPowerShell is highly extensible and can integrate with other programming languagesDiscover the powerful command-line interface that enables users to perform various operations with easeCreate reusable scripts and functions in PowerShellUtilize PowerShell for various purposes, including system administration, automation, and data processingIntegrate PowerShell with other technologies such as .NET, COM, and WMIWork with common data formats such as XML, JSON, and CSV in PowerShellCreate custom PowerShell modules and cmdlets to extend its functionality Who this book is for: This book is for system administrators who want to automate and speed up their processes using PowerShell and Windows PowerShell. You’ll need to know the basics of operating systems, but beginners with no prior experience with PowerShell will have no trouble following along. Используйте PowerShell для экономии времени и снижения вероятности человеческих ошибок, создавая сценарии, автоматизирующие выполнение задач Kлючевые функции: Исследует PowerShell как язык программирования. Воспользуйтесь преимуществами функций, встроенных в язык PowerShell, для повседневной автоматизации сложных задач, обработки данных и обеспечения безопасности среды Описание книги: Пятое издание "Освоение PowerShell Scripting" поможет вам преодолеть все страхи и освоить возможности PowerShell. В это издание включены новые главы, посвященные отладке, устранению неполадок и созданию графических интерфейсов. Вы узнаете о новейших функциях PowerShell 7.3, включая работу с параметрами, объектами и .NET-классами. В книге рассматриваются базовые и продвинутые темы, такие как асинхронная обработка, настройка желаемого состояния, управление большими объемами данных, взаимодействие с другими службами и работа с регулярными выражениями и инструментом управления Windows (WMI). Узнайте, как эффективно использовать функции автоматизации PowerShell и методы обработки ошибок для более сложных сценариев и фильтров. Начиная с базовых знаний, это обширное руководство переходит к таким продвинутым концепциям, как использование сложных сценариев и фильтров, асинхронная обработка, настройка желаемого состояния, отладка и методы обработки ошибок. Вы узнаете, как эффективно обрабатывать большие массивы данных и взаимодействовать с внешними службами с помощью PowerShell 7.3. Кроме того, вы узнаете, как в полной мере использовать возможности автоматизации PowerShell, включая анализ данных, манипулирование регулярными выражениями и работу с WMI различными методами. Что вы узнаете: Создавайте сценарии, которые могут выполняться в различных системах PowerShell обладает высокой степенью расширения и может интегрироваться с другими языками программирования. Откройте для себя мощный интерфейс командной строки, который позволяет пользователям выполнять различные операции с помощью easeCreate. Повторно используемые сценарии и функции в PowerShell. Используйте PowerShell для различных целей, включая системное администрирование, автоматизацию и обработку данных. Интегрируйте PowerShell с другими технологиями, такими как .NET, COM и WMI работают с распространенными форматами данных, такими как XML, JSON, и CSV в PowerShell позволяют создавать пользовательские модули и командлеты PowerShell для расширения его функциональности Для кого предназначена эта книга: Эта книга предназначена для системных администраторов, которые хотят автоматизировать и ускорить свои процессы с помощью PowerShell и Windows PowerShell. Вам необходимо знать основы операционных систем, но новичкам, не имеющим опыта работы с PowerShell, не составит труда разобраться в них.
Примеры страниц (скриншоты)
Оглавление
Preface xxiii Chapter 1: Introduction to PowerShell 1 Technical requirements .................................................................................................................... 2 What is PowerShell? ......................................................................................................................... 3 The command line ........................................................................................................................... 3 PowerShell editors ........................................................................................................................... 4 Getting help ..................................................................................................................................... 6 Updatable help • 6 The Get-Help command • 7 Syntax • 9 Examples • 9 Parameter • 10 Detailed and Full switches • 11 Save-Help • 12 Update-Help • 13 About_* help files • 14 Command naming and discovery .................................................................................................... 15 Verbs • 15 Nouns • 16 Finding commands • 16 Aliases • 17 About profile scripts ....................................................................................................................... 19 Parameters, values, and parameter sets .......................................................................................... 20 Parameters • 20 Optional parameters • 20 Optional positional parameters • 21 Mandatory parameters • 21 Mandatory positional parameters • 21 Switch parameters • 22 Parameter values • 23 Parameter sets • 24 Common parameters • 25 Confirm and WhatIf • 26 Confirm and ConfirmPreference • 26 WhatIf and WhatIfPreference • 29 Force parameter • 30 PassThru parameter • 31 Introduction to providers ............................................................................................................... 32 Drives and providers • 34 Introduction to splatting ................................................................................................................. 35 Splatting to avoid long lines • 36 Conditional use of parameters • 38 Splatting to avoid repetition • 38 Splatting and positional parameters • 39 Parser modes ................................................................................................................................. 40 Experimental features .................................................................................................................... 41 Summary ....................................................................................................................................... 42 Chapter 2: Modules 45 Introducing modules ...................................................................................................................... 46 The Get-Module command • 46 The Import-Module command • 47 The Remove-Module command • 48 PSModulePath in PowerShell • 48 Module content • 49 Using Windows PowerShell modules in PowerShell 7 • 50 Finding and installing modules ....................................................................................................... 52 What is the PowerShell Gallery? • 52 The Find-Module command • 53 The Install-Module command • 54 The Update-Module command • 54 The Save-Module command • 55 Microsoft.PowerShell.PSResourceGet ............................................................................................. 55 Repositories • 56 Version ranges • 56 PowerShell repositories .................................................................................................................. 57 Creating an SMB repository • 57 NuGet repositories • 58 About snap-ins ............................................................................................................................... 58 Summary ....................................................................................................................................... 59 Chapter 3: Variables, Arrays, and Hashtables 61 Naming and creating variables ........................................................................................................ 61 Provider variables • 63 Variables in strings ......................................................................................................................... 63 Variable types ................................................................................................................................ 64 Assignment with types on the right • 65 Assignment with types on the left • 66 Value and reference types • 66 Type conversion • 68 Variable commands ........................................................................................................................ 69 Get-Variable • 69 New-Variable • 70 Set-Variable • 72 Remove-Variable • 72 Clear-Variable • 73 Variable provider ........................................................................................................................... 73 Variable scope ................................................................................................................................ 74 Accessing variables • 75 Scope modifiers • 76 Numeric scopes • 77 Private variables • 79 About arrays ................................................................................................................................... 80 Array type • 80 Creation by assignment • 81 Creating an array • 82 Arrays with a type • 83 Adding elements to an array • 83 List and ArrayList • 84 Selecting elements from an array • 86 Changing element values in an array • 89 Removing elements • 89 Removing elements by index • 90 Filling variables from arrays • 90 Multi-dimensional and jagged arrays • 91 About hashtables ............................................................................................................................ 92 Creating a Hashtable • 93 Adding, changing, and removing keys • 93 Using a hashtable to filter • 94 Enumerating a Hashtable • 97 About Ordered ............................................................................................................................... 98 Summary ..................................................................................................................................... 100 Chapter 4: Working with Objects in PowerShell 101 Pipelines ...................................................................................................................................... 102 Standard output • 102 Non-standard output • 103 The Object pipeline • 103 Members ..................................................................................................................................... 104 The Get-Member command • 105 Accessing object properties • 106 Access modifiers • 107 Using methods • 110 Return types and argument types • 112 Creating and modifying objects • 113 Using PSCustomObject • 113 The New-Object command • 115 The Add-Member command • 115 Add-Member and custom objects • 116 Enumerating and filtering ............................................................................................................ 118 The ForEach-Object command • 118 Begin and End parameters • 119 The Parallel parameter • 120 The MemberName parameter • 122 The Where-Object command • 122 Selecting and sorting .................................................................................................................... 123 The Select-Object command • 124 Calculated properties • 126 The ExpandProperty parameter • 127 The Unique parameter • 128 Property sets • 129 The Sort-Object command • 130 The Unique parameter • 133 Grouping and measuring .............................................................................................................. 134 The Group-Object command • 134 The Measure-Object command • 137 Comparing ................................................................................................................................... 139 Importing, exporting, and converting ............................................................................................ 141 The Export-Csv command • 141 The Import-Csv command • 143 Export-Clixml and Import-Clixml • 145 The Tee-Object command • 146 Formatting .................................................................................................................................... 147 Formatting and exporting • 148 The Format-Table command • 148 The Format-List command • 149 Select-Object, Write-Host, and inline output • 150 Format-only properties • 152 Summary ..................................................................................................................................... 156 Chapter 5: Operators 157 Precedence, grouping, and sub-expressions .................................................................................. 158 Operator precedence • 158 Grouping • 158 Sub-expression operator • 159 Array sub-expression operator • 159 Unary, binary, and ternary operators ............................................................................................ 160 About the ternary operator • 161 Arithmetic operators ..................................................................................................................... 161 Addition operator • 162 Subtraction operator • 163 Multiplication operator • 164 Division operator • 164 Remainder operator • 165 Increment and decrement operators • 165 Comparison operators ................................................................................................................... 167 eq and ne • 167 like and notlike • 168 Greater than and less than • 169 Case sensitivity • 170 Comparison operators and arrays • 170 Comparisons to null • 172 contains and in • 173 Regular expression-based operators ............................................................................................. 173 match and notmatch • 174 replace • 175 split • 177 Logical operators ......................................................................................................................... 179 and • 179 or • 179 not • 179 xor (eXclusive OR) • 180 Bitwise operators ......................................................................................................................... 180 band (bitwise AND) • 182 bor (bitwise OR) • 182 bxor (bitwise eXclusive OR) • 182 bnot (bitwise NOT) • 183 shl and shr (shift left and right operators) • 183 Assignment operators ................................................................................................................... 186 Assign, add and assign, and subtract and assign • 186 Multiply and assign, divide and assign, and modulus and assign • 188 Statements can be assigned to a variable • 189 Assignment and other operators • 189 Type operators ............................................................................................................................. 190 as • 190 is and isnot • 191 Redirection operators .................................................................................................................... 191 About Write-Host • 192 Redirection to a file • 192 PowerShell and default file encoding • 194 Redirecting streams to standard output • 194 Only stdout • 194 Redirection to null • 195 Other operators ............................................................................................................................ 195 Comma • 196 Index • 196 Range • 197 Call • 197 Format • 198 join • 200 Null coalescing • 200 Null coalescing assignment • 201 Null conditional • 202 Pipeline chain • 203 Background • 205 Summary ..................................................................................................................................... 205 Chapter 6: Conditional Statements and Loops 207 if, else, and elseif .......................................................................................................................... 208 Assignment within if statements • 209 Implicit Boolean .......................................................................................................................... 209 switch statements ........................................................................................................................ 210 switch statements and arrays • 210 switch statements and files • 211 Wildcard and Regex parameters • 211 Script block cases • 212 switch statements and enums • 214 switch, break, and continue .......................................................................................................... 215 Loops ............................................................................................................................................ 217 foreach loop • 217 foreach keyword and foreach alias • 217 for loop • 218 do-until and do-while loops • 220 while loop • 221 Loops, break, and continue ........................................................................................................... 222 break and continue outside loops • 224 Loops and labels .......................................................................................................................... 224 Loops, queues, and stacks ............................................................................................................. 225 Summary ..................................................................................................................................... 229 Chapter 7: Working with .NET 231 Assemblies ................................................................................................................................... 232 About the GAC • 234 Types ........................................................................................................................................... 235 Type descriptions are objects in PowerShell • 236 Enumerations • 236 Classes • 236 Namespaces • 237 The using keyword ........................................................................................................................ 237 Using namespaces • 238 Using assemblies • 239 Type accelerators ......................................................................................................................... 240 About PSCustomObject and Ordered • 240 Members ..................................................................................................................................... 242 Constructors • 243 Properties • 244 Methods • 246 Fluent interfaces • 247 Static methods • 248 About the new() method • 250 Static properties • 250 Reflection in PowerShell ................................................................................................................ 251 The TypeAccelerators type • 252 The ArgumentTypeConverterAttribute type • 253 About generics ............................................................................................................................. 256 Generic classes • 256 Generic methods • 257 Summary ..................................................................................................................................... 259 Online Chapter ............................................................................................................................. 260 Chapter 8: Strings, Numbers, and Dates (Online Chapter) Chapter 9: Regular Expressions (Online Chapter) Chapter 10: Files, Folders, and the Registry 261 Working with providers ................................................................................................................ 262 Navigating • 263 Getting items • 264 Drives • 265 Items ........................................................................................................................................... 265 Paths and .NET • 266 Testing for existing items • 267 Testing filesystem paths • 268 Testing registry paths • 268 Testing path type • 269 Creating items • 270 Reading and writing content • 271 Reading and writing in a pipeline • 271 Reading all content • 272 Writing content • 272 About text file encoding • 273 Temporary files • 274 Removing items • 275 Invoking items • 275 Item properties • 275 Properties and the filesystem • 275 Adding and removing file attributes • 276 Registry values • 277 Registry values and environment variables • 279 Searching for items • 280 Windows permissions .................................................................................................................. 282 Access and audit • 283 Rule protection • 283 Inheritance and propagation flags • 285 Removing ACEs • 286 Copying lists and entries • 287 Adding ACEs • 288 Filesystem rights • 288 Registry rights • 290 Numeric values in the ACL • 290 Ownership • 292 Transactions ................................................................................................................................ 293 File catalog commands ................................................................................................................. 294 About hashing • 294 New-FileCatalog • 294 Test-FileCatalog • 295 Summary ..................................................................................................................................... 298 Chapter 11: Windows Management Instrumentation 299 Working with WMI ....................................................................................................................... 299 WMI classes • 299 WMI commands • 300 CIM commands • 301 Getting instances • 301 Getting classes • 302 Calling methods • 303 Creating instances • 306 Removing instances • 307 Working with CIM sessions • 308 Associated classes • 309 The WMI Query Language ............................................................................................................ 310 Understanding SELECT, WHERE, and FROM • 310 Escape sequences and wildcards • 311 Comparison operators • 312 WQL filters and dates • 312 Logic operators • 313 Quoting values • 313 Associated classes • 314 WMI object paths • 315 Using ASSOCIATORS OF • 316 WMI type accelerators ................................................................................................................... 317 Getting instances • 317 Working with dates • 318 Getting classes • 319 Calling methods • 319 Creating instances • 321 Associated classes • 321 Permissions .................................................................................................................................. 321 Sharing permissions • 322 Creating a shared directory • 322 Getting a security descriptor • 323 Adding an access control entry • 325 Setting the security descriptor • 326 WMI permissions • 327 Getting a security descriptor • 327 The access mask • 327 WMI and SDDL • 328 Summary ..................................................................................................................................... 330 Chapter 12: Working with HTML, XML, and JSON 331 ConvertTo-Html ........................................................................................................................... 332 Multiple tables • 332 Adding style • 332 ConvertTo-Html and Send-MailMessage • 333 Windows PowerShell and ConvertTo-Html • 334 Modifying HTML content • 335 XML commands ........................................................................................................................... 336 About XML • 337 Elements and attributes • 337 Namespaces • 337 Schemas • 338 Select-Xml • 338 Select-Xml and namespaces • 340 ConvertTo-Xml • 341 System.Xml .................................................................................................................................. 342 The XML type accelerator • 342 XPath and XmlDocument • 343 SelectNodes and XPathNodeList • 344 Working with namespaces • 345 Creating XML documents • 346 Modifying element and attribute values • 348 Adding elements • 349 Removing elements and attributes • 350 Copying nodes between documents • 350 Schema validation • 351 Inferring a schema • 353 System.Xml.Linq .......................................................................................................................... 356 Opening documents • 356 Selecting nodes • 357 Creating documents • 358 Working with namespaces • 359 Modifying element and attribute values • 360 Adding nodes • 361 Removing nodes • 361 Schema validation • 362 JSON ............................................................................................................................................ 363 ConvertTo-Json • 363 EnumsAsStrings • 364 AsArray • 365 EscapeHandling • 365 ConvertFrom-Json • 366 AsHashtable • 369 NoEnumerate • 370 Test-Json • 370 Summary ..................................................................................................................................... 372 Chapter 13: Web Requests and Web Services 375 Technical requirements ................................................................................................................ 375 Web requests ................................................................................................................................ 376 HTTP methods • 376 Using Invoke-WebRequest • 377 About parsing web pages • 377 Downloading files • 378 Using the HEAD method • 378 HTTPS • 379 Security protocols • 379 Certificate validation • 380 Windows PowerShell and certificate validation • 380 Capturing SSL errors • 382 Working with REST ....................................................................................................................... 383 Simple requests • 384 Using basic authentication • 385 Requests with arguments • 385 Working with paging • 388 OAuth • 390 Creating an application • 390 Getting an authorization code • 390 Implementing an HTTP listener • 391 Requesting an access token • 392 Using a token • 392 Working with SOAP ...................................................................................................................... 393 Finding a SOAP service • 393 SOAP in Windows PowerShell • 394 New-WebServiceProxy • 394 Methods • 395 Methods and enumerations • 396 Methods and SOAP objects • 397 Overlapping services • 398 SOAP in PowerShell 7 • 399 Getting the WSDL document • 399 Discovering methods and enumerations • 399 Running methods • 401 Summary ..................................................................................................................................... 404 Chapter 14: Remoting and Remote Management 405 Technical requirements ................................................................................................................ 405 Executing remote commands ........................................................................................................ 405 Enter-PSSession • 406 Invoke-Command • 407 Parallel execution • 409 Catching remoting failures • 410 Local functions and remote sessions • 411 Using ArgumentList • 412 The using scope modifier • 413 PS Sessions .................................................................................................................................. 414 New-PSSession and Get-PSSession • 414 Disconnected sessions • 415 Import-PSSession • 416 Export-PSSession • 416 Copying items between sessions • 416 WS-Management ........................................................................................................................... 417 Enabling and configuring remoting • 417 The WSMan drive • 418 Remoting and SSL • 418 User Account Control • 421 Trusted hosts • 422 Remoting on Linux ....................................................................................................................... 423 Remoting over SSH • 424 Connecting from Windows to Linux • 425 Connecting from Linux to Windows • 426 The double-hop problem .............................................................................................................. 428 CredSSP • 429 Passing credentials • 430 CIM sessions ................................................................................................................................ 430 Get-CimSession • 432 Using CIM sessions • 432 Just Enough Administration .......................................................................................................... 432 Session configuration • 433 Role capabilities • 434 Summary ..................................................................................................................................... 435 Chapter 15: Asynchronous Processing 437 Working with jobs ......................................................................................................................... 437 Start-Job, Get-Job, and Remove-Job • 438 Receive-Job • 439 Wait-Job • 440 Jobs and the using scope modifier • 441 The background operator • 442 The ThreadJob module • 443 Batching jobs • 443 Reacting to events ........................................................................................................................ 445 The Register-ObjectEvent and *-Event commands • 446 Action, Event, EventArgs, and MessageData parameters • 447 Get-EventSubscriber and Unregister-Event • 449 Using runspaces and runspace pools ............................................................................................. 450 Creating a PowerShell instance • 451 The Invoke and BeginInvoke methods • 452 About Streams and InvocationStateInfo • 455 Running multiple instances • 457 Using the RunspacePool object • 458 About the InitialSessionState object • 459 Adding modules and snap-ins • 460 Adding variables • 461 Adding functions • 462 Using the InitialSessionState and RunspacePool objects • 464 Using thread-safe objects .............................................................................................................. 464 Managing concurrent access ......................................................................................................... 467 Summary ...................................................................................................................................... 471 Chapter 16: Graphical User Interfaces 473 About Windows Presentation Foundation (WPF) ............................................................................ 474 Designing a UI .............................................................................................................................. 474 About XAML ................................................................................................................................. 474 Displaying the UI .......................................................................................................................... 475 Layout .......................................................................................................................................... 477 Using the Grid control • 477 Using the StackPanel control • 481 Using the DockPanel control • 483 About Margin and Padding • 486 Naming and locating controls ....................................................................................................... 488 Handling events ........................................................................................................................... 492 Buttons and the Click event • 494 ComboBox and SelectionChanged • 495 Adding elements programmatically • 496 Sorting a ListView • 498 Responsive interfaces ................................................................................................................... 504 Import-Xaml and runspace support • 504 Errors in the background • 506 Using the Dispatcher • 506 ScriptBlock runspace affinity • 509 Using the Action delegate • 510 Using the Func delegate • 512 Summary ..................................................................................................................................... 515 Chapter 17: Scripts, Functions, and Script Blocks 517 About style ................................................................................................................................... 518 Capabilities of scripts, functions, and script blocks ........................................................................ 519 Scripts and using statements • 519 Scripts and the Requires statement • 520 Nesting functions • 520 Script blocks and closures • 521 Parameters and the param block ................................................................................................... 522 Parameter types • 523 Default values • 523 Cross-referencing parameters • 524 The CmdletBinding attribute ........................................................................................................ 525 Common parameters • 525 CmdletBinding properties • 526 ShouldProcess and ShouldContinue • 527 ShouldProcess • 527 ShouldContinue • 530 The Alias attribute ........................................................................................................................ 532 begin, process, end, and clean ...................................................................................................... 532 begin • 533 process • 534 end • 534 clean • 536 Named blocks and return • 537 Managing output .......................................................................................................................... 538 The Out-Null command • 540 Assigning to null • 540 Redirecting to null • 541 Casting to void • 541 Working with long lines ................................................................................................................ 542 Line break after a pipe • 543 Line break after an operator • 543 Using the array sub-expression operator to break up lines • 543 Comment-based help .................................................................................................................... 545 Output help • 546 Parameter help • 548 Examples • 551 Summary ..................................................................................................................................... 552 Chapter 18: Parameters, Validation, and Dynamic Parameters 553 The Parameter attribute ............................................................................................................... 553 Position and positional binding • 555 The DontShow property • 557 The ValueFromRemainingArguments property • 558 The HelpMessage property • 559 Validating input ............................................................................................................................ 560 The PSTypeName attribute • 560 Validation attributes • 562 The ValidateNotNull attribute • 563 The ValidateNotNullOrEmpty attribute • 565 The ValidateNotNullOrWhitespace attribute • 565 The ValidateCount attribute • 566 The ValidateLength attribute • 566 The ValidatePattern attribute • 567 The ValidateRange attribute • 570 The ValidateScript attribute • 570 The ValidateSet attribute • 571 The ValidateDrive attribute • 572 The ValidateUserDrive attribute • 573 The Allow attributes • 573 The AllowNull attribute • 573 The AllowEmptyString attribute • 574 The AllowEmptyCollection attribute • 574 PSReference parameters • 575 Pipeline input .............................................................................................................................. 576 About ValueFromPipeline • 576 Accepting null input • 577 Input object types • 578 Using ValueFromPipeline for multiple parameters • 579 About ValueFromPipelineByPropertyName • 581 ValueFromPipelineByPropertyName and parameter aliases • 582 Defining parameter sets ............................................................................................................... 583 Argument completers .................................................................................................................... 587 The ArgumentCompleter attribute • 588 Using Register-ArgumentCompleter • 589 About CompletionResult • 590 Non-literal values • 591 Listing registered argument completers • 595 Dynamic parameters .................................................................................................................... 596 Creating a RuntimeDefinedParameter object • 597 Using RuntimeDefinedParameterDictionary • 599 Using dynamic parameters • 600 PSBoundParameters • 600 RuntimeDefinedParameterDictionary • 602 Conditional parameters • 604 Summary ..................................................................................................................................... 605 Chapter 19: Classes and Enumerations 607 Defining an enumeration ............................................................................................................... 607 Enum and underlying types • 608 Automatic value assignment • 609 Enum or ValidateSet • 610 The Flags attribute • 611 Using enumerations to convert a value • 615 Creating a class ............................................................................................................................ 616 Properties • 617 Constructors • 618 Methods • 619 The Hidden modifier • 621 The static modifier • 622 Inheritance • 622 Constructors and inheritance • 624 Calling methods in a parent class • 627 Working with interfaces • 628 Implementing IComparable • 628 Implementing IEquatable • 630 Supporting casting • 631 Classes and runspace affinity ........................................................................................................ 634 Transformation, validation, and completion ................................................................................... 637 Argument transformation attribute classes • 637 Validation attribute classes • 639 ValidateArgumentsAttribute • 640 ValidateEnumeratedArgumentsAttribute • 641 ValidateSet value generator • 643 Argument completers • 644 IArgumentCompleter • 644 IArgumentCompleterFactory • 646 Classes and Microsoft Desired State Configuration ......................................................................... 648 Implementing Get • 650 Implementing Set • 651 Implementing Test • 652 Using the resource • 653 Summary ...................................................................................................................................... 657 Online Chapter ............................................................................................................................. 658 Chapter 20: Building Modules (Online Chapter) Chapter 21: Testing 659 Technical requirements ................................................................................................................ 659 Static analysis .............................................................................................................................. 660 PSScriptAnalyzer • 660 Configurable rules • 661 Suppressing rules • 663 Using AST • 666 Visualizing the AST • 668 Searching the AST • 669 Tokenizer • 671 Custom script analyzer rules • 672 Creating a custom rule • 673 AST-based rules • 673 Token-based rules • 675 Testing with Pester ....................................................................................................................... 676 Testing methodologies • 678 What to test • 679 Describing tests • 680 About the Describe and Context keywords • 680 About the It keyword • 680 Should and assertions • 681 Testing for errors • 682 Iteration with Pester • 684 Using the ForEach parameter • 684 ForEach with Describe and Context • 686 Conditional testing • 687 Using Set-ItResult • 687 Using Skip • 688 Pester phases • 689 Before and After blocks • 690 Mocking commands • 690 Parameter variables • 693 Parameter filtering • 694 Overriding mocks • 696 Mocking non-local commands • 699 Mocking objects • 701 Adding methods to PSCustomObject • 702 Disarming .NET types • 702 Mocking CIM objects • 705 InModuleScope • 707 Pester in scripts • 708 Summary ..................................................................................................................................... 710 Chapter 22: Error Handling 713 Error types ................................................................................................................................... 713 Terminating errors • 713 Non-terminating errors • 715 Error actions ................................................................................................................................ 716 About Get-Error • 717 Raising errors .............................................................................................................................. 718 Error records • 719 Raising non-terminating errors • 720 Using the WriteError method • 722 Raising terminating errors • 724 Using the ThrowTerminatingError method • 725 Catching errors ............................................................................................................................ 726 ErrorVariable • 726 try, catch, and finally • 727 Rethrowing errors • 730 Inconsistent error handling • 733 throw and ErrorAction • 736 Terminating errors in child scopes • 739 Nesting try, catch, and finally • 740 About trap .................................................................................................................................... 742 Using trap • 742 trap, scope, and continue • 743 Summary ..................................................................................................................................... 744 Chapter 23: Debugging 747 Common problems ........................................................................................................................ 747 Dash characters • 748 Operator usage • 750 Assignment instead of equality • 750 -or instead of -and • 751 Negated array comparisons • 752 Use of named blocks • 753 Code outside of a named block • 753 Pipeline without process • 755 Problems with variables • 756 About strict mode • 756 Variables and types • 758 Types and reserved variables • 759 Debugging in the console .............................................................................................................. 760 Setting a command breakpoint • 760 Using variable breakpoints • 762 Setting a line breakpoint • 763 Debugging in Visual Studio Code ................................................................................................... 765 Using the debugger • 765 Viewing CALL STACK • 767 Using launch configurations • 768 Debugging modules • 770 Using WATCH • 771 Debugging other PowerShell processes ......................................................................................... 772 Other Books You May Enjoy 779 Index 783
Dent Chris / Дент Крис - Mastering PowerShell Scripting, 5th Edition / Осваиваем работу со сценариями PowerShell, 5-е издание [2024, PDF/EPUB, ENG] download torrent for free and without registration
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum