Notepad can be used to display text results. Typically, you would need to save text results to file, then have Notepad open that file. There is a...
Powershell
Magic Underscore Variable
Here is a very special (and very underdocumented) way to use PowerShell parameters. Have a look at this function: #requires -Version 2 function...
Converting Currencies
PowerShell is an extremely powerful language and can access web services and web pages. If you combine that with dynamic parameters, you get a...
Counting Pages in a Word Document
Let's assume you have a bunch of Word files and would like to know how much pages they contain. Here is a function that takes the path to one...
Bringing Window in the Foreground
PowerShell can use Add-Type to access internal Windows API functions. This way, it is easy to bring any process window into the foreground. Here is...
Process Data (Part 3)
In parts 1 and 2, you learned how a PowerShell function can process information that was submitted to parameters or piped via the pipeline. In our...
Process Data (Part 2)
In part 1 we showed how a PowerShell function can receive input both from a parameter and via the pipeline, and process it in real-time. This is the...
Processing Data (Part 1)
This is the first of the three tips showing you how a PowerShell function can accept data via pipeline or parameter. In part 1, the function...
Get UI Information for Processes
PowerShell can use UIAutomation calls to find out useful UI information about any process. You can find out whether a process accepts keyboard...
Compressing to ZIP Files
In PowerShell 5.0, Compress-Archive can easily compress files and folders to a ZIP file: PS C:\> Compress-Archive -Path c:\sourcefolder...
Quickly Scanning for Malware
If you have Windows Defender installed on your machine, you can use this PowerShell command to run a quick scan on a drive of your choice: PS>...
Enabling Telnet Client and Watching Star Wars
By default, the Telnet client is disabled on Windows systems. You can easily enable it with a one liner in PowerShell, though. Just launch a...
Enabling PowerShell Remoting with NTLM
By default, PowerShell remoting uses Kerberos authentication and works only in domain environments, and only when you specify computer names, not IP...
Validate Read-Host Input
Beginning in PowerShell 4.0, you can use validators for variable assignments. This gives you a quick and easy way of validating user input, too. The...
Restore PowerShell ISE Defaults
To restore custom settings in PowerShell ISE to factory defaults, try running these lines: $PSise.Options.RestoreDefaults()...
Fixing Remoting Bug
Have you ever tried to enable PowerShell remoting with Enable-PSRemoting, and just got an error complaining about not being able to check the...
Refreshing Icon Cache
Sometimes, Windows Explorer does not show correct icons. When you update to PowerShell 5.0, for example, both PowerShell and PowerShell ISE got new...
Formatting Text Output
If you need to return multiple items in a nicely formatted text report, here is a simple trick: get yourself an ordered hash table (supported in...
Pinging Multiple Systems Fast
Test-Connection can ping multiple computers only sequentially, and it does not let you specify a timeout. So when you need to check a large number...
Test-Connection with Timeout
The Test-Connection cmdlet implements a simple ping to check whether a system responds to an ICMP request. Unfortunately, you cannot specify a...
Correct Encoding with PowerShell Remoting
When you run a native console command via PowerShell remoting, special characters like German Umlauts will be damaged because remoting uses a rather...
Finding Current File System Path
PowerShell supports not just the file system, so you can set the current path to a different provider (Set-Location). Here is a trick that always...
Creating New Objects by Hash Table Conversion
Beginning in PowerShell 3.0, you can create pre-initialized objects by using a hash table. Simply add the properties you want to preinitialize, then...
Use Get-CimInstance with DCOM
PowerShell 3.0 added an alternative to Get-WmiObject: Get-CimInstance seems to work very similar and can retrieve information from the internal WMI...