Advantages-Powershell
Writing a C# tool you typically need to set up a Visual Studio project (or a project
in another IDE, or if you doing this "manually", you need at least a build script
to call to C# compiler). If for a specific task this seems to be too much overhead,
and you need just a simple one-file-source-and-program-is-all-in-one solution, a
powershell script may be the better alternative. Why you may prefer a powershell
script agains a C# solution:
- You don't have Microsoft Visual Studio or any other C# IDE installed on your machine,
or you are not used to it at all. (like a lot of system admins) the program is so
small you don't need a debugger, some simple console outputs will do it
- You don't want to separate configuration parameters for your tool into a separate
config file when you can define individual tasks, but can't determine an exact workflow,
a mixture of script and C# is ideal. Creating cmdlets or providers in C# gives your
scripts access to anything in a general way, and PowerShell becomes the glue, making
the workflow flexible to new situations.
- You have several competing overarching design ideas and you want to rapidly test
the possibilities for feasibility. Powershell's soft typing and pipeline architecture
makes it easy to ignore a lot of the vagaries of control structure and type details
and get to the heart of an algorithm.
-
You do not want to maintain more than one file