You may have already asked yourself this question. To many, Powershell (PS) may seem like an obscure command line tool that is the next generation cmd / DOS from Microsoft. Fact is though, after many years of trying, Microsoft has developed a powerful scripting environment and language that combines both OS scripting and advanced software programming capabilities. So, what are the advantages?
For one, PowerShell provides better performance because it does not require a GUI. CLI management allows you to use "headless" servers that also provides higher computing performance because the overhead of a GUI is not there. PowerShell can call all of the features exposed by the Windows (and other) operating system(s) and by the .NET framework.
PowerShell passes data across the pipeline from one command to the next using objects, allowing for easier manipulation of data and enabling a more powerful feature set.
PowerShell exposes much more functionality than the Windows management GUIs anyway. So it makes much sense to use it, because with a little work the results can be better and, just as important, reused and automated.
Finally, in most cases, PowerShell scripts are run without the need of a compiler, which means that they just work
Here are some of the things you can do with PowerShell:
- Retrieve dependencies
- Provision and configure systems for testing or deployment
- Manage these systems
- Check network connectivity
- Manage Azure services
- Add and manage Active Directory users
- Structure and pipeline complex tasks
As IT-professionals move toward full-stack knowledge at Haufe Group, throwing a software solution over the wall to the IT-operations unit is happening less and less.
More and more, whether you are a developer, a tester, or part of IT-operations, you find yourself working in teams and needing skills and tools that make managing your Dev and Ops tasks more effective. PowerShell is a tool that can help to reuse and automate tasks in-line with the principles and practices of DevOps and lean working, on Windows and now, also on Mac and Linux.
Hopefully PS already sounds like a convincing tool that can help you do your job. There are certainly alternatives to creating Powershell solutions but for operating in a Windows DevOps ecosystem, PowerShell is perhaps the best solution.
Like other "Haufe Guides" this book does not profess to contain all of the information. The purpose is to provide a good narrative and structure to help you on your PS-journey and get started with PowerShell. That being said, the book itself will lean towards "getting-started" and tasks that must be performed at Haufe Group. There will be many contextually-placed links that will take you to articles, tutorials, github repos and so on to help you continue the journey, but this is just the beginning.
- Introduction
- PS - The Basics
- Get Powershell
- Configure your PowerShellEnvironment
- PS development environments
- PowerShell Framework
- Discovery in Powershell
- Building a command repository
- Pipelining
- PS Script basics
- Prepare your script
- Create a script from cmdlets
- Refining your script
- Powershell Functions
- PowerShell Modules
- Resources