Have you ever needed to write some file, but the need for making sure the file size didn’t get out of hand made you have to write a ton of extra code? This is a very typical scenario when writing log files for instance. Out-File2 got you covered! (more…)
Month: April 2015
Get-Ipv4SubnetInfo
This function will take an IP address and either a subnet mask, or a mask length, and return a custom object with information about that subnet. The information you get is basic stuff like network address, the first and the last usable addresses, the broadcast address etc. But it will also tell you the class of the address, as well as if it’s a private address or not. If run without any parameters it will try to get the needed information from the host you are running it on. (more…)
Quick tip: Conditional logic based on Parameter Set Name
When writing advanced functions with two (or more) parameter sets, sometimes you need to use conditional logic based on what parameter set is in use. This can be achieved easily by using the built-in PSCmdlet variable. (more…)
Quick tip: Dynamically create and use variables
Creating and using variables in PowerShell is simple. Unlike most other languages you don’t need to initialize a variable before use – you don’t even need to type them; PowerShell will attempt to set the type based on the value you give it. Because they are so simple to use, it’s easy to forget that we actually have a set of cmdlets for working with variables. (Get/Set/New/Clear/Remove-Variable) But that’s ok, they are seldom needed. But in this quick tip I will show you how to create and use variables dynamically, and then they come in handy indeed. (more…)
Time your script
I’m back with another set of small helper functions. This time it’s all about timing your script. Sure, it’s not that difficult to do manually – just get the time when it starts, and when it ends, and calculate the running time. It might not look pretty, but it works. With this functions though, it’s even easier! (more…)
Test-Function
This is just a little helper function that will help you if you have a prerequisite of certain 3rd-party functions being loaded for your script to work. It will either give you are TRUE/FALSE, or a list of the missing functions. Stick it in somewhere at the beginning of your script, and give it an array of functions to test for, and handle the result however you like. (more…)
Get-Random vs System.Random
In the process of learning PowerShell it is customary to hear people say that you shouldn’t re-invent the wheel; if there is a native command for it, you should use that. And I agree. But there is a case to be made for taking the time to properly explore all the different options available to you. For instance when coding for a specific version of PowerShell, or if speed is important. This post will discuss the latter; specifically a comparison of the native command for generating random numbers (Get-Random) and using the .NET class System.Random. (more…)
Get-MacAddress
Another small function from me today. And another one that I can’t take credit for. I found this one on poshcode, and just did some minor tweaking to it. It sends an ARP request to get the MAC address from an IPv4 address. (more…)
Get-MacAddressVendor
This little function uses the free API from www.macvendorlookup.com to lookup vendor information for a MAC Address. It’s really quite simple, and easy to use. It only have the one parameter; MacAddress, which defaults to the MAC address of the first network interface that is in use. (more…)
Encode/Decode Base64Url
As is often the case, when working on a project I end up needing some sub-task done and search the web to see if someone have done it before. In this particular instance I couldn’t find any ready-made solutions for PowerShell, but I did find that someone had written a couple of functions in c# that did exactly what I needed. Luckily, translating from c# to PowerShell isn’t that hard, so I thought I’d share the functions I wrote (translated) with you. (more…)