While it’s normally best practice to not display anything on the host and to batch as much as possible with PowerShell; sometimes you need a UI. Here’s a pair of functions to display a menu on the screen, automatically number the possible responses and only return when a valid choice is made. Continue reading “PowerShell: Display A Menu And Get a Valid Choice”
Hi. In this part I add some text logging to the script. Not much else I can say really 🙂 Continue reading “PowerShell: Synchronizing a Folder (and Sub-Folders) Part 10”
The title was originally built around “Teach A Man A Cmdlet and he PowerShells for a day; Teach a Man to Use Get-Command and he PowerShell’s for a lifetime.” But it got more and more clumsy and convoluted so I finally decided that there really was a limit to my own cleverness.
PowerShell really is quite clever though and makes it really easy to work out the cmdlets you want to use for any task. Continue reading “PowerShell: Tutorial 2, “Teach a Man to Fish” or Working Out The Command You Need”
Hi. Here’s another update on the Sync-Folder script. The script itself is at that link but in this post I go over the changes I made and how they work.
The main addition is the support for -WhatIf (so you can test the script runs without it making changes). In addition I fixed some odd bugs with the Filter and Exceptions parameters. Plus some more Verbose logging and I tidied up the script a bit (removing some of the cmdlet aliases and replacing them with the full commands). Continue reading “PowerShell: Synchronizing a Folder (and Sub-Folders) Part 9”
When I thought about what I considered the most important, fundamental thing to learn about PowerShell I went through a couple of options; Piping? The help system and Get-Command? -WhatIf?
All useful things to learn but it has to be how everything in PowerShell is an object. It’s how you can build Really Cool Stuff from lots of simple bits and it’s also the thing that catches me out occasionally. Continue reading “PowerShell: Tutorial 1, Everything is an Object”
This is the next part detailing how the script here works. The first part detailed the rough design of the script and the main function that creates the transaction objects that are passed through the script.
This part adds some sample Task functions and the main body of the script to kick it all off. Continue reading “PowerShell: A Simple Batch Processing System, Part 2”
Hi. I’ve written a few scripts that have gotten to be quite large. In all cases they’ve needed to make a series of changes to a set of objects and log the results. It’s normally important that some of the later changes only get made if the earlier ones are successful; for example only changing the default SMTP address on a mailbox if another SMTP address was added earlier.
This series of posts will go into a decent system I’ve found for accomplishing this with some skeleton examples that are (hopefully!) easy to adapt. Continue reading “PowerShell: A Simple Batch Processing System, Part 1”