
Professional Windows PowerShell
by Watt, Andrew-
This Item Qualifies for Free Shipping!*
*Excludes marketplace orders.
Rent Book
New Book
We're Sorry
Sold Out
Used Book
We're Sorry
Sold Out
eBook
We're Sorry
Not Available
How Marketplace Works:
- This item is offered by an independent seller and not shipped from our warehouse
- Item details like edition and cover design may differ from our description; see seller's comments before ordering.
- Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
- Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
- Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.
Summary
Author Biography
He is a regular contributor to the Windows PowerShell newsgroup, microsoft.public.windows.powershell, and can be contacted by email at SVGDeveloper@aol.com.
Table of Contents
Introduction | p. xv |
Acknowledgments | p. xx |
Finding Your Way Around Windows PowerShell | p. 1 |
Getting Started with Windows PowerShell | p. 3 |
Installing Windows PowerShell | p. 3 |
Installing .NET Framework 2.0 | p. 4 |
Installing Windows PowerShell | p. 7 |
Starting and Stopping PowerShell | p. 8 |
Starting PowerShell | p. 8 |
Exiting PowerShell | p. 10 |
Startup Options | p. 10 |
Finding Available Commands | p. 11 |
Getting Help | p. 14 |
Basic Housekeeping | p. 17 |
Case Insensitivity | p. 18 |
What You Get in PowerShell | p. 19 |
Interactive Command Shell | p. 19 |
Cmdlets | p. 20 |
Scripting Language | p. 21 |
Summary | p. 23 |
The Need for Windows PowerShell | p. 25 |
Limitations of CMD.exe | p. 27 |
Batch Files | p. 28 |
Inconsistency of Implementation | p. 28 |
Inability to Answer Questions | p. 29 |
Lack of Integration with GUI Tools | p. 29 |
The GUI Emphasis in Windows | p. 29 |
Previous Attempted Solutions | p. 29 |
Windows Script Host | p. 30 |
Windows Management Instrumentation | p. 30 |
Summary | p. 31 |
The Windows PowerShell Approach | p. 33 |
A New Architecture | p. 33 |
.NET Framework-Based Architecture | p. 34 |
Object-Based Architecture | p. 35 |
A New Cross-Tool Approach | p. 38 |
GUI Shell (MMC Layered over PowerShell) | p. 39 |
Command Line | p. 39 |
Command Scripting | p. 41 |
COM Scripting | p. 43 |
Namespaces as Drives | p. 45 |
File System Provider | p. 47 |
Registry | p. 47 |
Aliases | p. 48 |
Variables | p. 49 |
Active Directory | p. 50 |
Certificates | p. 51 |
Extensibility and Backward Compatibility | p. 51 |
Aliases | p. 51 |
Use Existing Utilities | p. 53 |
Use Familiar Commands | p. 55 |
Long Term Roadmap: Complete Coverage in 3 to 5 Years | p. 55 |
COM Access | p. 56 |
WMI Access | p. 56 |
.NET Class Access | p. 56 |
Object-Based Approach in PowerShell | p. 56 |
Object-Based Pipelines | p. 56 |
A Consistent Verb-Noun Naming Scheme | p. 57 |
Coping with a Diverse World | p. 58 |
Upgrade Path to C# | p. 58 |
Working with Errors | p. 58 |
Debugging in PowerShell | p. 59 |
Additional PowerShell Features | p. 59 |
Extended Wildcards | p. 59 |
Automatic Variables | p. 60 |
Summary | p. 62 |
Using the Interactive Shell | p. 63 |
Windows PowerShell's Two Command Line Parsing Approaches | p. 63 |
Expression Mode Examples | p. 65 |
Command Mode Examples | p. 66 |
Mixing Expressions and Commands | p. 69 |
Exploring a Windows System with Windows PowerShell | p. 69 |
Finding Running Processes | p. 69 |
Filtering Processes Using where-object | p. 71 |
Filtering Processes Using Wildcards | p. 72 |
Finding Out about Services | p. 73 |
Finding Running Services | p. 74 |
Finding Other Windows PowerShell Commands | p. 75 |
Using Abbreviated Commands | p. 76 |
Command Completion | p. 76 |
Aliases | p. 77 |
Working with Object Pipelines | p. 78 |
Sequences of Commands | p. 78 |
Filtering Using where-object | p. 79 |
Sorting | p. 81 |
Grouping | p. 83 |
Pros and Cons of Verbosity | p. 85 |
Interactive | p. 85 |
Stored Commands | p. 87 |
Summary | p. 87 |
Using Snapins, Startup Files, and Preferences | p. 89 |
Startup | p. 89 |
Snapins | p. 90 |
Profiles | p. 97 |
Profile.ps1 | p. 98 |
Aliases | p. 100 |
The export-alias Cmdlet | p. 105 |
The get-alias Cmdlet | p. 107 |
The import-alias Cmdlet | p. 108 |
The new-alias Cmdlet | p. 108 |
The set-alias Cmdlet | p. 109 |
The Help Alias | p. 111 |
Command Completion | p. 112 |
Prompts | p. 113 |
Preference Variables | p. 115 |
Summary | p. 116 |
Parameters | p. 117 |
Using Parameters | p. 118 |
Finding Parameters for a Cmdlet | p. 121 |
Named Parameters | p. 124 |
Wildcards in Parameter Values | p. 125 |
Positional Parameters | p. 127 |
Common Parameters | p. 132 |
Using Variables as Parameters | p. 133 |
Summary | p. 135 |
Filtering and Formatting Output | p. 137 |
Using the where-object Cmdlet | p. 137 |
Simple Filtering | p. 138 |
Using Multiple Tests | p. 140 |
Using Parameters to where-object | p. 142 |
The where-object Operators | p. 144 |
Using the select-object Cmdlet | p. 144 |
Selecting Properties | p. 145 |
Expanding Properties | p. 146 |
Selecting Unique Values | p. 147 |
First and Last | p. 148 |
Default Formatting | p. 151 |
Using the format-table Cmdlet | p. 155 |
Using the property Parameter | p. 156 |
Using the autosize Parameter | p. 157 |
Hiding Table Headers | p. 158 |
Grouping Output | p. 158 |
Specifying Labels and Column Widths | p. 159 |
Using the format-list Cmdlet | p. 161 |
Using the update-formatdata and update-typedata Cmdlets | p. 162 |
Summary | p. 163 |
Using Trusting Operations | p. 165 |
Look Before You Leap | p. 166 |
Using the remove-item Cmdlet | p. 166 |
Using the whatif Parameter | p. 175 |
Using the stop-process Cmdlet | p. 175 |
Using the stop-service Cmdlet | p. 178 |
Using the confirm Parameter | p. 180 |
Using the verbose Parameter | p. 181 |
Summary | p. 182 |
Retrieving and Working with Data | p. 183 |
Windows PowerShell Providers | p. 183 |
Using the get-psdrive Cmdlet | p. 184 |
Using the set-location Cmdlet | p. 188 |
Using the passthru Parameter | p. 190 |
Using the get-childitem Cmdlet | p. 191 |
Using the get-location Cmdlet | p. 194 |
Using the get-content Cmdlet | p. 196 |
Using the measure-object Cmdlet | p. 201 |
The new-item Cmdlet | p. 203 |
The new-psdrive Cmdlet | p. 204 |
Summary | p. 205 |
Scripting with Windows PowerShell | p. 207 |
Enabling Scripts on Your Machine | p. 207 |
Using the read-host Cmdlet | p. 212 |
Using the write-host Cmdlet | p. 214 |
The Arithmetic Operators | p. 218 |
Operator Precedence | p. 219 |
The Assignment Operators | p. 220 |
The Comparison Operators | p. 222 |
The Logical Operators | p. 225 |
The Unary Operators | p. 226 |
Using the set-variable and Related Cmdlets | p. 227 |
The set-variable Cmdlet | p. 228 |
The new-variable Cmdlet | p. 229 |
The get-variable Cmdlet | p. 230 |
The clear-variable Cmdlet | p. 231 |
The remove-variable Cmdlet | p. 232 |
Summary | p. 234 |
Additional Windows PowerShell Language Constructs | p. 235 |
Arrays | p. 235 |
Creating Typed Arrays | p. 239 |
Modifying the Structure of Arrays | p. 241 |
Working from the End of Arrays | p. 245 |
Concatenating Arrays | p. 248 |
Associative Arrays | p. 249 |
Conditional Expressions | p. 250 |
The if Statement | p. 251 |
The switch Statement | p. 254 |
Looping Constructs | p. 256 |
The for Loop | p. 256 |
The while Loop | p. 258 |
The do/while Loop | p. 259 |
The foreach Statement | p. 260 |
Summary | p. 262 |
Processing Text | p. 263 |
The .NET String Class | p. 263 |
Working with String Methods | p. 267 |
Casting Strings to Other Classes | p. 287 |
URI | p. 287 |
Datetime | p. 288 |
XML | p. 289 |
Regex | p. 289 |
Summary | p. 291 |
COM Automation | p. 293 |
Using the new-object Cmdlet | p. 293 |
Working with Specific Applications | p. 294 |
Working with Internet Explorer | p. 294 |
Working with Windows Script Host | p. 299 |
Working with Word | p. 301 |
Working with Excel | p. 302 |
Accessing Data in an Access Database | p. 303 |
Working with a Network Share | p. 305 |
Using Synthetic Types | p. 306 |
Summary | p. 308 |
Working with .NET | p. 309 |
Windows PowerShell and the .NET Framework | p. 309 |
Creating .NET Objects | p. 311 |
The new-object Cmdlet | p. 311 |
Other Techniques to Create New Objects | p. 317 |
Inspecting Properties and Methods | p. 320 |
Using the get-member Cmdlet | p. 320 |
Using .NET Reflection | p. 324 |
Using the GetMembers() Method | p. 324 |
Using the GetMember() Method | p. 326 |
Using the GetMethods() Method | p. 328 |
Using the GetMethod() Method | p. 329 |
Using the GetProperties() Method | p. 330 |
Using the GetProperty() Method | p. 331 |
Using System.Type Members | p. 333 |
Summary | p. 334 |
Putting Windows PowerShell to Work | p. 335 |
Using Windows PowerShell Tools for Discovery | p. 337 |
Exploring System State | p. 338 |
Using the get-location Cmdlet | p. 338 |
Handling Errors | p. 345 |
Namespaces | p. 346 |
PowerShell Aliases | p. 346 |
PowerShell Functions and Filters | p. 349 |
PowerShell Variables | p. 350 |
Exploring the Environment Variables | p. 351 |
Exploring the Current Application Domain | p. 353 |
Exploring Services | p. 357 |
Using the get-service Cmdlet | p. 358 |
Using the new-service Cmdlet | p. 360 |
Using the restart-service Cmdlet | p. 361 |
Using the set-service Cmdlet | p. 362 |
Using the start-service Cmdlet | p. 362 |
Using the stop-service Cmdlet | p. 363 |
Using the suspend-service Cmdlet | p. 364 |
Summary | p. 365 |
Security | p. 367 |
Minimizing the Default Risk | p. 368 |
The Certificate Namespace | p. 374 |
Signed Scripts | p. 376 |
Creating a Certificate | p. 376 |
The set-authenticodesignature Cmdlet | p. 377 |
The get-authenticodesignature Cmdlet | p. 379 |
Summary | p. 379 |
Working with Errors and Exceptions | p. 381 |
Errors in PowerShell | p. 381 |
$Error | p. 383 |
Using Error-Related variables | p. 388 |
Using the $ErrorView variable | p. 389 |
Using the $ErrorActionPreference variable | p. 390 |
Trap Statement | p. 392 |
Using Common Parameters | p. 397 |
Using the ErrorAction Parameter | p. 397 |
Using the ErrorVariable Parameter | p. 399 |
The write-error Cmdlet | p. 400 |
Summary | p. 401 |
Debugging | p. 403 |
Handling Syntax Errors | p. 403 |
The set-PSDebug Cmdlet | p. 408 |
The write-debug Cmdlet | p. 413 |
Tracing | p. 418 |
The trace-command Cmdlet | p. 419 |
The set-tracesource Cmdlet | p. 422 |
The get-tracesource Cmdlet | p. 422 |
Summary | p. 423 |
Working with the File System | p. 425 |
Path Names in Windows PowerShell | p. 426 |
Fully Qualified Path Names | p. 427 |
Relative Path Names | p. 430 |
Path Names and Running Commands | p. 431 |
Simple Tasks with Folders and Files | p. 434 |
Finding the drives on a system | p. 434 |
Finding Folders and Files | p. 434 |
Finding File Characteristics | p. 436 |
Exploring Files Using the select-object Cmdlet | p. 439 |
Finding Hidden Files | p. 442 |
Tab Completion | p. 443 |
Redirection | p. 445 |
Creating Custom Drives | p. 447 |
Cmdlets for File Actions | p. 449 |
Using the out-file Cmdlet | p. 449 |
Using Cmdlets to Work with Paths | p. 450 |
Summary | p. 453 |
Working with the Registry | p. 455 |
Introduction to the Registry | p. 455 |
Exploring the Registry Using Windows PowerShell | p. 458 |
Selecting a Hive | p. 458 |
Navigating to a Desired Key | p. 459 |
Changing the Registry | p. 461 |
Summary | p. 464 |
Working with Environment Variables | p. 465 |
Environment Variables Overview | p. 465 |
The Environment Command Shell Provider | p. 468 |
Exploring Environment Variables | p. 470 |
Modifying Environment Variables | p. 471 |
Summary | p. 473 |
Language Reference | p. 475 |
Working with Logs | p. 477 |
Event Log Basics | p. 477 |
The get-eventlog Cmdlet | p. 480 |
Summary | p. 494 |
Working with WMI | p. 495 |
Introducing Windows Management Instrumentation | p. 496 |
Managed Resources | p. 496 |
WMI Infrastructure | p. 497 |
CIM Object Manager | p. 498 |
The CIM Repository | p. 499 |
WMI Consumers | p. 499 |
WMI Tools | p. 499 |
Using the get-wmiobject Cmdlet | p. 502 |
Finding WMI Classes and Members | p. 506 |
Exploring a Windows System | p. 509 |
Characterizing the CPU | p. 509 |
Finding Memory | p. 510 |
Exploring Services | p. 512 |
Exploring Remote Machines | p. 513 |
Summary | p. 514 |
Index | p. 515 |
Table of Contents provided by Ingram. All Rights Reserved. |
An electronic version of this book is available through VitalSource.
This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.
By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.
Digital License
You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.
More details can be found here.
A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.
Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.
Please view the compatibility matrix prior to purchase.