最有用的 Powershell 命令:附示例的備忘單
已發表: 2023-07-23- PowerShell 入門
- 深入研究 PowerShell 命令結構
- 管理文件和文件夾
- 管理系統進程
- 網絡管理
- 活動目錄管理
- 事件日誌管理
- 性能監控與分析
- 遠程處理和 PowerShell 會話
- 安全和執行策略
- 高級 PowerShell 技術
- 下面 30 個附加 PowerShell 命令
- 結論
- 常問問題
- 如何使用 Windows PowerShell 命令?
- 如何在 Windows 7 中獲取 PowerShell 命令列表?
- 我可以在非 Windows 系統上使用 PowerShell 嗎?
- 我可以在 PowerShell 中編寫腳本嗎?
- 我可以使用 PowerShell 管理基於雲的環境嗎?
如果您曾經有幸深入了解系統管理的世界,您可能遇到過 Windows PowerShell 和 PowerShell 命令。 它是一個方便的工具,是一種 shell 腳本語言,可讓您訪問操作系統的內部工作原理。
它超越了傳統的命令提示符 (CMD),提供了更強大的功能、靈活性和控制力。
與使用簡單命令行指令的 CMD 不同, Windows PowerShell使用更廣泛的語言,利用一系列PowerShell 命令或 cmdlet 來執行複雜的系統任務。
作為系統管理員,您的工作可以通過您的武器庫中的這個工具得到顯著的改進。 這不僅僅是為了讓事情變得更容易;而是為了讓事情變得更容易。 它關乎效率、精度和自動化重複任務的能力。
PowerShell 入門
現在您已經熟悉了 PowerShell 是什麼,是時候深入了解了。開始非常簡單。 你有兩條主要路線:
- PowerShell 控制台
- 集成腳本環境 (ISE)。
控制台是您的命令行界面。 這是您的命令到達和操縱系統的直接路徑。 另一方面,ISE 是您編寫腳本的遊樂場。 您可以在一個友好的、以用戶為中心的環境中編寫、測試和調試 PowerShell 腳本。
為了幫助您順利開展工作,我們將介紹一些基本的 PowerShell 命令。
描述:顯示有關Windows PowerShell 命令和主題的幫助信息。
示例:鍵入 Get-Help Get-Process 將顯示 Get-Process 命令的幫助。
顧名思義, Get-Help 是您了解 PowerShell 世界的指南。 它是一個內置手冊,可讓您探索其他命令的功能。
描述:檢索 PowerShell 中所有可用命令的列表。
示例:輸入 Get-Command -Module ActiveDirectory 將列出 ActiveDirectory 模塊中可用的所有命令。
Get-Command 是PowerShell 命令備忘單上的另一個有價值的工具。 有了它,您可以查看 PowerShell 提供的每個命令。
深入研究 PowerShell 命令結構
PowerShell 命令圍繞三個主要結構構建:cmdlet、別名和腳本。
Cmdlet (Command-let) 是 PowerShell 的核心。 它們是執行特定功能的輕量級命令。 與傳統的可執行程序不同,cmdlet 是 .NET Framework 類對象 – 很拗口,對吧? 簡而言之,它們是執行某些操作的代碼片段,例如獲取數據、更改系統設置或運行進程。
描述:檢索所有正在運行的進程的列表
示例:輸入 Get-Process 將顯示系統上當前運行的所有進程。
別名只是 cmdlet 的快捷方式。 例如,您可以簡單地鍵入dir ,而不是鍵入Get-ChildItem ,這樣更快、更容易記住。
最後,腳本是包含一系列要按順序運行的 cmdlet 的文本文件。 它們是自動化的支柱,使您無需手動輸入即可運行複雜的任務。 有了這些知識和不斷增加的PowerShell 命令列表,您就可以順利成為 PowerShell 專家。
管理文件和文件夾
掌管文件系統可能是一項艱鉅的任務。 幸運的是,PowerShell 提供了幫助。 借助一系列 cmdlet,您可以無縫管理文件和文件夾。
描述:顯示指定位置的項目和子項目。
示例:輸入 Get-ChildItem C:\Documents,您將看到 Documents 目錄中的所有項目。
此 cmdlet 是用於文件管理的PowerShell 命令列表中的重要成員。 它不僅列出文件和文件夾,還可以深入研究目錄,揭示其中隱藏的寶藏。
描述:創建一個新項目,例如文件或文件夾。
示例:鍵入New-Item -Path 。-名稱“file.txt” -ItemType“文件” -值“powershell new-item 演示文件當前目錄。”
並觀察新文件 file.txt 在您的 Documents 文件夾中出現。
管理系統進程
現在,我們來談談系統流程。 將他們視為戲劇製作的後台工作人員,在幕後辛勤工作,以確保演出順利進行。 PowerShell 提供命令來監視、操作和管理這些無名英雄。
描述:檢索指定進程列表的狀態。
示例:輸入 Get-Process 將顯示計算機上當前運行的所有進程。
以上是Windows 10中最常用的用於管理系統進程的PowerShell命令之一。 它提供了屏幕後面發生的情況的快照。
使用服務
就像系統進程一樣,服務是保持系統平穩運行的關鍵齒輪。 有些程序在後台運行,通過 PowerShell,您可以密切關注它們。
描述:檢索本地或遠程計算機上的服務狀態。
示例:當您運行 Get-Service 時,您將獲得計算機上所有服務的狀態更新。
描述:停止一項或多項正在運行的服務。
示例:Stop-Service -Name“serviceName”將停止指定的服務。
這些PowerShell 命令示例僅介紹了您可以使用 PowerShell 執行的操作的表面。 PowerShell 的真正優點在於它的靈活性以及可以在多大程度上進行定制以滿足您的特定需求。
網絡管理
管理網絡可能感覺就像嘗試解決一個包含無限塊的拼圖遊戲。 幸運的是,借助 PowerShell,您並非沒有工具可以使這項工作變得更輕鬆。 以下是幾個可以為您提供幫助的頂級 PowerShell 命令。
描述:顯示連接的診斷信息。
示例:鍵入 Test-NetConnection 以測試計算機的網絡連接。
描述:顯示 IP 地址配置。
示例:運行 Get-NetIPAddress 可顯示您計算機的 IP 地址詳細信息。
這些 cmdlet 可以幫助診斷問題並揭示基本的網絡配置詳細信息。
活動目錄管理
在網絡管理領域,Active Directory (AD) 是辦公室的管理者,跟踪每個網絡資源。 PowerShell 包含有用的命令,使管理 AD 變得輕而易舉。
描述:檢索一個用戶對像或執行搜索以檢索多個用戶對象。
示例:Get-ADUser -Filter * 將顯示 AD 中所有用戶的列表。
描述:創建一個新的 AD 用戶。
示例:使用 New-ADUser -Name “JohnDoe” 等命令,您可以創建一個名為 JohnDoe 的新用戶。
事件日誌管理
事件日誌就像系統的日記,記錄系統的想法和行為。 它們是排除故障的寶貴工具。 以下是如何在 Windows 10 中運行與事件日誌交互的 PowerShell 命令。
描述:獲取事件日誌中的事件或事件日誌列表。
示例:Get-EventLog -LogName 系統將顯示系統事件日誌。
描述: 清除指定事件日誌中的所有條目。
示例:Clear-EventLog -LogName “Application” 將清除您的應用程序事件日誌。
重要的是要記住,雖然這些是一些最常見的 PowerShell 命令,但還有無數其他命令需要探索。 PowerShell 的適應性和強大的功能使其成為任何系統管理員不可或缺的工具。
性能監控與分析
就像一支調音良好的管弦樂隊一樣,您的系統需要定期微調才能發揮最佳性能。 性能監控可確保您的系統資源得到有效利用。 以下是一些 Windows PowerShell 命令,可讓您一窺其幕後真相。
描述:檢索指定進程列表的狀態。
示例:運行 Get-Process 顯示當前在您的計算機上運行的所有進程。
描述:測量運行腳本塊所需的時間。
示例:Measure-Command {Get-Process} 將顯示執行 Get-Process 命令所需的時間。
描述:從本地和遠程計算機獲取性能計數器數據。
示例:Get-Counter -Counter“\Processor(_Total)\% Processor Time”將為您提供 CPU 使用情況統計信息。
另請閱讀:如何提高 Windows 上的硬盤性能?
遠程處理和 PowerShell 會話
PowerShell 的一個關鍵優勢在於其管理遠程計算機的能力。 您可以與遠程計算機建立會話或持久連接。 如果沒有這些 cmdlet,您的 PowerShell 命令備忘單將不完整。
描述:啟動與遠程計算機的交互式會話。
示例:Enter-PSSession -ComputerName Server01 允許您直接與 Server01 交互。
描述:創建一個新的 PowerShell 會話。
示例:New-PSSession -ComputerName Server02 創建與 Server02 的新會話。
描述:關閉一個或多個 PowerShell 會話。
示例:Remove-PSSession -Session $s 關閉存儲在 $s 變量中的會話。
使用 PowerShell 配置文件
與您的個人配置文件一樣, PowerShell 配置文件是在 Powershell 啟動時運行的腳本,它定義您的環境。 以下是一些用於管理您的配置文件的cmdlet PowerShell命令。
描述: 確定路徑的所有元素是否存在。
示例:Test-Path $profile 將驗證配置文件是否存在。
描述:創建一個新項目,例如文件或文件夾。
示例:如果 Test-Path $profile 返回 False,New-Item -Type file -Path $profile -Force 將創建一個新配置文件。
描述:在記事本中打開文件。
示例:記事本 $profile 在記事本中打開您的個人資料,允許您對其進行編輯。
通過理解和利用這些命令,您可以自定義 PowerShell 環境以適合您的偏好和工作方式。
安全和執行策略
在 PowerShell 領域,安全性就像一個堅定的看門人,確保腳本和命令安全執行。 以下是一些基本的 PowerShell 命令,可幫助您定義和理解執行策略。
描述:獲取當前會話的執行策略。
示例:Get-ExecutionPolicy 顯示您當前的執行策略。
描述:設置 PowerShell 會話的執行策略。
示例:Set-ExecutionPolicy RemoteSigned 將策略設置為僅運行由可信發布者簽名的腳本。
描述:獲取腳本或文件的數字簽名。
示例:Get-AuthenticodeSignature C:\Scripts\Test.ps1 顯示 Test.ps1 腳本的數字簽名。
高級 PowerShell 技術
當您深入研究 PowerShell 的海洋時,您會發現它不僅僅包含基本的 cmdlet。 高級功能提供了更大的靈活性和功能,讓您可以更聰明地工作,而不是更辛苦。 下面是一些PowerShell 命令示例來說明各種可能性。
描述:在本地和遠程計算機上運行命令。
示例:Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} 在 Server01 上運行 Get-Process 命令。
描述:將 .NET 對象轉換為 CSV 字符串並將結果存儲在 CSV 文件中。
示例:獲取進程|Export-Csv -Path .\ProcessList.csv 將進程列表保存到 CSV 文件中。
描述:將對象轉換為其 JSON 表示形式。
示例:獲取進程|ConvertTo-Json 將進程列表轉換為 JSON 格式。
描述:選擇一個對像或一組對象的指定屬性。它還可以從數組中選擇唯一的對象。
示例:獲取進程|Select-Object -Property Name,ID 僅顯示進程的名稱和 ID。
描述:過濾來自管道的輸入,允許控制將沿命令序列傳遞的對象。
示例:獲取進程|Where-Object {$_.CPU -gt 10} 顯示使用超過 10 個 CPU 單元的進程。
描述:對一組輸入對像中的每一個執行操作。
示例:獲取進程|ForEach-Object { $_.Name + ” ” + $_.Id } 顯示進程名稱及其 ID 的列表。
這些有用的 PowerShell 命令演示了可用來進一步利用 Powershell 強大功能的高級技術。 從調用遠程計算機上的命令到過濾和格式化輸出,可能性是巨大的。
請記住,當您不確定如何運行 PowerShell 命令時,Get-Help cmdlet 是您的好幫手。 只需鍵入 Get-Help,然後鍵入您需要幫助的 cmdlet。 這個頂級 PowerShell 命令列表只是一個開始; PowerShell 的潛力僅受您的想像力的限制。
下面 30 個附加 PowerShell 命令
命令 | 描述 |
輸出文件 | 將輸出發送到文件。 |
排序對象 | 按屬性值對對象進行排序。 |
設置變量 | 設置變量的值。 |
讀取主機 | 從控制台讀取一行輸入。 |
寫主機 | 將自定義輸出寫入主機。 |
添加內容 | 向指定項目添加內容,例如向文件添加行。 |
複製項目 | 將項目從一個位置複製到另一個位置。 |
測試路徑 | 測試路徑是否存在,如果路徑存在則返回 True,否則返回 False。 |
獲取日期 | 獲取當前日期和時間。 |
清除主機 | 清除主機程序中的顯示。 |
比較對象 | 比較兩組對象。 |
轉換為Html | 將 .NET 對象轉換為可在 Web 瀏覽器中顯示的 HTML。 |
獲取憑證 | 根據用戶名和密碼獲取憑證對象。 |
隨機獲取 | 獲取隨機數或從集合中隨機選擇對象。 |
新對象 | 創建 .NET Framework 或 COM 對象的實例。 |
重命名項目 | 重命名 Windows PowerShell 提供程序命名空間中的項目。 |
開始-睡眠 | 將腳本中的活動暫停指定的時間段。 |
寫輸出 | 將指定對象發送到管道中的下一個命令。 |
分割路徑 | 返迴路徑的指定部分。 |
連接路徑 | 將路徑和子路徑合併為單個路徑。 |
ForEach-對象 | 對輸入對象集合中的每個項目執行操作。 |
地點對象 | 根據屬性值從集合中選擇對象。 |
啟動進程 | 在本地計算機上啟動一個或多個進程。 |
格式列表 | 將輸出格式化為屬性列表,其中每個屬性都顯示在單獨的行上。 |
格式表 | 將輸出格式化為表格。 |
導出-Clixml | 創建一個或多個對象的基於 XML 的表示並將其存儲在文件中。 |
導入Clixml | 導入 CliXML 文件並重新創建保存的對象。 |
轉換自-CSV | 將 CSV 字符串中的對象屬性轉換為原始對象的 CSV 版本。 |
轉換為 CSV | 將 .NET 對象轉換為一系列 CSV 字符串。 |
選擇字符串 | 查找字符串和文件中的文本。 |
結論
到目前為止,您應該擁有完整的PowerShell 命令列表並清楚地了解它們的潛力。 無論您是自動化任務、管理網絡資源還是解決問題,PowerShell 都是任何 Windows 用戶或管理員不可或缺的工具。
這些PowerShell cmdlet只是觸及了可能的表面。 隨著您對控制台越來越熟悉,您會發現自己發現了新的命令和製作完全滿足您需求的腳本。
請記住,每當您需要有關特定 cmdlet 的更多信息時, Get-Help cmdlet 始終可以提供PowerShell 命令幫助。 只需鍵入 Get-Help,然後鍵入您需要幫助的 cmdlet。
常問問題
如何使用 Windows PowerShell 命令?
使用 Windows PowerShell 命令很簡單。 您可以在 PowerShell 控制台中鍵入命令並按 Enter 鍵。 如果您需要特定命令的幫助,只需鍵入 Get-Help,然後鍵入您想要更好地理解的命令。
如何在 Windows 7 中獲取 PowerShell 命令列表?
您可以通過在控制台中鍵入 Get-Command 並按 Enter 鍵來獲取 Windows 7 上 PowerShell 中的命令列表。 這將顯示您可以使用的所有可用 cmdlet 和功能。
為什麼我的 Windows PowerShell 無法理解任何命令?
如果 PowerShell 無法理解您的命令,可能是由於語法錯誤。 檢查您的命令是否有拼寫錯誤或不正確的參數。 另外,請確保您為嘗試執行的命令使用正確版本的 PowerShell。
我可以在非 Windows 系統上使用 PowerShell 嗎?
是的你可以。 隨著PowerShell Core的出現,微軟的PowerShell不再局限於Windows。 您也可以在 macOS 和 Linux 上使用它。
我可以在 PowerShell 中編寫腳本嗎?
絕對地! PowerShell 不僅是一個命令行界面,也是一種腳本語言。 您可以創建腳本來自動執行重複性任務,這可以節省大量時間和精力。
我可以使用 PowerShell 管理基於雲的環境嗎?
是的,PowerShell 是用於管理基於雲的環境的強大工具。 許多雲提供商(包括 Microsoft Azure 和 Amazon AWS)提供 PowerShell 模塊來與其服務交互。