PowerShell ISE In the PowerShell console, you can pipe commands to the old-fashioned “more.com”, or better yet, to Out-Host...
Powershell
Categories
- Free tools
- SQL Compliance Manager
- SQL Defrag Manager
- SQL Diagnostic Manager for MySQL
- SQL Diagnostic Manager for SQL Server
- SQL Diagnostic Manager Pro
- SQL Inventory Manager
- SQL Query Tuner for SQL Server
- SQL Safe Backup
- SQL Secure
- SQL Workload Analysis for SQL Server
- Uptime Infrastructure Monitor Formerly Uptime
Measuring Website Response (and Execution Times)
PowerShell 3.0 and later Sometimes it is important to know just how long a command takes. For example, to monitor web site response times, you could...
Exporting Out-GridView Content
PowerShell 3.0 and later Out-GridView is a very useful cmdlet to output results to an extra window. Unlike outputting to the console, Out-GridView...
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...
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...
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...
Getting the Number of Lines in a String
All PowerShell Versions Here is a clever trick how to find out how many lines a string (not a string array!) contains: $text = @' This is some...
Finding Minimum and Maximum Values
All PowerShell Versions To find the smallest and largest item in a range of numbers, use Measure-Object: $list = 1,4,3,1,3,12,990 $result = $list |...
Getting Files with Specific Extensions Only
All PowerShell versions When you use Get-ChildItem to get a list of files, you may have noticed that the -Filter parameter occasionally returns more...
Testing UNC Paths
Test-Path can test whether or not a given file or folder exists. This works fine for paths that use a drive letter, but can fail with pure UNC...
Exporting and Importing Credentials in PowerShell
Credential objects contain a username and a password. You can create them using Get-Credential, and then supply this object to any cmdlet that has...
Use $PSScriptRoot to Load Resources
Beginning in PowerShell 3.0, there is a new automatic variable available called $PSScriptRoot. This variable previously was only available within...
Getting More Than 1000 Active Directory Results
By default, Active Directory returns only the first 1000 search results when you use an ADSISearcher. This is a security mechanism designed to...
Converting Binary SID to String SID
Active Directory accounts contain the SID in binary form. To convert the byte array into a string representation, use a .NET function like this: #...
Converting Excel CSV to UTF8
When you export Microsoft Excel spreadsheets to CSV files, Excel by default saves CSV files in ANSI encoding. That's bad because special...
Change Order of CSV Columns
If you have a CSV file and would like to change the order of columns, simply import it into PowerShell, use Select-Object to change the order, and...
Check Windows License Status
In a previous tip we explained how you can use slmgr, a built-in VBScript, to check Windows licensing state. The core information used by this...
Stripping Decimals Without Rounding
When you divide numbers and just want the decimals before the decimal point, you could cast the result to integer. However, this would also round...
Removing Multiple White Spaces
Removing multiple white spaces from text is easy in PowerShell. Simply use -replace operator and look for whitespaces ("\s") that occur...
Sending Emails with Special Characters
PowerShell has built-in support for sending emails: Send-MailMessage! All you need is an SMTP server. However, with standard encoding you may run...
Ignoring Empty Lines
To read in a text file and skip blank lines, try this: $file = 'c:\sometextfile.txt' Get-Content $file | Where-Object { $_.Trim() -ne...
Writing Registry Key Default Values
If you need to set the default value for a registry key, you can use either of these approaches: Set-ItemProperty -Path HKCU:\Software\Somekey -Name...
HTML-Scraping with RegEx
To scrape valuable information from websites with PowerShell you can download the HTML code and then use regular expressions to extract what you are...
Case-Sensitive Hash Tables
PowerShell hash tables are, by default, not case sensitive: PS > $hash = @{} PS > $hash.Key = 1 PS > $hash.keY = 2 PS > $hash.KEY 2 If...
Making sure PowerShell scripts run in 32-bit
If you are using code that can only run in a 32-bit environment (i.e. using old database drivers or COM objects), here is a solution that will...
Configuring WSMan Remotely for multiple computers
When working remotely in a peer-to-peer or cross-domain scenario, you will have to add all the computers you'd like to communicate with into the...
Getting Process Based On Window Title
It isn't always easy to pick the right process because the process ID or process name may not be known or ambiguous. If the process has a window...
Checking Whether Hash Table Contains Key
In the previous tip, you used a hash table to translate input values. However, unlike Switch-statements, Hash Tables have no "default" so...
List Hidden Files
Did you notice that Dir, ls or Get-ChildItem do not return hidden files? To see hidden files, you need to specify the -force parameter: Dir...