什麼是 PowerShell?

已完成

PowerShell 由兩個部分所組成:命令列殼層與指令碼語言。 其以架構的形式為開頭,可將 Windows 中的管理工作自動化。 PowerShell 已成長為可用於許多類型工作的跨平台工具。

命令列殼層缺乏可以在其中使用滑鼠與圖形元素互動的圖形化介面。 相反地,您可以在電腦主控台中鍵入文字命令。 以下是使用主控台的一些優點:

  • 與主控台互動通常比使用圖形化介面更快。
  • 在主控台中,您可以執行批次的命令,因此其非常適用於持續整合管線的工作自動化。
  • 您可以使用主控台與雲端資源及其他資源互動。
  • 您可以將命令與指令碼儲存在文字檔中,並使用原始檔控制系統。 此功能可能是最大的優點之一,因為您的命令可重複且可稽核。 在許多系統中 (尤其是政府系統),所有項目都必須經過追蹤、評估或「稽核」。 稽核涵蓋了從資料庫變更到指令碼所做變更的所有項目。

功能

PowerShell 與傳統的殼層共用一些功能:

  • 內建說明系統:大部分的殼層都有某種說明系統,您可以在其中深入了解命令。 例如,您可以了解命令的作用及其支援的參數。 PowerShell 中的說明系統能提供命令的相關資訊,以及與線上說明文章整合。
  • 管線:傳統的殼層會使用管線來依序執行許多命令。 一個命令的輸出就是下一個命令的輸入。 PowerShell 會像傳統的殼層一樣實作此概念,但又因其會在文字上的物件運作而有所不同。 您會在本課程模組的稍後部分了解此功能。
  • 別名是可用於執行命令的替代名稱。 PowerShell 支援使用一般別名,例如 cls (清除螢幕) 與 ls (列出檔案)。 因此,新的使用者可以使用他們對其他架構的知識,而不一定要記住常見命令的 PowerShell 名稱。

PowerShell 因幾種方式而與傳統的命令列殼層有所不同:

  • 它會在文字上的物件運作。 在命令列殼層中,您必須執行指令碼,而其輸出和輸入可能不同,因此您最後得花時間將輸出格式化,並將需要的資料解壓縮。 相較之下,在 PowerShell 中,您可以使用物件作為輸入與輸出。 這表示您會花較少的時間格式化及解壓縮。
  • 它具有 Cmdlet。 在 PowerShell 中,命令稱為 Cmdlet (唸做 commandlets)。 在 PowerShell 中,Cmdlet 建置於通用執行階段上,而不是像許多其他殼層環境中那樣建置在單獨的可執行檔上。 此特性提供在參數剖析與管線行為中一致的體驗。 Cmdlet 通常會採用物件輸入並傳回物件。 PowerShell 中的核心 Cmdlet 建置於 .NET Core 中,而且是開放原始碼。 您可以使用社群和其他來源的更多 Cmdlet、指令碼和函式來擴充 PowerShell,也可以在 .NET Core 或 PowerShell 中建置自己的 Cmdlet。
  • 它具有許多類型的命令。 PowerShell 中的命令可以是原生可執行檔、Cmdlet、函式、指令碼或別名。 您執行的每個命令都屬於這些類型的其中一種。 因為 Cmdlet 是一種命令類型,所以「命令」Cmdlet 兩個字通常會交互使用。

安裝

在本課程模組中,您會練習使用您電腦上的 PowerShell。 PowerShell 可跨平台使用。 但是,若您使用執行 Linux、macOS 或舊版 Windows 的電腦,就必須加以安裝。

針對每個 OS,安裝 PowerShell 的指示都不同。 在繼續之前,請花幾分鐘的時間安裝 PowerShell,或是驗證您的 PowerShell 安裝。 本課程模組的下一個單元將說明如何驗證您的安裝。

Windows

若您執行的是 Windows 8 或更新版本,則應該已經安裝稱為 Windows PowerShell 的 PowerShell 版本。 此版本與最新的 PowerShell 版本稍有不同,但針對學習用途能正常運作。

您可以從 [開始] 功能表開啟 Windows PowerShell。

其他作業系統

若您的電腦執行 Windows 8 或更新版本以外的作業系統,則必須安裝 PowerShell。 若要尋找您的 OS 安裝指示,請參閱安裝各種版本的 PowerShell

適用於 Visual Studio Code 的 PowerShell 延伸模組

建議您使用適用於 Visual Studio Code 的 PowerShell 延伸模組撰寫您的 PowerShell 指令碼,以及執行本課程模組中的命令。 此延伸模組能讓您執行命令,並協助您處理程式碼片段、程式碼完成功能與語法醒目提示。