PowerShell

PowerShell（包括Windows PowerShell和PowerShell Core）是微軟公司开发的任务自动化和組態管理架構，由在.NET Framework和后来的.NET上构建的命令行界面殼層相关脚本语言组成，最初僅僅是Windows元件，后于2016年8月18日开源并提供跨平台支持。 在PowerShell中，管理任务通常由cmdlets（发音为command-lets）执行，这是执行特定操作的专用.NET类。可以将cmdlet集合至脚本、可执行文件（一般是独立应用程序）中，或通过常规.NET类（或WMI / COM对象）实例化。 UNIX系統一直有著功能強大的殼程式（shell），Windows PowerShell的誕生就是要提供功能相當於UNIX系統的命令列殼程式（例如：sh、bash或csh），同時也內建腳本語言以及輔助腳本程式的工具。 一致性的設計讓所有工具和系統資料的使用語法、命名原則都相同。 腳本語言簡單易學，而且能支援現有的腳本程式和命令列工具。 內含129種稱為cmdlet的標準工具，可用來處理常見的系統管理工作。 具備完整的擴充功能，獨立軟體商或開發者都能很容易的自行擴充。 进程间数据传递内容具有强类型特征。 PowerShell Core可以自動檢測字符編碼，自動識別Linux和Windows下的換行符，跨平台运行。 cmdlet是Windows PowerShell的指令，發音唸法為command-let。這相當於DOS或其他殼程式的內建指令，指令名稱的格式都是以連字號（-）隔開的一對動詞和名詞，並且通常都是單數名詞；例如線上查詢說明的cmdlet指令為get-help，名稱的動詞部分大致有get、set、add、remove等等（字母都不分大小寫）。 Windows PowerShell ISE是Windows PowerShell的主机应用程序。在此程序中，可以在单个Windows GUI中运行命令、编辑与测试脚本。此程序具有多行编辑、Tab补齐、上下文相关帮助、语法着色、选择性执行等功能，而且还支持从右到左的书写顺序等功能。 Windows PowerShell是以.NET Framework技術為基礎，並且與現有的WSH保持回溯相容，因此它的腳本程式不僅能存取.NET CLR，也能使用現有的COM技術。同時也包含了數種系統管理工具、簡易且一致的語法，常見如登錄資料庫、WMI。Exchange Server 2007以及System Center Operations Manager 2007等伺服器軟體都將內建Windows PowerShell。 停止所有目前執行中的以"p"字元開頭命名的程式： get-process p* | stop-process 停止所有目前執行中的所有使用大於1000MB記憶體的程式： get-process | where { $_.WS -gt 1000MB } | stop-process 計算一個目錄下檔案內的位元組大小： get-childitem | measure-object -property length -sum 將"hello, world!"字串轉為英文大寫字元，成為"HELLO, WORLD!"： "hello, world!".ToUpper() 訂閱一個指定的RSS Feed並顯示它最近8個主題： $rssUrl = "http://blogs.msdn.com/powershell/rss.aspx" $blog = [xml](new-object System.Net.WebClient).DownloadString($rssUrl) $blog.rss.channel.item | select title -first 8 尽管外部ping命令仍可用於PowerShell，但“Test-Connection”的输出是一个可以通过编程来检查的结构化对象。 While the external ping command remains available to PowerShell, Test-Connection's output is a structured object that can be programmatically inspected. Clear-Host被實現為預定義的PowerShell功能。 Available in Windows NT4, Windows 98 Resource Kit, Windows 2000 Support Tools Available in Windows XP Professional Edition and later Also used in UNIX to send a process any signal, the "Terminate" signal is merely the default curl and wget aliases are absent from PowerShell Core, so as to not interfere with invoking similarly named native commands. PowerShell 3.0 与 Windows 8 和 Windows Server 2012 集成。微软还为 Windows 7 的 Service Pack 1、Windows Server 2008 的 Service Pack 1 和 Windows Server 2008 R2 的 Service Pack 1 提供了 PowerShell 3.0。 PowerShell 3.0 是一个更大的软件包 Windows Management Framework 3.0 (WMF3) (WMF3) 的一部分。 PowerShell 3.0 是一个更大的软件包 Windows 管理框架 3.0 (WMF3) 的一部分，其中还包含支持远程协作的 WinRM 服务。 PowerShell 3.0 的新功能包括： 计划任务：可使用 Windows 任务调度程序基础架构计划任务在预定的时间和日期运行。 会话重新连接：会话可以断开并重新连接。远程会话现在能更好地应对临时网络故障。 改进了代码编写：增加了代码自动完成（IntelliSense）和代码片段。PowerShell ISE 允许用户使用对话框填写 PowerShell cmdlet 参数。 授权支持：可将管理任务授权给无权执行此类任务的用户，而无需授予他们永久性的额外权限。 更新帮助：可使用 Update-Help 命令更新帮助文档。 Release 7.4.5. 2024年8月20日 [2024年8月25日].  PowerShell LICENSE. [2017-06-10]. （原始内容存档于2022-05-11）.  Snover, Jeffrey. PowerShell and WPF: WTF. Windows PowerShell Blog. Microsoft. 2008-05-25 [2017-06-10]. （原始内容存档于2019-01-08）.  Bright, Peter. PowerShell is Microsoft's latest open source release, coming to Linux, OS X. Ars Technica. Condé Nast. 2016-08-18 [2017-06-10]. （原始内容存档于2022-04-28）.  How Windows PowerShell works. Microsoft Developer Network. Microsoft. [2007-11-27]. （原始内容存档于2008-09-05）.  Truher, Jim. Extend Windows PowerShell With Custom Commands. MSDN Magazine (Microsoft). December 2007 [2017-06-10]. （原始内容存档于2008-10-06）.  Test-Connection. PowerShell documentations. 微软. 9 August 2015 [2019-12-18]. （原始内容存档于2016-10-31）.  PowerShell Version 3 is RTM!. tfl09.blogspot.com. [2023-09-09]. （原始内容存档于2023-09-05）.  WMF 3.0. www.microsoft.com. [2023-09-09]. （原始内容存档于2023-06-19）.  Powershell Version. poshnit.wordpress.com. [2023-09-09]. （原始内容存档于2023-09-05）.  Microsoft has released Windows Management Framework 3.0 - Community Technology Preview. www.ntcompatible.com. [2023-09-09]. （原始内容存档于2023-09-05）.  What Is PowerShell ISE?. www.easeus.com. [2023-09-09]. （原始内容存档于2023-09-05）.  Introducing Windows 8: An Overview for IT Professionals. books.google.com. [2023-09-09]. （原始内容存档于2023-09-05）.  Oakley, Andy. Monad (AKA PowerShell). O'Reilly Media. 2005. ISBN 0-596-10009-4.  Holmes, Lee. Windows PowerShell Quick Reference. O'Reilly Media. 2006. ISBN 0-596-52813-2.  Holmes, Lee. Windows PowerShell Cookbook. O'Reilly Media. 2007. ISBN 0-596-52849-3.  Watt, Andrew. Professional Windows PowerShell. Wrox Press（英语：Wrox Press）. 2007. ISBN 0-471-94693-1.  Kumaravel, Arul; White, Jon; Naixin Li, Michael; Happell, Scott; Xie, Guohui; Vutukuri, Krishna C. Professional Windows PowerShell Programming: Snapins, Cmdlets, Hosts and Providers. Wrox Press（英语：Wrox Press）. 2008. ISBN 0-470-17393-9.  Kopczynski, Tyson; Handley, Pete; Shaw, Marco. Windows PowerShell Unleashed 2nd. Pearson Education. 2009. ISBN 978-0-672-32988-3.  Jones, Don; Hicks, Jeffery. Windows PowerShell 2.0: TFM 3rd. Sapien Technologies. 2010. ISBN 978-0-9821314-2-8.  Finke, Douglas. Windows PowerShell for Developers. O'Reilly Media. 2012. ISBN 1-4493-2270-0.  Wilson, Ed. Windows PowerShell 3.0 Step by Step. Microsoft Press. 2013. ISBN 978-0-7356-6339-8.  Wilson, Ed. Windows PowerShell Best Practices. Microsoft Press. 2014. ISBN 978-0-7356-6649-8.  微软官网 如何使用 PowerShell 文件 - PowerShell | Microsoft Docs GitHub - PowerShell/PowerShell: PowerShell for every system! （页面存档备份，存于互联网档案馆） 易學易用的Windows PowerShell （页面存档备份，存于互联网档案馆） MSDN视频教程 （页面存档备份，存于互联网档案馆） 其他 GitHub上的PowerShell頁面 TechNet維基：Windows PowerShell Survival Guide （页面存档备份，存于互联网档案馆）