Index
A
- anti-patterns
- URL / Further reading
- antipatterns
- assignment statements
- sequencing / Sequences of assignment statements
B
- behavior-driven development (BDD) / An introduction to Pester
- best practices
C
- caption property / Operating system version
- catch and release / Catch and release
- catch statement / try, catch, and finally statements
- cmdlet
- error behavior / Investigating cmdlet error behavior
- cmdlet, naming convention
- about / Cmdlet and function naming
- CmdletBinding()
- about / CmdletBinding()
- parameter support / Common parameter support
- cmdlets
- about / Cmdlets
- Get-Command cmdlet / The big three cmdlets
- Get-Help cmdlet / The big three cmdlets
- Get-Member cmdlet / The big three cmdlets
- verb list, URL / Further reading
- code
- about / Don't repeat code
- code smells
- code smells
- Language-agnostic code smells / Language-agnostic code smells
- PowerShell-specific code smells / PowerShell-specific code smells
- URL / Further reading
- color, error message
- issue / The color problem
- comment-based help
- about / Comment-based help
- Common Information Model (CIM) / Validating operating system properties
- confirm
- using / Using –confirm and –whatif
- console
- debugging in / Debugging in the console
- console colors, error message
- changing / Changing console colors
- content, error message
- about / Error message content
D
- debugging
- in console / Debugging in the console
- in ISE / Debugging in the ISE
- DebugPreference variable / What about the other Write-* cmdlets?
- disk
- availability, validating / Validating disk and memory availability
- Dogfooding
- URL / Further reading
- downstream versions
- Test-NetConnection, writing in / Writing Test-NetConnection in downstream versions
E
- ErrorActionPreference variable / What about the other Write-* cmdlets?
- error handling
- about / Error handling
- guidelines / Error-handling guidelines
- techniques / Error-handling techniques
- cmdlet, error behavior / Investigating cmdlet error behavior
- catch and release / Catch and release
- error handling, PowerShell
- trap statement / The trap statement
- finally statement / try, catch, and finally statements
- catch statement / try, catch, and finally statements
- try statement / try, catch, and finally statements
- non-terminating errors / Non-terminating errors
- terminating error / Non-terminating errors
- error messages
- reading / Reading error messages
- color, issue / The color problem
- console colors, changing / Changing console colors
- ISE colors, changing / Changing ISE colors
- PowerShell profiles / PowerShell profiles
- content / Error message content
- event logs
- about / Event logs
- listing / Listing event logs
- reading / Reading event logs
- writing to / Writing to event logs
- Event Tracing for Windows (ETW) / Listing event logs
F
- filter left
- about / Filter left
- finally statement / try, catch, and finally statements
- foreach-object cmdlet
- used, for replacing foreach loop / Replacing the foreach loop with the foreach-object cmdlet
- foreach loop
- replacing, with foreach-object cmdlet / Replacing the foreach loop with the foreach-object cmdlet
- format right
- about / Format right
- formatting codes
- URL / Further reading
- fully-qualified domain names (FQDN) / Rolling your own unit tests
- function naming, naming convention
- about / Cmdlet and function naming
- function output
- about / Function output
- functions
- about / Functions
G
- Get-Command cmdlet / The big three cmdlets
- Get-EventLog, filtering parameters
- -Index / Reading event logs
- -EntryType / Reading event logs
- -Message / Reading event logs
- -Source / Reading event logs
- -Before and -After / Reading event logs
- -Newest / Reading event logs
- -UserName / Reading event logs
- Get-Help cmdlet / The big three cmdlets
- Get-Member cmdlet / The big three cmdlets
- Get-Service cmdlet / Investigating cmdlet error behavior
- Get-Verb cmdlet / Cmdlets
- Get-WinEvent, filtering parameters
- -FilterXPath / Reading event logs
- -FilterHashTable / Reading event logs
- -FilterXML / Reading event logs
- -MaxEvents / Reading event logs
- -Oldest (switch) / Reading event logs
- Get-WMIObject cmdlet / Investigating cmdlet error behavior
H
- helper functions
- about / Helper functions
I
- ICMP connectivity
- testing / Testing UDP and ICMP connectivity
- input set
- reducing / Reducing input set
- integrated scripting environment (ISE) / PowerShell strings
- Integrated Scripting Environment (ISE) / Write-Progress
- intermediate results
- viewing, Tee-Object used / Using Tee-Object to see intermediate results
- ISE
- debugging in / Debugging in the ISE
- ISE colors, error message
- changing / Changing ISE colors
L
- language-agnostic code smells
- about / Language-agnostic code smells
M
- Measure-Command cmdlet / Filter left
- memory
- availability, validating / Validating disk and memory availability
- mocking
- URL / Further reading
- modularization
- about / Modularization
- process, breaking into subtasks / Breaking a process into subtasks
- single responsibility principle / Single responsibility principle
- process / Understanding the process
- URL / Further reading
- module naming, naming convention
- about / Module naming
- modules
- about / Modules
- Monad Manifesto
- URL / Further reading
N
- naming conventions
- about / Naming conventions
- cmdlet / Cmdlet and function naming
- function naming / Cmdlet and function naming
- parameter naming / Parameter naming
- module naming / Module naming
- variable naming / Variable naming
- URL / Further reading
- network connectivity
- validating / Validating network connectivity
- working / Putting it all together
- network connectivity, validating
- telnet used / Using telnet
- Test-NetConnection used / Using Test-NetConnection
- UDP connectivity, testing / Testing UDP and ICMP connectivity
- ICMP connectivity, testing / Testing UDP and ICMP connectivity
- implementation, prior to / Validating connectivity prior to implementation
- non-terminating error / Non-terminating errors
O
- operating system properties
- validating / Validating operating system properties
- workstation/server version / Workstation/server version
- operating system version / Operating system version
- working / Putting it all together
- operating system version / Operating system version
- output objects
- accumulating / Accumulating output objects
P
- Param() statement / CmdletBinding()
- Param() statements
- missing / Missing Param() statements
- parameter name
- validation / Parameter name validation
- parameter naming, naming convention
- about / Parameter naming
- parameters / Homegrown common parameters
- blog post, URL / Homegrown common parameters
- parameter type transformation
- about / Parameter type transformation
- URL / Further reading
- parameter value
- validation / Parameter value validation
- Pester
- about / An introduction to Pester
- mocking with / Mocking with Pester
- URL / Further reading
- pipelines
- about / Pipelines, How pipelines change the game
- processing / Pipeline processing
- input / Pipeline input
- and function execution / Pipelines and function execution
- PowerShell
- strings / PowerShell strings
- string substitution / String substitution, How string substitution goes wrong
- pipeline, processing / Pipeline processing
- error handling / PowerShell error handling
- version control, using with / Using version control with PowerShell
- testing / Why is PowerShell testing difficult?
- PowerShell-specific code smells
- about / PowerShell-specific code smells
- PowerShell profiles, error message
- about / PowerShell profiles
- process
- breaking, into subtasks / Breaking a process into subtasks
- about / Understanding the process
- ProgressPreference variable / What about the other Write-* cmdlets?
- PSDiagnostics module
- about / The PSDiagnostics module
- PSDrives / What about the other Write-* cmdlets?
- PSProviders / What about the other Write-* cmdlets?
R
- #REQUIRES statements
- -Verson option / #REQUIRES statements
- -PSSnapIn option / #REQUIRES statements
- -Modules option / #REQUIRES statements
- -ShellID option / #REQUIRES statements
- -RunAsAdministrator option / #REQUIRES statements
S
- Script Analyzer
- about / Script Analyzer
- URL / Script Analyzer, Further reading
- Script Browser
- URL / Script Analyzer, Further reading
- ScriptCop
- about / ScriptCop
- URL / ScriptCop, Further reading
- scripts
- about / Scripts
- service status
- validating / Validating service status
- Set-PSDebug
- using / Using Set-PSDebug
- Set-PSDebug -strict / Set-StrictMode and Set-PSDebug -strict
- Set-StrictMode / Set-StrictMode and Set-PSDebug -strict
- single responsibility principle
- about / Single responsibility principle
- sorting
- directory / How pipelines change the game
- about / What's the fuss about sorting?
- static analysis tools
- about / Static analysis tools – ScriptCop and Script Analyzer
- ScriptCop / ScriptCop
- Script Analyzer / Script Analyzer
- strings, PowerShell
- about / PowerShell strings
- substitution / String substitution, How string substitution goes wrong
- escaping in / Escaping in PowerShell strings
- double-quoted strings, special characters / Escaping in PowerShell strings
- subtasks
- process, breaking into / Breaking a process into subtasks
- SupportsShouldProcess
- about / SupportsShouldProcess
- parameter name validation / Parameter name validation
T
- Team Foundation Services (TFS) / Using version control with PowerShell
- technical debt
- Tee-Object
- used, for viewing intermediate results / Using Tee-Object to see intermediate results
- telnet
- used, for validating network connectivity / Using telnet
- URL / Further reading
- terminating error / The trap statement, Non-terminating errors
- Test-NetConnection
- used, for validating network connectivity / Using Test-NetConnection
- writing, in downstream versions / Writing Test-NetConnection in downstream versions
- Test Driven Development (TDD) / Unit testing
- trap statement / The trap statement
- try statement / try, catch, and finally statements
U
- UDP connectivity
- testing / Testing UDP and ICMP connectivity
- unit testing
- about / Unit testing
- rolling / Rolling your own unit tests
- URL / Further reading
- untyped parameter
V
- variable naming, naming convention
- about / Variable naming
- variables
- about / Variables
- VerbosePreference variable / What about the other Write-* cmdlets?
- verbs
- URL / Cmdlets
- unapproved / Unapproved verbs
- version control
- about / Version control
- using, with PowerShell / Using version control with PowerShell
W
- WarningPreference variable / What about the other Write-* cmdlets?
- Web Services Management (WSMAN) / Validating operating system properties
- whatif
- using / Using –confirm and –whatif
- Windows Management Instrumentation (WMI) / Validating operating system properties
- Windows PowerShell
- workstation/server version, operating system properties / Workstation/server version
- Write-* cmdlets
- Write-Debug
- about / Write-Debug
- Write-Error
- about / Write-Error
- Write-Host
- about / Write-Host
- Write-Output / Output – the correct way, Which Write should I use?
- Write-Progress
- about / Write-Progress
- Write-Verbose
- about / Write-Verbose
- Write-Warning
- about / Write-Warning