{"id":10614,"date":"2018-04-26T12:13:39","date_gmt":"2018-04-26T12:13:39","guid":{"rendered":"https:\/\/www.itwriting.com\/blog\/?p=10614"},"modified":"2018-04-26T12:13:39","modified_gmt":"2018-04-26T12:13:39","slug":"the-future-of-powershell","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/10614-the-future-of-powershell.html","title":{"rendered":"The Future of PowerShell:"},"content":{"rendered":"<p>PowerShell, Microsoft\u2019s scripting platform, is significant for several reasons. It is critical to Microsoft\u2019s strategy of reducing dependence on a GUI in Windows Server. It is also a key piece in automating IT administration, which is fundamental to business agility.<\/p>\n<p>The platform was invented by Microsoft\u2019s Jeffrey Snover, now Technical Fellow and Lead Architect for the Enterprise Cloud Group. The evolution of PowerShell has gone hand in hand with the company\u2019s broader strategy for Windows and Azure, guided by Snover as architect. <\/p>\n<p>PowerShell is everywhere in Azure Stack, Microsoft\u2019s packaged version of Azure for running on-premises, and presumably in the online version of Azure as well. There are an \u201caverage 472 cmdlet calls\u201d when a VM is created, according to Snover\u2019s keynote at the recent <a href=\"http:\/\/www.psconf.eu\/\" target=\"_blank\">PowerShell Europe conference<\/a> in Hanover. <\/p>\n<p>The PowerShell team is now apparently part of the Azure Management Team within Microsoft.<\/p>\n<p>What is happening with PowerShell? The main thing to understand is that Microsoft has forked the platform. Windows PowerShell is the Windows-only version, while PowerShell Core is cross-platform on Windows, Mac and Linux. Windows PowerShell is based on the .NET Framework, while PowerShell Core is based on .NET Core.<\/p>\n<p>The situation with this is odd, in that Windows PowerShell is installed by default in Windows Server and the one that most people use; but PowerShell Core is the one that is under active development. This is explained <a href=\"https:\/\/blogs.msdn.microsoft.com\/powershell\/2018\/01\/10\/powershell-core-6-0-generally-available-ga-and-supported\/\" target=\"_blank\">here<\/a>. Snover emphasised in his keynote that Windows PowerShell is done:<\/p>\n<p><a href=\"https:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2018\/04\/image-17.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"display: inline; background-image: none;\" border=\"0\" alt=\"image\" src=\"https:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2018\/04\/image_thumb-17.png\" width=\"504\" height=\"360\" \/><\/a><\/p>\n<p>Note though that PowerShell is modular, and although the Windows PowerShell engine is not being developed, new or enhanced modules will still appear. In fact, they are likely to run both on Windows PowerShell and on PowerShell Core. Like all forks, there will be some pain over compatibility versus using the latest features as the Core platform evolves.<\/p>\n<p>If you want to try PowerShell Core you can download it <a href=\"https:\/\/github.com\/PowerShell\/PowerShell\/releases\" target=\"_blank\">here<\/a>. However it is of limited use for day to day work unless you also install and activate a module called <a href=\"https:\/\/www.powershellgallery.com\/packages\/WindowsPSModulePath\/1.0.0\" target=\"_blank\">WindowsPSModulePath<\/a> which you can get from the PowerShell Gallery. This lets you use all your current Windows PowerShell modules, subject of course to compatibility. <\/p>\n<p><a href=\"https:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2018\/04\/image-18.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"display: inline; background-image: none;\" border=\"0\" alt=\"image\" src=\"https:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2018\/04\/image_thumb-18.png\" width=\"504\" height=\"395\" \/><\/a><\/p>\n<p>So what is next for PowerShell? Snover\u2019s ambition for the platform, he said, is to manage any server or service, from any client, running on any cloud (or on-premises, any hypervisor). <\/p>\n<p>Much of what is interesting is not so much new features in PowerShell itself, but additional modules or other utilities. <\/p>\n<p><a href=\"https:\/\/github.com\/PowerShell\/PSSwagger\" target=\"_blank\">PSSwagger<\/a> is helpful for creating modules: it will create a PowerShell module from a Swagger API (a popular standard for specifying RESTful APIs).<\/p>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cloud-shell\/overview\" target=\"_blank\">CloudShell<\/a> is a command shell for Azure which you can run from a web browser. <\/p>\n<p>Windows Admin Center, formerly known as Project Honolulu is a browser application for managing servers (and some desktops). You can open a PowerShell session directly from the browser. In addition, it is PowerShell that enables much of the other functionality.<\/p>\n<p><a href=\"https:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2018\/04\/image-19.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"display: inline; background-image: none;\" border=\"0\" alt=\"image\" src=\"https:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2018\/04\/image_thumb-19.png\" width=\"504\" height=\"339\" \/><\/a><\/p>\n<p>As for Microsoft\u2019s plans for PowerShell Core, Snover refers to <a href=\"https:\/\/github.com\/PowerShell\/PowerShell\/projects\/14\" target=\"_blank\">this site<\/a> which sets out the company\u2019s strategic investments. These include help system improvements, a GUI framework for the console perhaps like Curses on Linux, a mechanism for PowerShell to prompt for install (as in Bash) when a command is not found, but a module containing that command is known to exist, and Just Enough Administration (JAE) on Linux.<\/p>\n<p>At the PowerShell conference Principal Software Engineer Steve Lee talked about a PowerShell Standard Library, which itself targets .NET Standard 2.0, for module authors to use when creating modules so they will work cross-platform. <\/p>\n<h3>PowerShell and Microsoft\u2019s platform<\/h3>\n<p>One of the intriguing things about Microsoft\u2019s evolution is its embrace of both Linux and cross-platform. PowerShell is one small part of this, but fits in with that strategy. We should no longer think of Microsoft\u2019s platform as based on Windows, even though of course it mostly runs on Windows today. The OS is becoming less important as the company focuses on services and applications. <\/p>\n<p>The further implication is that cross-platform support is not just a nice-to-have feature for pieces like .NET Core and PowerShell Core, but essential for Microsoft itself as it integrates multiple operating systems in its cloud platform.<\/p>\n<p>While we tend to applaud cross-platform support as a good thing, it is not without pain. PowerShell is a case in point. Windows PowerShell is at the same time the current thing, and the thing that is no longer evolving. <\/p>\n<h3>PowerShell and IT admins<\/h3>\n<p>PowerShell is an essential skill for Windows IT admins. On Office 365, for example, there always seem to be things you can do in PowerShell that you cannot easily do though the GUI, and even where you can, it often pays to use PowerShell because you can script and automate common operations. The same is true for Azure.<\/p>\n<p>Not everyone loves PowerShell as a language. Some complain of its verbosity. It can also be prickly to work with. It is not at all English-like, making it less accessible for beginners than most scripting languages.<\/p>\n<p>It is however well suited to its purpose, which is what counts.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PowerShell, Microsoft\u2019s scripting platform, is significant for several reasons. It is critical to Microsoft\u2019s strategy of reducing dependence on a GUI in Windows Server. It is also a key piece in automating IT administration, which is fundamental to business agility. The platform was invented by Microsoft\u2019s Jeffrey Snover, now Technical Fellow and Lead Architect for &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/10614-the-future-of-powershell.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">The Future of PowerShell:<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1519],"tags":[736],"class_list":["post-10614","post","type-post","status-publish","format-standard","hentry","category-tech","tag-powershell"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/10614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=10614"}],"version-history":[{"count":2,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/10614\/revisions"}],"predecessor-version":[{"id":10618,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/10614\/revisions\/10618"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=10614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=10614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=10614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}