Windows 8.1 or Server 2012 R2 To update Group Policy settings on a remote machine, use Invoke-GPUpdate, and submit the name of the computer where...
Powershell
Managing Printers
Windows 8.1 or Server 2012 R2 Both Windows 8.1 and Server 2012 R2 come with a module called “PrintManagement”. It includes all cmdlets...
Simplifying .NET Types
All PowerShell versions PowerShell uses short names for the most common .NET types. To see if there is a short name for a .NET type you are using,...
Converting Code to Uppercase
PowerShell ISE 3.0 and later To turn PowerShell code to all uppercase letters in PowerShell ISE, select the text, then press CTRL+SHIFT+U. To turn...
Mapping Drives
PowerShell Version 3 and later To permanently map a network drive, use New-PSDrive with the –Persist parameter. This parameter makes the drive...
Using System Error Colors for Output
All Versions If your script wants to output warnings or error messages, you can use Write-Warning or Write-Error. Both cmdlets will use the default...
Resolving IP Addresses (and Parameter Types, Too)
PowerShell 2.0 and later Here is a function that illustrates two things: it shows how you can limit a parameter to a given data type, and it shows...
Conditional Breakpoints
PowerShell 3.0 and later The PowerShell ISE supports line breakpoints only: they make the code stop once the debugger hits that particular line. You...
Detecting 64-bit Operating System
Windows 7/Server 2008 R2 To detect whether a script runs in a 32-bit or 64-bit environment is fairly easy: check a pointer size, and test whether it...
Creating NTFS Security Report
All PowerShell Versions If you'd like to audit NTFS permissions on your file servers, here is a suggestion how you could start. This script...
Finding Explicit Permissions
All PowerShell versions Typically, NTFS permissions in the file system are inherited. You can, however, add explicit permissions to files and...
Accessing COM Objects without ProgID
All Versions Typically, to access COM objects, these objects need to register themselves in the Windows Registry, and PowerShell needs the...
Dealing with Hidden Files
PowerShell 3.0 and later When you use Get-ChildItem to list files, by default, hidden files are excluded. To include hidden files, use the...
Changing GPO Description/Comment
GroupPolicy Module When you create a new Group Policy, you can set a comment (or description). There is no apparent way, however, to change the...
Checking PowerShell Security
PowerShell 2.0 and later This sample code finds all PowerShell scripts in a given drive, then checks the scripts for valid digital signatures, and...
Dealing with %ERRORLEVEL%
All PowerShell versions When you run native EXE console commands inside your scripts, these commands typically return a numeric return value. This...
Compacting Paths
[WindowsAPILib.Helper _i="0" _address="0" theme_builder_area="post_content" /][WindowsAPILib.Helper _i="1" _address="1"...
Get the OU from an LDAP Path
All Versions To extract certain parts from raw strings, you can often use a combination of text splitting and text substring commands. For example,...
Creating Huge Dummy Files
All PowerShell versions If you need to stress test systems, or need large dummy files for other purposes, here is some code that can create even...
Limiting Maximum String Length
All Versions To make sure output text is not excessively long, you can use logic like this to shorten text that is longer than a given maximum...
Setting Permissions in AD or Windows Registry
ActiveDirectory Module We already illustrated previously how you can use Get/Set-Acl to read and write permissions to files and folders. The truth...
Catching Errors in Native EXEs (Part 2)
All versions Here is yet another approach that you can use to detect errors emitted by console applications: $ErrorActionPreference = 'Continue'...
Replacing NTFS Permissions with SDDL Information
All PowerShell versions With Get-Acl, you can output the security information from files and folders as plain text in SDDL format (Security...
Cloning NTFS Permissions
All PowerShell Versions Here is some simple code that reads the NTFS permissions from one folder and applies the exact same settings to another....