Let's assume you have a bunch of scripts (or pictures or log files or whatever) in a folder, and you'd like to rename all files. The new file name...
powertips
Getting DateTaken Info from Pictures
If you'd like to reorganize your picture archive, then here is a piece of code that reads the "DateTaken" information from picture...
Reading Installed Software Remotely
Most software registers itself in the Registry. Here is a piece of code that reads all installed software from the 32-bit and 64-bit hive and works...
gpupdate on Remote Machines
To run gpupdate.exe remotely, you could use a script like this: function Start-GPUpdate { param ( [String[]] $ComputerName ) $code = { $rv = 1 |...
Getting Database Connection String
Have you ever been puzzled just what the connection string would look like for a given database? When you create a new data source in Control Panel,...
Use Splatting to Encapsulate WMI Calls
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...
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...