Splatting is a great way of forwarding parameters to another cmdlet. Here is an example that can be used to encapsulate WMI calls and make them...
ps1
Submitting Parameters through Splatting
Splatting was introduced in PowerShell 3.0, but many users still never heard of this. It is a technique to programmatically submit parameters to a...
Getting Group Membership – Fast
If you need to find out the Active Directory groups your user account is in, typically you would query the Active Directory, and you would have to...
Setting Registry Permissions
Setting permissions for Registry keys isn't trivial. With a little trick, though, it is no big deal anymore. First, open REGEDIT and create a...
Blocking Administrator Scripts
If you know that your script requires Administrator privileges, then you should add this to the top of your script: #requires -runasadministrator...
Removing Selected NTFS Permissions
Maybe you need to remove some permission settings from NTFS permissions. Let's assume you want to remove all permissions for a specific user...
PowerShell God Mode
Before you can run a PowerShell script, the execution policy needs to allow this. Typically, you would use this line to enable script execution:...
Checking Windows Updates
To check all installed updates on a Windows box, there is a COM library you can use. Unfortunately, this library isn't very intuitive to use,...
Getting Free Cheat Sheets
There are two great sources for PowerShell cheat sheets. One is the set of cheat sheets created by powershellmagazine.com which was just updated to...
Start to Look at DSC
Desired State Configuration (DSC) is a new feature in PowerShell 4.0. With DSC, you can write simple configuration scripts and apply them to the...
Compiling Binary Cmdlets
PowerShell functions can mimick all the features found in a true binary cmdlet--but PowerShell functions are plain PowerShell code, so anyone can...
Adding and Resetting NTFS Permissions
Whether you want to add a new NTFS access rule to a file or turn off inheritance and add new rules, here is a sample script that illustrates the...
Converting Text Arrays to String
Occasionally, text from a text file needs to be read and processed by other commands. Typically, you would use Get-Content to read the text file...
ISE Bug Locks Debugger
There is an obscure bug in the PowerShell ISE that may dead-lock the debugger. It affects PowerShell version 3.0 and 4.0. Here is a test script:...
Bulk Renaming Object Properties
Occasionally, it may become necessary to bulk rename object properties to create better reports. For example, if you retrieve process objects, you...
Fixing Display in Excel Reports
When you send information to Microsoft Excel, it is converted to text using the built-in .NET ToString() method. This method typically does not...
Creating Excel Reports
PowerShell objects can easily be opened in Microsoft Excel. Simply export the objects to CSV, then open the CSV file with the associated program...
PowerShell does not support JSON Data Types
By default, any object created from JSON uses String as a data type: $json = @" { "Name": "Weltner", "ID" :...
Use JSON to Create Objects
JSON is describing objects, similar to XML--but a lot easier. JSON allows for nested object properties, so you can retrieve information from various...
Getting Variable Value in Parent Scope
If you define variables in a function, then these variables live in function scope. To find out what the value of the variable is in the parent...
Updating Windows Defender Signatures
Windows 8.1 comes with a ton of new cmdlets. One of them can automatically download and install the latest antivirus signatures for Windows...
Automation via Keystroke and Mouse Click
Occasionally, the only way of automating processes is to send keystrokes or mouse clicks to UI elements. A good and free PowerShell extension is...
Showing WPF Info Message
WPF (Windows Presentation Foundation) is a technology that enables you to create windows and dialogs. The advantage of WPF is that the window design...
Sending Email via Outlook
Of course you can send emails directly via SMTP server using Send-MailMessage. But if you want to prefill an email form in your default MAPI client,...