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.
Submit Live Questions
Join our virtual Mini Conference June 2+3, 2020, 5pm CEST! Below are the details. Our prerecorded sessions are live already.
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!
Here's a quick way to execute a PowerShell function remotely on one or more computers.
To wake computers from standby over the network, there is no need for external WakeOnLAN tools. Just tell PowerShell how to wake-up computers!
Code often needs to assert certain things, i.e. make sure that a folder really exists. Reusable assertions can produce much cleaner code.
Excel files are a popular data source. With the help of the free module ImportExcel, PowerShell supports reading and writing .xlsx files.
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.
To extract valuable information from raw text, the easiest way is to use built-in PowerShell parsers. This works great for tabular text.
Due to Corona/COVID-19 and its ongoing impact, psconf.eu 2020 is cancelled. We are focusing on psconf.eu 2021 (June 1-4) now.
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.
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.
PowerShell supports a powerful pipeline concept. Learn how the PowerShell pipeline works, and how you can pipeline-enable your own PowerShell functions.
Ever wanted to find files with identical content? With file hashing and a bit of cleverness, PowerShell identifies duplicate files in no time.
Out-GridView produces not just an output window. It is an extremely powerful universal dialog, and with a few tricks it becomes even better!
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.
With PropertySets, you control the visible default properties of your PowerShell functions. Learn how PowerShell makes sure users aren't overwhelmed with information.
Retrieve information about your operating system, build number, and related information.
Retrieve information about installed software and find out versions, uninstall strings, and more.
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.
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.
SecureStrings can be converted to plain text. This can be useful to prompt with masked input boxes.
Compose even complex regular expressions by using simple building blocks, and become a Regex Guru in no time.
Why not create your own PowerShell attributes? It only takes a couple of lines, and the results can be astonishing!
The Abstract Syntax Tree (AST) groups tokens into meaningful structures and is the most sophisticated way of analyzing PowerShell code.
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 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 monitor and make sure values assigned to variables and parameters meet your requirements. And they can do plenty more!
With the help of the attribute [Parameter()], you can define sophisticated PowerShell parameters that enhance usability and versatility of your functions.
Make sure your functions are indeed "Advanced Functions", and add Risk Mitigation support to make your code safer to use.
Use your favorite tool PowerShell to download and browse the conference agenda and start building your personal schedule.
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.
June 2, 2020, psconf.eu opens for the 5th time in Hannover, Germany. Here is a quick walkthrough for this years’ event.
All trainings are delivered by PowerShell expert and long-term MVP Dr. Tobias Weltner.
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...
Alle Trainings werden von PowerShell-Experte Dr. Tobias Weltner durchgeführt.
Unsere Inhouse Workshops sind stets individuell geplant, aber wir haben typische Beispiel-Workshops, mit denen Ihre Planung starten kann.
A big “Thank You!” to all the speakers who are volunteering to deliver sessions at psconf.eu 2020!
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.
Learn how to use other languages to teach PowerShell new tricks, for example how to reliably bring application windows to the front.
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.
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.
Many scripts load external DLL files to get access to more functionality. Those files can be embedded into scripts as text to remove dependencies.
Appending text to strings using “+=” is convenient but slow. Learn how to do string manipulation without slowing down PowerShell.
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.
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.
In code reviews, one common mistake stands out: using += on arrays. Learn how to 3.5x speed up your PowerShell scripts by avoiding +=.
By turning PowerShell code into tokens and structures, you can find errors, auto-document your code, and create powerful refactoring tools.
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.
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.
Discover the awesome content and sessions presented at psconf.eu 2020, delivered by renown PowerShell Experts from around the world!
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).
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.
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.
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.