PowerShell

PowerShell(包括Windows PowerShellPowerShell Core)是微軟公司开发的任务自动化和組態管理架構,由在.NET Framework和后来的.NET上构建的命令行界面殼層相关脚本语言组成,最初僅僅是Windows元件,后于2016年8月18日开源并提供跨平台支持。

在PowerShell中,管理任务通常由cmdlets(发音为command-lets)执行,这是执行特定操作的专用.NET类。可以将cmdlet集合至脚本、可执行文件(一般是独立应用程序)中,或通过常规.NET类(或WMI / COM对象)实例化。

源起與目的
UNIX系統一直有著功能強大的殼程式(shell),Windows PowerShell的誕生就是要提供功能相當於UNIX系統的命令列殼程式(例如:sh、或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技術為基礎,並且與現有的保持回溯相容,因此它的腳本程式不僅能存取.NET CLR,也能使用現有的技術。同時也包含了數種系統管理工具、簡易且一致的語法,常見如登錄資料庫、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.DownloadString($rssUrl)
$blog.rss.channel.item | select title -first 8

命令提示字元比较
Windows PowerShell 3.0
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 命令更新帮助文档。

安全性
PowerShell 5.1存在默认行为缺陷(),攻击者通过社交工程诱导用户执行带污染参数的命令或恶意HTTP,可进行命令注入,该漏洞已在2025年12月修复。

參考文獻
擴展閱讀
*
*
*
*
*
*
*
*
*
*

外部連結
;微软官网

;其他
*

评论 (0)

  • 还没有评论,来抢沙发吧。