With PowerShellGet, you can easily share PowerShell code. Go to www.powershellgallery.com and download the MSI installer to install PowerShellGet if...
Powershell
Identifying Special Characters
If you must ensure that a string contains only a given set of characters, try this: $text = 'tobias.weltner' $hasOtherCharacters = $text...
Inserting Text into String
Use Insert() to insert new text into an existing string at a given position. Here is an example: $text = "Server failed" 1..100 |...
Dealing With Long File Names
The Windows file system often has issues with file paths longer than 256 characters. Provided you followed our tips and installed PowerShellGet, you...
Colorizing PowerShell Console
In PowerShell 5.0, when you enter code into the PowerShell console, the tokens get colorized, much similar to the PowerShell ISE interactive...
Check PowerShell Gallery Code
In the previous tip we introduced the PowerShell Gallery and showed how to download content (scripts and modules). Since the PowerShell Gallery is a...
Using PowerShell Gallery
The PowerShell Gallery is a public repository for PowerShell scripts and modules. It is entirely managed by cmdlets. Before you can use the...
Nested PowerShell Transcripts
In previous versions of PowerShell, session logging (transcripts) were supported only in the PowerShell console, and there could only be one...
Logging PowerShell Sessions
PowerShell always supported session logging in the PowerShell console. Simply enter Start-Transcript to log all input and output to a text file....
Ad-hoc Debugging in PowerShell ISE
Beginning with PowerShell 5.0, you can break into the debugger any time (in the PowerShell ISE). Simply press CTRL+B to invoke the debugger while a...
Revealing Function Source Code
Many of the PowerShell commands are made out of functions. Here is how you can peek into the source code of any function: (Get-Command...
Finding Useful .NET Types
You may have heard about "type accelerators": they are shortcuts for the long .NET type name: PS> [XML] IsPublic IsSerial Name BaseType...
Automatic Unrolling Can Fail
Beginning with PowerShell 3.0, there is a new feature called "Automatic Unrolling": when you specify a property or method on an array, then the...
New Where-Syntax
In PowerShell 4.0 and better, there is a new alternative to the Where-Object cmdlet: $all = Get-Service $all | Where-Object { $_.Status -eq...
Create New XML Item Programmatically
In a previous tip we explained how you can clone an existing XML item to add a new item. This works only when there are already some items in the...
Remove an Item from an XML Document
Removing items from an XML document is almost trivial: you use XPath to identify the node you want to remove, then remove it. Once you save the XML...
Adding New Nodes to an XML Document
If you need to add new items to an XML document that already contains such items, the easiest way is to search for an existing item, then clone it....
Updating XML Content Using XPath
You can use Select-Xml to select content from an XML file, and then change or update its values. This is very powerful. You just need to get...
Updating XML Content
If you need to make changes to an existing XML document, for example to update inventory data, the easiest way is to load the document into an XML...
Reading XML Content
Reading XML formatted text is easy when you use an XML object for it. With its method Load(), you can read in content from a file path or a URL. In...
Designing XML Documents
Today we start a little mini series about XML. To create sample data to play with, you will first create a well-formed XML. While you can create XML...
Finding Out UTC Time
When you work in a global environment, it sometimes becomes necessary to translate the local time to UTC (Universal Time). The conversion is done by...
Fast String Operations
String concatenation is a frequent thing in scripts but when you use the "+=" operator to append text to a string, this slows down your...
Parse an Exact Date
If you need to parse a date or time information out of raw text, and if the date and time format does not adhere to the standards of your operating...