PowerShell 101 Book Update: Chapter 4 Added

This morning, I published Chapter 4 of my new book, PowerShell 101: The No-Nonsense Beginner’s Guide to PowerShell. The book now contains chapters one through four and is forty percent complete. The book will contain a minimum of ten chapters when it's completed later this year. Interested, but not ready to commit to purchasing it? Chapter 1 is available as a free download and I've created a video that demonstrates many of the concepts covered in Chapter 1. If you’re interested in purchasing Read more [...]

How to add your PowerShell blog to Planet PowerShell

Do you blog about PowerShell? If so, consider adding your blog site to Planet PowerShell which is an aggregator of content from PowerShell Community members. There are some guidelines for submission on their GitHub page so be sure to take a look at it before continuing. Instructions for adding your blog also exists on that page, but I've recently seen a number of tweets about it being too difficult or too much work. To be honest with you, if everything in IT was as easy as adding my blog to Planet Read more [...]

PowerShell 101 Book Update: First 3 Chapters Now Available

Another update to my new book, PowerShell 101: The No-Nonsense Beginner’s Guide to PowerShell is now available. The update which was published this morning added chapter 3 to the already available first two chapters. If you're interested in purchasing this book, consider buying it while it's still a work in progress. The price of the book increases slightly with each chapter that's released. Chapter 1 of the book is available as a free sample download. There's also a video available which Read more [...]

PowerShell One-Liner to Disable Active Directory Accounts and Log the Results to a SQL Server Database

The new PowerShell cmdlets that are part of the SQLServer PowerShell module that's distributed as part of SSMS (SQL Server Management Studio) 2016 make it super easy to write the output of PowerShell commands to a SQL Server database. The ActiveDirectory PowerShell module that's part of the RSAT (Remote Server Administration Tools) is also required by the code shown in this blog article. This PowerShell one-liner retrieves a list of Active Directory users who have not logged in within the past Read more [...]

Managing Altaro VM Backup with PowerShell

Recently, I decided to try to determine if there was a way to manage Altaro VM Backup with PowerShell. I figured there must be some database, files, or something that I could at least query with PowerShell. What I found is Altaro has a RESTful API and they have numerous PowerShell scripts for working with it. In Altaro version 7, there are 33 PowerShell scripts located in the "C:\Program Files\Altaro\Altaro Backup\Cmdlets" folder if you took the defaults during the installation, otherwise they're Read more [...]

Video: PowerShell 101 – The No-Nonsense Beginner’s Guide to PowerShell

Last week, I announced a new book for PowerShell beginners that I'm self-publishing. I decided to create a short video about the book and cover the topics from Chapter 1. https://youtu.be/aU4qw13zgQc The video can also be found on YouTube.com The book (PowerShell 101: The No-Nonsense Beginner’s Guide to PowerShell) can be found on Leanpub.com. µ Read more [...]

Announcing a new book: PowerShell 101 – The No-Nonsense Beginner’s Guide to PowerShell

I've contributed, co-authored, performed technical reviews and edits on a number of PowerShell books. I also speak to a lot of beginners at user group meetings and technology events such as PowerShell Saturday's and SQL Saturday's. One thing I've found is there are still a lot of IT Pro's out there who are reluctant to learn PowerShell and they're often overwhelmed by information overload when they do try to learn it. What I mean by that is those of us who are fired up about going out there and educating Read more [...]

A Great Backup Solution Just Got Better: Altaro VM Backup Version 7

Earlier this week, Altaro released a new version (version 7) of their award winning VM Backup software. Version 7 contains a number of new features that are compelling enough to warrant an upgrade if you have a previous version installed in your environment or a new installation if you're currently using a different product for your disaster recovery solution. The top new features in version 7 include: Augmented Inline Deduplication Boot from Backup Support for Windows Server 2016 For Read more [...]

Beware of the PowerShell Update-ModuleManifest Function

I recently presented a session for the Mississippi PowerShell User Group on PowerShell Non-Monolithic Script Module Design. While preparing for that session, I discovered that a problem I had previously experienced with Update-ModuleManifest when trying to update the FunctionsToExport section when FormatsToProcess is specified appeared to be resolved in PowerShell version 5.1 (I'm running build 14393). The details of this bug can be found here. I also noticed that Nicholas Getchell had written about Read more [...]

Using PowerShell to Audit Antivirus Updates on your Servers

How often do you check to make sure that things like antivirus has received the latest definition files on all of your servers? There's probably some centralized GUI interface somewhere that you could log into and check. The antivirus product itself may even have some sort of notification system that sends alerts if the updates fail. Both of those options provide data in a format that can't be worked with and what happens if something falls through the cracks? Are you willing to bet your job and Read more [...]

Start a Blog to Build your Brand and Share your Knowledge

There are many reasons to blog. One of the main reasons that I blog is to document things for myself because if I don't do something for six months, it's highly unlikely that I'll remember all of the details. Sure, maybe I have the code on GitHub, but many times there are caveats to performing some task or implementing something that wouldn't necessarily be documented in the code itself. While I write my blog articles as documentation for myself, sharing them publicly helps me to make sure that Read more [...]

Renewed as a SAPIEN Technologies MVP for another year!

I received notification earlier this week that I've been renewed for another year (2017) as a SAPIEN Technologies MVP. I'm honored to be associated with SAPIEN Technologies since much of their focus is on PowerShell tools. If you're not familiar with their products, take a look at them on their website. They offer a 45 day evaluation for each of their products so you can try them out before you buy them. They also have forums where you can find assistance with not only their products but general Read more [...]

No PowerShell Cmdlet to Start or Stop Something? Don’t Forget to Check for Methods on the Get Cmdlets

Many PowerShell commands return output in the form of objects (some return nothing at all). An example of this is shown in the following example where properties and their corresponding values are returned. CommandType is a property and Cmdlet is the value for that particular property for each of the results: Keep in mind that what is shown in the default output may not be the actual property names (compare the default output from Get-Process to the properties Read more [...]

Loop through a collection of items with the Pester TestCases parameter instead of using a foreach loop

One of the huge benefits of attending in-person technology events is getting to network with others. While at the MVP Summit last month I had a chance to demonstrate some of my PowerShell code and Pester tests to Jim Truher.  I was developing the code and tests for a session to present for the PowerShell Virtual Chapter of SQL PASS (the code and a video of that presentation can be found here). In one of my examples, I was looping through a collection of items (computer names of SQL Servers) Read more [...]

Locations for Comment-based Help in PowerShell Functions

One of the first things you'll learn when beginning with PowerShell is how to use the help system. When working from the PowerShell console, I use the help function and omit the Name parameter since it's positional and then specify the name of the cmdlet that I'm looking for help on as shown in the following example. This same type of standardized help can be added to your PowerShell functions and scripts which makes it easy for others to learn how to use them. Read more [...]