Register your product to gain access to bonus material or receive a coupon.
A new edition of this title is available, ISBN-10: 0672329883 ISBN-13: 9780672329883
PowerShell is one of the most exciting new products to come out of Microsoft in a long time. It is both a new scripting language and a command-line shell. People who have seen the demos have been extremely impressed by the power it brings to admins to automate and customize their regular tasks. PowerShell will be used as the basis for all Windows administrative scripting in the future, starting with Exchange 2007 and Vista. IT Pros have been hungering for whatever PowerShell information they can get their hands on.
This book first focuses on PowerShell basics, how it relates to existing Windows scripting practices, and how your existing knowledge can be translated into PowerShell knowledge. After gaining insight into PowerShell, you are presented with transferable PowerShell scripting examples. The goal of presenting these examples is to outline methods of using PowerShell to manage Windows Server, Active Directory, and Exchange Server 2007 that have not been explained or touched upon by other sources.
DETAILED INFORMATION ON HOW TO…Introduction
Part I Introduction to PowerShell
1 Introduction to Shells and PowerShell
2 PowerShell Basics
3 PowerShell: A More In-Depth Look
4 Code Signing
5 PowerShell Scripting Best Practices
Part II Translating Your Existing Knowledge into PowerShell
6 PowerShell and the File System
7 PowerShell and the Registry
8 PowerShell and WMI
9 PowerShell and Active Directory
Part III Using PowerShell to Meet Your Automation Needs
10 Using PowerShell in the Real-World
Index
PowerShell: A More In-Depth Look
Windows PowerShell: A More In-Depth Look
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Part I Introduction to PowerShell
1 Introduction to Shells and PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 PowerShell Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 PowerShell: A More In-Depth Look . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4 Code Signing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5 PowerShell Scripting Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Part II Translating Your Existing Knowledge into PowerShell
6 PowerShell and the File System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7 PowerShell and the Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
8 PowerShell and WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9 PowerShell and Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Part III Using PowerShell to Meet Your Automation Needs
10 Using PowerShell in the Real-World. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11 Using PowerShell to Manage Exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
PrintNumber | ErrorLocation | Error | Correction | DateAdded |
---|---|---|---|---|
1 | pii | First Printing: | First Printing: May 2007 | 4/4/2008 |
1 | piii | 10 Using PowerShell in the Real World | 10 Using PowerShell in the Real-World | 4/4/2008 |
1 | piv | Get-Help 35 Get-Command 38 |
should be in mono | 4/4/2008 |
1 | pv | Method Three: The Throw Keyword | Throw should be in mono | 4/4/2008 |
1 | pvi | Running head: Microsoft PowerShell Unleashed Terms should be in mono. Use the WhatIf and Confirm Parameters Never Set Execution Policies to Unrestricted Setting Permissions with SubInACL |
Windows PowerShell Unleashed WhatIf, Confirm, Unrestricted, SubINACL |
4/4/2008 |
1 | pviii | Running head: Microsoft PowerShell Unleashed The Exchange ManagementShell (EMS) |
Windows PowerShell Unleashed The Exchange Management Shell (EMS) |
4/4/2008 |
1 | p1 | When I first started working on the PowerShell Unleashed book, I happened to be reading a book on public key infrastructure (PKI). | When I first started working on the Windows PowerShell Unleashed book, I happened to be reading a book on public key infrastructure (PKI). | 4/4/2008 |
1 | p2 | running head: Microsoft PowerShell Unleashed | Windows PowerShell Unleashed | 4/4/2008 |
1 | p3 | running head: Introduction | Should NOT be bold | 4/4/2008 |
1 | p9 | However, now that you have only directories listed, the other information like date, permissions, sized, etc. is superfluous because only the directory names are needed. | However, now that you have only directories listed, the other information like date, permissions, size, etc. is superfluous because only the directory names are needed. | 4/4/2008 |
1 | p11 | Extra space between sentences: With a few additions, you could get something more useful considering you want to know the names of all directories using more than a certain amount of disk space. To achieve this requirement, modify the directory.sh script file as shown in this next example. | With a few additions, you could get something more useful considering you want to know the names of all directories using more than a certain amount of disk space. To achieve this requirement, modify the directory.sh script file as shown in this next example. | 4/4/2008 |
1 | p20 | Then download the PowerShell installation package by clicking the appropriate download link. Next, start the extra space near Next |
Then download the PowerShell installation package by clicking the appropriate download link. Next, start the | 4/7/2008 |
1 | p31 | If the value of Command is a string, Command must be the last parameter in the command , because any characters typed after the command are interpreted as the command arguments. extra space between command and comma |
If the value of Command is a string, Command must be the last parameter in the command, because any characters typed after the command are interpreted as the command arguments. |
4/7/2008 |
1 | p38 | Non-Terminating Errors Identifies noncritical errors that might occur while the cmdlet is running but dont cause the cmdlet to terminate its operation. no period at the end |
Non-Terminating Errors Identifies noncritical errors that might occur while the cmdlet is running but dont cause the cmdlet to terminate its operation | 4/7/2008 |
1 | pp44-45 | Move Note on 44 to after Table 2.4 on p45 | fixed | 4/7/2008 |
1 | p51 | If a explicit scope indicator isnt used, a variable resides in the current scope for which its defined. | If an explicit scope indicator isnt used, a variable resides in the current scope for which its defined. | 4/7/2008 |
1 | p59 | However, PowerShell and its use of objects fill the automation need Windows administrators have had since the days of batch scripting and WSH in a more usable and less parsing intense manner. | However, PowerShell and its use of objects fill the automation need Windows administrators have had since the days of batch scripting and WSH in a more usable and less parsing-intense manner. | 4/7/2008 |
1 | p64 | To retrieve this information, run the Get-Member cmdlet against a variable containing the mystery objects, as shown in this example. | To retrieve this information, run the Get-Member cmdlet against a variable containing the mystery objects, as shown in this example: | 4/7/2008 |
1 | p65 | To use these attributes the first step is to filter the information returned from DirectorySearcher by using the Filter property, which takes a filter statement similar to what youd find in a Lightweight Directory Access Protocol (LDAP) statement: | To use these attributes, the first step is to filter the information returned from DirectorySearcher by using the Filter property, which takes a filter statement similar to what youd find in a Lightweight Directory Access Protocol (LDAP) statement: | 4/7/2008 |
1 | p69 | The same is true for static classes, however, when attempting to use the Get-Member cmdlet in the same manner as before creates the following error: | The same is true for static classes; however, attempting to use the Get-Member cmdlet in the same manner as before creates the following error: | 4/7/2008 |
1 | p71 | NOTE: Sometimes PSObject blocks members, methods, and properties from the original object. | Sometimes the PSObject blocks members, methods, and properties from the original object. | 4/7/2008 |
1 | p96 | 3. Locate the makecert utility on your system. The default location is C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin. | 3. Locate the makecert utility on your system. The default location is %windir%\Microsoft.Net\Framework\v2.0.xxxx. | 9/25/2007 |
1 | p96 | Black box of code at bottom of page: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin>makecert -r -pe-n CN= .... | %windir%\Microsoft.Net\Framework\v2.0.xxxx>makecert -r -pe-n CN= ..... | 9/27/2007 |
1 | p119 | While the full source code for these scripts is presented in the remaining chapters, the source code has also been provided on the PowerShell Unleashed Reference Web site which allows you to examine the scripts in usable format. | While the full source code for these scripts is presented in the remaining chapters, the source code has also been provided on the PowerShell Unleashed Reference Web site, which allows you to examine the scripts in usable format. | 4/7/2008 |
1 | p136 | ProvisionWebFolder.wsf is a VBScript based
Submit ErrataMore InformationPearson |