A quick and dirty approach for counting files could be this: (Get-ChildItem -Path c:\windows).Count However, it would produce some memory load...
powertips
Uncovering TinyUrls’ True Origin
URL shortening is great for Twitter messages but hides the origin. Would you really trust http://bit.ly/e0Mw9w? Here is a simple approach that lets...
Creating Colorful Weather Report
In the previous tip we explained how you can retrieve weather forecast data using Invoke-WebRequest. This was pure black-and-white text. To get a...
Get Weather Forecast
Invoke-WebRequest can easily retrieve web page content for you. If you run it without the –UseBasicParsing parameter, the HTML is even parsed...
Avoid Read-Host
Do you use Read-Host to receive user input? If you do, rethink. Read-Host always prompts a user, and there is no way to automate scripts that use...
Using Online Help
PowerShell does not ship with help files, and installing help files locally requires Administrator privileges. A much easier approach can often be...
Outputting and Assigning at the same time
In the previous tip we talked about logging script results, and how you can assign values and at the same time output the assigned values by using...
Logging Script Output
There are numerous ways to log script output but one especially lazy technique is to run Start-Transcript. In PowerShell 5, this cmdlet is supported...
Installing Modules in PowerShell Core on Linux
When you’d like to install modules for all users from the PowerShellGet repository, you need Administrator privileges. On PowerShell Core on...
“Braces Secret” with PowerShell.exe
Here is a little secret that applies to powershell.exe when it is called from within PowerShell or PowerShell Core: when you run powershell.exe and...
Parsing Distinguished Names
Distinguished names are strings, and strings contain powerful ways of parsing data. The most powerful yet simple approach is the Split() method....
Auditing Logons
Have you ever wondered whether someone has logged into your PC while you were away? In a previous tip we explained how you can examine the rich...
Finding UAC Elevations
The Windows “Security” log contains rich audit information. By default, it logs all requests for privilege elevation which occurs when...
How to Correctly Wrap Multiple Results
Whenever a PowerShell function needs to return more than one kind of information, it is important to wrap them as objects. Only then will the caller...
Explore WMI
Get-WmiObject and Get-CimInstance both can provide you with a lot of valuable information, provided you know the name of WMI classes to query. Here...
Registering Default PowerShell Repository
If you use the PowerShellGet module (which ships by default on Windows 10 and Server 2016), you can easily download and install shared PowerShell...
Find Installed Software
Most installed software registers itself in one of four places inside the Windows Registry. Here is a quick PowerShell function called...
Disable OneDrive in Windows 10
Are you also irritated by the OneDrive icon found in the navigation tree in explorer? If you never use OneDrive, here are two easy-to-use PowerShell...
Alternate Get-Service
The cmdlet Get-Service has a number of drawbacks. For example, there is no parameter to filter running or stopped services, and the results do not...
Robocopy Light
Robocopy.exe is an extremely powerful and versatile built-in command to copy files efficiently from one location to another. Unfortunately, this...
Create Summary Objects for Inventory
Beginning in PowerShell 3, a PSCustomObject can easily combine valuable information that you gathered from different sources. Here is an example...
Scraping Quotes from WikiQuote
Here is a fun script that may not work forever. It takes one or more topics you choose, then returns one or more random quotes taken from the...
Controlling Audio (Mute and Volume)
Ole Morten Didriksen has dug out some API calls that enable audio volume control (https://gist.github.com/oledid). With this, it is trivial from...
A better Get-History
When you type “h” in PowerShell, you see the history of commands you entered during your session. Inspired by Pratek Singh...