powertips

Understanding Variable Inheritance

PowerShell variables are inherited downstream by default, not upstream. So any variable you create at a given scope is passed to any code you call...

Do You Use "Break"?

"Break" is a special keyword that you can use to exit loops and conditions prematurely. Have a look: Do { $pwd = Read-Host 'Enter your...

Deleting Error Records

In a previous tip, you learned that "Continue" can skip code in a loop. Another scenario for using "Continue" is error handling....

Using ‘Continue’

You will find that "Continue" is a special instruction that you can use in loops to skip the remainder of a loop. This next loop returns...

Scraping Information from Web Pages

Regular expressions are a great way of identifying and retrieving text patterns. Take a look at the next code fragment as it defines a RegEx engine...

Download Web Page Content

Probably the easiest way of reading raw Web page content is using the Web client object. This will read the Web content of...

Write-Output is Picky

Assigning (multiple) return values with Write-Output works well, but you should keep in mind that Write-Output is picky and returns the exact thing...

Do You Know Write-Output?

When you leave data behind, PowerShell automatically returns it to the caller. This may create strange-looking code. With Write-Output, you can...

Use Write-Cmdlets with Care!

There is a fundamental difference between outputting data using Write-Host and just "leaving info behind":" Function test {Write-Host...

Opening Event Log GUI

In a previous tip, you learned how to register event log sources and write your own event log entries. With Show-Eventlog, you can easily open the...

Creating New Event Logs

Logging information to your event log is easy when using Write-Eventlog. You will just need to register your own event source first by using...

Running Commands Elevated

You can launch a separate PS environment and elevate it Iif you are running your script in a restricted environment and want to run a...

Prompting for Passwords

If you need to prompt for a secret password and do not want it to be visible while entered, you should use Get-Credential. This cmdlet returns a...

Finding Static Methods

You will find that types can contain very useful methods. To get a list, you can pass the type to Get-Member, but do not forget to specify the...

Identifying 64-Bit-Environments

You will find that one great advantage of 64bit-Environments is the address width of 8 bytes instead of 4 bytes. You can use this to identify...

Finding Maximum Values

Numeric types can store numbers in certain ranges. A byte for example stores values in the range 0-255. But do you know just what the range is for...

Finding Days in Month

If you need to determine the days in a given month, you can use the static DaysInMonth() function provided by the DateTime type. As you can see, the...

Finding Leap Years

You will find that the DateTime type supports a number of static methods to check dates. For example, you can check whether a year is a leap year...

Getting Short Dates

Objects contain useful methods to access the object data. For example, DateTime objects support methods to display the date and time in various...

Getting Alphabetical Listings

Unfortunately, PowerShells special ".." operator only supports numeric ranges: 1..10 You can use type conversion to get a range of...

Counting Special Characters

Type conversion can help you count special characters in a text. For example, if you'd like to find out the number of tab characters in a text,...

Chaining Type Conversions

In PowerShell, you can do multiple sequential type conversions. For example, you should first convert the string into a character array and then...

Accessing Event Logs via Conversion

You will find that type conversion can do amazing things. For example, the next line accesses a system log by converting the log name to an EventLog...

Finding WMI Instance Path Names

In a previous tip, you learned about how to access WMI instances directly using their individual instance path. Here is how you can find that path...

Type Accelerators

PowerShell has a few shortcuts for popular .NET types like [WMI], [ADSI] or [Int]. You should read the FullName property if you'd like to know...

1 80 81 82 83 84 98