You always get back all instances of a given WMI class when using Get-WMIObject. However, what if you just wanted to get a specific instance? Or you...
posts-powershell
Free Space on Disks
You can use WMI to determine how much free space is available on any given disk: Get-WMIObject Win32_LogicalDisk | Foreach-Object { 'Disk {0}...
Converting User Input to Date
PowerShell uses the US/English date format when converting user input to DateTime, which can cause unexpected results if using a different culture....
Casting a Type Without Exception
Read-Host is a useful cmdlet to use to ask for user input. However, it returns user input always as generic string. Of course, you can always...
Order Matters
Here is a challenge for you. The following code is a simple currency converter. However, when you run it, you'll notice it doesn't convert...
Filtering Based On File Age
Every so often, you'll need to filter files by age. Maybe you'll only want to see files that are older than 20 days old and delete them or...
Accessing Date Methods
While Get-Date returns the current date and time, it really returns a DateTime object. You can use this object to find out more about the date or to...
Using Cultures
Since PowerShell is culture-independent, you can pick any culture you want and use the culture-specific formats. The following script instantiates...
Outputting Nicely Formatted Dates
Get-Date provides you with the current date and time. With the -format parameter, you can add style to it. For example, use -format with a lowercase...
Stopping and Disabling Services
You may find that Vista's new Instant Search can sometimes get out of hand and slow down your machine. Temporarily disabling and then stopping...
Multidimensional Arrays
PowerShell supports two types of multi-dimensional arrays: jagged arrays and true multidimensional arrays. Jagged arrays are normal PowerShell...
Manipulating Arrays Effectively
While you can add and remove array elements with PowerShell arrays, this is an expensive operation and not recommended with large numbers of...
Using COM Objects to Say "Hi!"
If you have ever written scripts using VBScript, you probably know COM objects which are DLLs and work like command libraries. You can use COM...
Downloads with Progress Bar
If you'd like to download larger files from the Internet and get a progress indicator, you can load the .NET Visual Basic assemblies, which...
Downloading Files from the Internet
You can tap into the wealth of .NET methods easily. Use New-Object to instantiate a new .NET class, and off you go. For example, instantiate an...
Finding System Folders
When you automate file system tasks, you may want to know where special folders such as MyPictures or Documents are located. The .NET class...
Finding Out a Scripts Parent Folder
If you need to find helper files that are stored in the same folder, you may want to know where a given script is stored. The automatic variable...
Finding the Current User
Should you try and use PowerShell as a log-on script, you may want to know who is actually running the script to access user specific folders or...
Outputting Calculated Properties
Format-Table is a very convenient cmdlet to output data as table. You can pick the object properties you want to output like this: Dir |...
Finding Old Files
Occasionally, you might want to find files that are older than a give number of days to delete or backup those. A simple filter can provide that...
Working with Arrays
Creating arrays in PowerShell is easy using the comma delimiter. The next line creates an array with five elements: $myArray = 'Hello', 12,...
Converting Results into Arrays
Whenever you call a function or cmdlet, PowerShell uses a built-in mechanism to handle results: If no results are returned, PowerShell returns...
Finding Duplicate Files
Hash Tables are a great way to find duplicates. Simply use the Hash Table as lookup to see if the file (or element) was already added to the Hash...
Converting Hash Tables to Objects
Hash Tables are convenient but are not true objects. This is bad because you are unable to output the hash content to formatting cmdlets or export...