Get-Service can provide basic information about Windows services but won’t list the required privileges. Here is a small PowerShell function...
ps1
Using Variable Breakpoints (Part 2)
In the previous tip we examined Set-PSBreakpoint to create dynamic variable breakpoints in PowerShell. We showed how a breakpoint can trigger when a...
Using Variable Breakpoints (Part 1)
For debugging, variable breakpoints can be of invaluable help. They break into the debugger once a variable changes. If you know that a variable...
Hiding Properties in Return Results
By default, PowerShell shrink-fits most objects and shows only the most important properties by default: PS C:\> Get-WmiObject -Class Win32_BIOS...
Locking Workstation
PowerShell can access low-level API functions by using C#-style signatures. This way, API functions are compiled in-memory and added as new types....
Command Discovery Unleashed (Part 2)
When you enter a command in PowerShell, the engine triggers three events to actually discover the command you want to execute. This gives you a...
Command Discovery Unleashed (Part 1)
Whenever you enter a command in PowerShell, a series of events takes place to figure out where the command is located. This starts with a...
Adding Numbers to a String (Part 2)
In the previous tip we illustrated a number of ways how to safely add variables to string content. Adding variables to double-quoted text can expose...
Adding Numbers to a String (Part 1)
Double-quoted strings can easily expand variables, however this concept is not foolproof: $id = 123 # this is the desired output: # Number is 123: #...
Get-PSCallStack and Debugging
In the previous tip we have used Get-PSCallStack to determine the “nest level” of code. Let’s today take a look at how this cmdlet...
Discovering Nesting Level
Get-PSCallStack returns a so-called “Call Stack” which – in its simplest form – tells you the nesting depth of your code:...
Super Simple Random Password Generator
Here is a super simple approach to create random passwords. The approach makes sure no ambiguous characters are used but does not care about other...
Preferring WLAN Connections
When you are connected both to a LAN and a WLAN, and would like to prefer one network over the other, you can adjust the network metric. The lower...
Adding Personal PowerShell Commands to the Context Menu
You can add personal context menu commands for file types like PowerShell files. These context menu commands appear when you right-click a .ps1...
Locking the Screen with PowerShell
Here is a PowerShell function called Lock-Screen that can lock the screen and prohibit user interaction. There can be a custom message, and the...
Blocking User Input
If a PowerShell script needs to perform critical steps, and user interaction must be prohibited, you can use API calls to temporarily disable all...
Passing Arguments to Encoded Commands
Encoding PowerShell code is a great way to run PowerShell code outside the PowerShell environment, i.e. in batch files. Here is some sample code...
Deleting Registry Keys that can’t be Deleted
Deleting registry keys is typically trivial and can be done with Remove-Item. However, every once in a while, you may come across registry keys that...
Repairing PowerShell Context Menus
When you right-click a PowerShell script in File Explorer, you typically find a context menu entry called “Run with PowerShell” which...
Launching PowerShell Scripts for Dummies
Assume you want to hand a PowerShell script to an unexperienced user. How can you reliably get that person to correctly launch your script file?...
Repairing PowerShellGet Publishing
If you are using Publish-Module to publish your modules to a PowerShell repository, and you keep getting exceptions about unsupported commands, it...
Splitting Large Files in Smaller Parts (Part 3)
In previous tips we illustrated how you can use PowerShell to split files into smaller file chunks, and how to join the chunks to recreate the...
Splitting Large Files in Smaller Parts (Part 2)
In our previous tip we explained how you can split large files into smaller chunks. Today, we complete this with a function that takes these file...
Splitting Large Files in Smaller Parts (Part 1)
PowerShell can split large files in multiple smaller parts, for example to transfer them as email attachments. Today, we focus on splitting files....