Making functions *really* read-only
Over at the excellent PowerShell Team Blog, Bruce Payette wrote about Controlling PowerShell Function (Re)Definition. However, making a function constant does not prevent it from being shadowed in child scopes. Given that a child scope is created in any script, new function definition or script block, this makes it very…
Updated get-bufferhtml
A while back, I posted an article: Console screen grabs in html. I fixed some bugs and added a couple of new features to the script get-bufferhtml.ps1, and have updated the article with examples. Enjoy!
Webserver and RSH in PowerShell
Ever wanted to control a PowerShell session from a web browser or curl/wget on another machine? Yes? Well it surprisingly simple using PowerShell to script the System.Net.HttpListener. Here’s a working example with some genuine uses (well useful for me). I’ll leave all the security and risk concerns as an exercise…
Running pipelines in the background
In the unix world, we’re used to being able to run the different commands in a pipeline in different threads/processes. This is usually a lot more efficient when the producer/consumer rates vary, and makes use of multiple cores/cpus. For example, cmd1 | cmd2 will run the two commands in separate…
Banners
In the old days, when you printed something out, you’d have to wander down to the print room and find your output in a stack of fanfold with the job name printed as a large banner on the top. I miss those days so I wrote a banner script to…
Alternate Data Streams
NTFS has the ability to associate multiple data streams (aka forks) to a file. It’s not very well supported in most Microsoft tools and not very well known, but I use them quite a bit for associating metadata with files. Unfortunately, PowerShell (or rather .NET) doesn’t support them very well.
Pipe or no pipe?
Many built-in cmdlets take input from the pipe, but alternatively let you specify an input with the -InputObject parameter. An example is the Get-Member cmdlet. I want to be able to do this with my own functions, but as far as I can tell, there is no built-in mechanism for…
Hashes and properties
I really like the way that PowerShell handily formats pipeline objects when displaying them in the console, eg get-childitem in a file system directory returns a collection of file objects and the output is like the old DOS dir command. Additionally, I really like the way that hashes behave like…
Getting normality back
The PowerShelling that I do mostly involves messing around the console window – dimensions, colours, title, etc. I wanted an easy way to get normality back so I added this to my $PROFILE. Nothing fancy or clever, but here it is:
Space Invaders with sound!
After yesterday’s attempts to make noises, I added basic sound support to psinvaders. On my setup, it seems that I can only play one sound at a time, so a new sound stops a previous, and it crackles, but that could be because of poor sound virtualisation in Parallels Desktop…