If you’d need to find out the SID for a user name, here is a useful chunk of code that does the job: $domain = 'MyDomain' $username =...
Powershell
Test-Drive PowerShell 6 – Side by Side
PowerShell 6 can be downloaded and run side-by-side with the official Windows PowerShell. If you’d like to test-drive it, head over to...
Displaying Data in a Grid View Window Vertically
Out-GridView always produces a table with one object per line: Get-Process -Id $pid | Out-GridView Occasionally, it would be more helpful to display...
Converting Information to Culture-Specific Text
If you’d like to format information to given culture standards, this is really simple by using ToString() and the appropriate target...
Converting Culture-Specific Information
Let’s assume you received data like numbers or date as text. Whenever information is reduced to text, you are challenged with culture-specific...
Understanding Text Conversions
There are many different ways how objects can be transformed into text. In case you sometimes get confused, here is a quick refresher. Take a look:...
Allowing PowerShell Script Execution – No Matter What
Execution policy can prevent scripts from running. It is designed to be a user preference setting, so you should always be able to change the...
Comparing String Lists
In a previous example we used HashSets to compare numeric lists, and find out which elements were found in both list, or in just one list. The same...
Comparing Numeric Lists
Often a script needs to find out whether two lists are the same, or which elements are missing from a list. Instead of investing much programming...
Tagging Objects Efficiently
Occasionally you see scripts that use Select-Object to append information to existing objects. This can look similar to the code below: Get-Process...
Creating New Objects Efficiently
Adding Single Line Comments in PowerShell ISE
In the previous tip we looked at command extensions for the good old PowerShell ISE. Here is another sample that adds the CTRL+K keyboard shortcut...
Toggling Comments in PowerShell ISE
The good old PowerShell ISE exposes some expandability connectors. If you’d like to toggle comments in selected text by pressing CTRL+K, for...
Converting Hash Tables to JSON
In previous scripts we worked a lot with hash tables, and even loaded them from .psd1 files. If you need the data in a different format, for example...
Reading Data from .PSD1 Files in PowerShell 5+
In a previous tip we introduced Import-LocalizedData to read in data stored in a .psd1 file. Starting in PowerShell 5, there is a new cmdlet named...
Reading Data from .PSD1 Files
There are many ways how a script can store data information. One is especially convenient. Here is the code: Import-LocalizedData -BaseDirectory...
Understanding .NET Type Name Variants in PowerShell
PowerShell can use .NET type names, for example to convert values to a given type. Frequently, scripts use a variety of formats to define .NET...
Minimalistic Error Handling
Error handling does not necessarily have to be complex. It can be as simple as checking whether the last command executed successfully: # suppress...
Temporarily Disabling PSReadLine Module
Beginning in PowerShell 5, the PowerShell console features colorized text, and there is a wealth of other new features provided by a module named...
Using Windows EventLog for Script Logging
Updated Free Tool: PowerShell Scripts for SQL Server 4.0: Added 13 Scripts
IDERA released an update of its free tool PowerShell Scripts for SQL Server. This release supports SQL Server 2016 and 2017, and Windows Server...
Getting File Extension
By converting a path to a FileInfo object, you can easily determine the path parent folder or file extension. Have a look:...
Working with [FileInfo] Object
Often, code needs to check on files, and for example test whether the file exists or exceeds a given size. Here is some commonly used code: $logFile...
Script Logging Made Easy
Beginning in PowerShell 5, you can use Start-Transcript in any host to log all the output created by your script. Here is how you can easily add...