Here is a list of the latest blog posts we have published. You can also visit our Archive to see all tags. By clicking a tag you can further refine your search.
Cloud, Azure and DSC
Watch sessions about mindblowing and fun PowerShell techniques, learn advanced know-how, and meet us in our live Q&A!
PowerShell Deep Shit
Watch sessions about mindblowing and fun PowerShell techniques, learn advanced know-how, and meet us in our live Q&A!
PowerShell 7
Watch our sessions related to PowerShell 7, PowerShellGet, future paths, and general guidance, and meet us in our live Q&A!
Pester and ScriptAnalyzer
Watch our sessions related to Pester and PowerShell ScriptAnalyzer, and meet us in our live Q&A!
PowerShell IoT (and GUIs, too)
Ever wanted to control hardware and robots? Interested in Yupyter Notebooks? Want to Create GUIs?
Auto-Learning Auto-Completion
Increase usability for your PowerShell functions by adding automatic parameter completion that learns from the user.
Setting Registry Values (Smart)
My Chrome browser was causing high CPU load. By setting a bunch of registry values, that was easy to fix - thanks to a clever PowerShell hack.
psconf.eu Virtual Mini Conference
Join our virtual Mini Conference June 2+3, 2020, 5pm CEST! Below are the details. Our prerecorded sessions are live already.
psconf.eu Virtual Mini Conference
Join our virtual Mini Conference June 2+3, 2020, 5pm CEST! Below are the details. Our prerecorded sessions are live already.
Using Performance Counters
High CPU load heats up systems, costs power and may be an indication of rogue software. Learn how to automate CPU load monitoring with performance counters!
Running Functions Remotely
Here's a quick way to execute a PowerShell function remotely on one or more computers.
Wake On LAN
To wake computers from standby over the network, there is no need for external WakeOnLAN tools. Just tell PowerShell how to wake-up computers!
Using Assertions
Code often needs to assert certain things, i.e. make sure that a folder really exists. Reusable assertions can produce much cleaner code.
Reading and Writing Excel Files
Excel files are a popular data source. With the help of the free module ImportExcel, PowerShell supports reading and writing .xlsx files.
Discarding Output
If you'd like to discard unwanted output from commands, understanding and managing output streams is key. And if all else fails, you can always temporarily disable Out-Default.
Parsing Text
To extract valuable information from raw text, the easiest way is to use built-in PowerShell parsers. This works great for tabular text.
Measure Windows Performance
Windows comes with a built-in performance assessment tool. It can be used to compare system performance, and you'll also learn a lot about PowerShell techniques.
Creating Pipeline-Aware Functions
There are a number of ways how your PowerShell functions can accept pipeline input. Pipeline-aware functions unleash the real flexibility of PowerShell command composition.
Understanding PowerShell Pipeline
PowerShell supports a powerful pipeline concept. Learn how the PowerShell pipeline works, and how you can pipeline-enable your own PowerShell functions.
Finding Duplicate Files Fast
Ever wanted to find files with identical content? With file hashing and a bit of cleverness, PowerShell identifies duplicate files in no time.
Universal Dialog
Out-GridView produces not just an output window. It is an extremely powerful universal dialog, and with a few tricks it becomes even better!
Understanding PowerShell Modules
Almost all PowerShell commands live in modules, and by adding new modules to PowerShell, you can easily add more commands. Here is all you need to know about PowerShell modules.
Using PropertySets
With PropertySets, you control the visible default properties of your PowerShell functions. Learn how PowerShell makes sure users aren't overwhelmed with information.
Operating System Info
Retrieve information about your operating system, build number, and related information.
Installed Software
Retrieve information about installed software and find out versions, uninstall strings, and more.
Validate Anything
Typecasts can be used to easily validate complex input such as IP addresses or dates. You may want to compliment this with simple pattern checks.
Testing Hacked Passwords
Secure passwords must be guaranteed to not be exposed to hackers and dictionary attacks. With a webservice, you can test any password safely for compromises.
Converting SecureStrings
SecureStrings can be converted to plain text. This can be useful to prompt with masked input boxes.
Validate IPv4 Addresses
Compose even complex regular expressions by using simple building blocks, and become a Regex Guru in no time.
Creating Custom Attributes
Why not create your own PowerShell attributes? It only takes a couple of lines, and the results can be astonishing!
Abstract Syntax Tree
The Abstract Syntax Tree (AST) groups tokens into meaningful structures and is the most sophisticated way of analyzing PowerShell code.
Argument Completion Attributes
Enable argument completion for your own function parameters and make them so much easier to use! Some lesser-known attributes can help you.
Transformation Attributes
Transformation attributes are a sophisticated way to convert one data type into another. Whenever built-in type conversion fails, transformation attributes can perform the required transformation.
Validation Attributes
Validation attributes monitor and make sure values assigned to variables and parameters meet your requirements. And they can do plenty more!
Designing Professional Parameters
With the help of the attribute [Parameter()], you can define sophisticated PowerShell parameters that enhance usability and versatility of your functions.
Creating Safer PowerShell Functions
Make sure your functions are indeed "Advanced Functions", and add Risk Mitigation support to make your code safer to use.
Browse Agenda
Use your favorite tool PowerShell to download and browse the conference agenda and start building your personal schedule.
Understanding Attributes
Attributes can add powerful functionality to your PowerShell code and shorten your code considerably. Let's discover un(der)documented PowerShell attributes and use them to control PowerShell.
Walkthrough
June 2, 2020, psconf.eu opens for the 5th time in Hannover, Germany. Here is a quick walkthrough for this years’ event.
Class Types
While our inhouse trainings are always individual, we have a number of sample packages that you can start with. We’ll gladly compose a perfect individual training for you - with you.
PowerShell Essentials (2-Day)
This is our popular PowerShell boot camp for all IT staff, even those that only occasionally run a PowerShell one-liner. The goal is...
Beispiel-Workshops
Unsere Inhouse Workshops sind stets individuell geplant, aber wir haben typische Beispiel-Workshops, mit denen Ihre Planung starten kann.
Detecting Key Presses
Wouldn’t it be nice for scripts to detect when a key is pressed? Pressing a key could add a pause to scripts, exit loops prematurely, or skip loading things in your profile script.
Extending PowerShell with VBScript and CSharp
Learn how to use other languages to teach PowerShell new tricks, for example how to reliably bring application windows to the front.
Install PowerShell 7
PowerShell 7 is the new cross-platform version of PowerShell and can be installed on a wide range of operating systems, including Windows, Linux, MacOS.
Speeding Up Group-Object
There is a design flaw in Group-Object. With a workaround, your scripts can be up to 50x faster and still 2x faster on PowerShell Core.
Loading .NET Assemblies From Memory
Many scripts load external DLL files to get access to more functionality. Those files can be embedded into scripts as text to remove dependencies.
Speeding Up String Manipulation
Appending text to strings using “+=” is convenient but slow. Learn how to do string manipulation without slowing down PowerShell.
Advanced Tokenizing PowerShell Scripts
The advanced PowerShell Parser turns PowerShell code into detailed tokens. Use them to auto-document, analyze or just find your scripts. You can also perfectly colorize your code.
Make Loops Stream
Traditional looping constructs like “foreach” and “do...while” cannot stream: you need to wait for all results to be done. With a simple trick, you can add streaming.
Speeding Up Arrays
In code reviews, one common mistake stands out: using += on arrays. Learn how to 3.5x speed up your PowerShell scripts by avoiding +=.
Tokenizing PowerShell Scripts
By turning PowerShell code into tokens and structures, you can find errors, auto-document your code, and create powerful refactoring tools.
Monitoring Folders for File Changes
With a FileSystemWatcher, you can monitor folders for file changes and respond immediately when changes are detected. This way, you can create “drop” folders and respond to log file changes.
Speeding Up the Pipeline
The PowerShell Pipeline is robust but tends to be slow. With a couple of tricks you can speed it up tremendously and make it as fast as classic foreach loops.
QRCodeGenerator
The module QRCodeGenerator generates a variety of QR codes. All QR codes are generated offline and not shared with any service. The module works cross-platform (Windows PowerShell, PowerShell Core).
Pinging with PowerShell
PowerShell ships with Test-Connection to ping computers but this command lacks important parameters such as a timeout. Let’s create a better ping command with a timeout parameter.
Port Testing with PowerShell
Just a few lines of code suffice to add a powerful and flexible port testing command to PowerShell. Test-PSOnePort can test a single port with a timeout - once, or continously until it responds.
Home of ISESteroids is Moving
Last week, our servers running http://powertheshell.com in the US died on us. That was a rather unpleasant surprise: our servers hosted the ISESteroids documentation and a lot of resources that built up during the past 10 years.