Bill Stewart


Bill Stewart is a scripting guru who works with the Enterprise Technology Services group at Indian Health Service in Albuquerque, New Mexico. He has written numerous articles about Windows scripting and is a moderator for Microsoft's Official Scripting Guys Forum. He has also written some useful free tools for the Windows IT community, which are available from his website at

PowerShell: Why You'll Never Go Back to Cmd.exe Batch Files
Scripts have a long history on the Windows OS platform. In Cmd.exe most people call them batch files, but they are scripts nonetheless. The command-line parsing rules that Cmd.exe uses mean that some commands you enter on a Cmd.exe command line behave differently than when you put the same commands in a batch file. This is an ongoing source of confusion for those not familiar with Cmd.exe’s syntax quirks.
Presenting the PowerShell Pipeline
Little makes sense in PowerShell without an understanding of the pipeline.
PowerShell: Objects and Output
Now that you’ve started using PowerShell as an interactive command line, you’ll need to understand that there are some fundamental differences between how Cmd.exe and PowerShell process input and output.
Using PowerShell Interactively
While PowerShell is Powerful a scripting language, it’s also an interactive command shell that you can use instead of Cmd.exe.
Batch to PowerShell - Syntax Differences
In my last article, I made the argument that you should stop writing batch files (Cmd.exe shell scripts) and instead focus your efforts on learning PowerShell. In this article, I’ll describe the special characters that Cmd.exe uses and how a number of these characters work differently in PowerShell.
Break Your Batch Habit and Move to PowerShell 14
Windows PowerShell should rightly be seen as a replacement for batch file scripting (Cmd.exe shell scripting), but for some reason, many people seem to be unwilling to leave batch behind. This article begins a series that’s designed to help you break the batch habit and move forward with PowerShell.
Take Charge of Environment Variables in PowerShell
Windows PowerShell has some limitations when it comes to working with environment variables. Here are three functions you can use to overcome these limitations.
Securely resetting the Administrator account password for a computer
Resetting the Local Administrator Password on Computers 22
Resetting an Administrator account password with a Group Policy Object isn't secure. Here's how to securely reset the Administrator account password.
Enforcing Administrators group membership
Enforcing the Membership of the Administrators Group
Here's a solution for managing the members of the Administrators group on computers when you don't have an Active Directory domain or you can't use Group Policy.
Pointing out common pitfalls when running executables in PowerShell
Running Executables in PowerShell 2
Correctly constructing an executable's command line in PowerShell can be confusing. The guidelines presented here can help you avoid common pitfalls.
brass parts of a steam engine
Windows PowerShell Operators
A good understanding of Windows PowerShell's operators is a must if you want to increase your understanding of PowerShell and the efficiency of your code.
highway overpasses tinted blue
Windows PowerShell Constructs
PowerShell provides a number of language constructs that let you control the flow of your script as well as make decisions about what it should do.
bright ball of light with Active Directory object names flowing away from it
View or Remove Active Directory Delegated Permissions 1
Microsoft provides tools to remove delegated permissions, but they have some limitations. Here's a Windows PowerShell script that not only overcomes these limitations but also provides an easy-to-read list of which users or groups have delegated permissions.
White lined paper with blue inked CREATE drawn across it
Creating Custom Objects in Windows PowerShell 2
One of Windows PowerShell's most useful features is the ability to create your own custom objects on demand containing the properties you need.
sign post with many different directions, sunset in background
Use PowerShell to Handle Active Directory Paths 2
Add the Get-ADPathname.ps1 script to your toolbox and stop writing unnecessary code to parse Active Directory paths.
John Savill's Microsoft Stack Master Class

Join John Savill for the ALL NEW Microsoft Stack Master Class!

Get 30 hours of detailed instruction covering the complete Microsoft solution stack. Invest a few hours each week and become THE Microsoft expert in your organization.

Thursdays, October 8th to December 17th

John will cover topics including:

* Key Features of Active Directory for every version of Server OS, including Windows Server 2012 R2 and Windows Server 2016
* Key elements of Microsoft System Center 2012 and System Center 2012 R2 PLUS major changes in the 2016 wave
* Deploying, Migrating to, and Managing Hyper-V in Your Organization
* Implementing a Private Cloud
* Using PowerShell to Automate Common tasks
* Key Windows 10 changes including the new Start menu, Cortana, Microsoft Edge, and more
* And much more!


Enroll by October 1st and SAVE $245!



Windows Forums

The Windows IT Pro forums are moving to! Get answers to questions, share tips, and engage with the IT professional community.

Sponsored Introduction Continue on to (or wait seconds) ×