For the past twenty something years I have been in the IT industry and most commonly used the GUI as best practices to do administrative things and in some scenarios used VBScripts to be used map drives, printers and such things but never did any real development to automate, do things faster and more secure. Based on my experiences this approach by using GUI would more or less be different for each IT Admin when they do their daily choirs at work and more often these different approaches caused problems. I hear often IT Admins complain like “Yeah this server was not installed correctly” and if I hear IT Admin complain I ask these admins “Well do you have any documentation on how this server should be installed” and what do you think the response are commonly “Well no, but I have always done it like that!“. So based on these responses companies try to implement certification such as ITIL to be able to get better documentation of the infrastructure and action plans what to do when problems occur, and these implementations can be very expensive.
For the past year I have seen IT Admins do more Powershell scripting than ever before, at least for me it is up to 70/80% more Powershell work than I did the past 5 years. I just realized that I am much quicker to do things, I can automate and I can actually see what I am doing behind the scenes, I can even send the script to my colleague so he can see what I am doing and there is no “frustration” on how things are done. Now with Windows Server 2016 out and the new Powershell, Microsoft has implemented C# into the Powershell code, so you can actually start developing using Powershell and C#. This got me thinking that we IT Admins are on the road to becoming a real time developers. In the future we will probably see more and more of Windows Nano out there in the wild and in some cases we will not be able to do things the GUI way but rather only using Powershell, I´m not sure about it but it really feels like it. Here is an example on how Powershell runs C#
#The C# Code starts with @ sign and ends with @ sign.
$CSharpCode = @"
public class ExampleCSharp
public string ReturnTheString(string returnString)
string Combine = "Your awesome text is : " + returnString;
#Add the C# code as definition
Add-Type -TypeDefinition $CSharpCode
#Example is the public class
$ExampleCSharpCode = New-Object -TypeName ExampleCSharp
#Run the public string ReturnString to get the results
The output would be something like “Your awesome text is : Hello World“. You could basically do anything with this if you have the knowledge on creating applications using C#. There is also a way to do this the other way around, running Powershell code in C# code, but in this case I am not going to do that.
As you may see in this post that there maybe something to this, I know for my part is that if I am going to survive the IT Admin transition from the GUI I will need to learn Powershell one way or the other.
Anyways if you have any questions I have created a chat board similar to the old IRC in discord. If you want to be apart of this community and chat with other Powershell gurus then you can open this link and register. https://discord.gg/c6vBsWE