Windows PowerShell 命令備忘單 - 您需要的終極指南

Windows PowerShell 命令備忘單 - 您需要的終極指南

如果您是 Windows 高級用戶,您可能知道並了解如何在您的 PC 上執行各種操作可以有不止一種方法,並且專門的 GUI 應用程序通常比在手動命令行。當你看到那堵在你面前展開的文字牆時,只有那種滿足感,如果結果不是錯誤,那就更值得了。

Windows PowerShell 命令備忘單 - 您需要的終極指南

在 Windows PC 上,只有兩種方法可以實現此目的:通過 CMD 或 PowerShell。儘管 CMD 比 PowerShell 更受歡迎,但它的功能也不那麼強大,因為它的對應物允許您執行更多的操作,包括您可以通過 CMD 運行的操作。您可以說 PowerShell 將舊 CMD 的強大功能與腳本和 cmdlet 功能相結合,為您提供了大量有關可以使用它執行的操作的可能性。

但是,使用 PowerShell 可以執行的大量可能的操作即使對於經驗豐富的用戶來說也是相當令人生畏的,更不用說以前從未聽說過 CMD(更不用說 PowerShell)的用戶了。不過不用擔心,我們會嘗試教您一些簡單的技巧,您可以使用 PowerShell 完成這些技巧,從長遠來看,您甚至可以記住這些技巧。雖然我們的這個“速成課程”不會作為 PowerShell 的綜合手冊,但它希望通過給你一些提示和解釋一堆命令來幫助你找到 PowerShell 的方法。如果你準備好了,讓我們開始吧。

什麼是 PowerShell?

正如我們在上面簡要提到的,PowerShell 是一個強大的工具,您可以使用它進行大量操作。不僅如此,PowerShell 是一個任務自動化解決方案,它包含幾個強大的工具,包括但不限於命令行 shell(如 CMD)、腳本語言以及配置管理框架。

與其他只能接受和返回文本的 shell 不同,PowerShell 還可以接受和返回 .NET 對象,這要歸功於它包含的大量功能。PowerShell 的一些最重要的 shell 相關功能如下:

  • 命令預測和製表符補全
  • 參數和命令別名支持
  • 全面的命令行歷史
  • 通過管道鏈接命令的能力
  • 控制台內的幫助系統,類似於基於 Unix 的系統中的手冊頁

然而,這只是冰山一角,正如我們之前提到的,PowerShell 不僅僅是一個外殼;您可以將其用作強大的腳本語言來自動化系統管理操作,也可以用於在各種環境中構建、分析、測試和部署解決方案。

鑑於 PowerShell 基於 .NET CLR(.NET 公共語言運行時),很容易理解為什麼 PowerShell 使用的所有輸入和輸出都是 .NET 對象。此外,絕對不需要解析文本輸出,這樣 PowerShell 就可以從中提取信息。在 PowerShell 的腳本功能中,您可能會發現以下內容:

  • 一個全面的格式化系統,可確保乾淨、輕鬆的輸出
  • 通過廣泛的類型系統創建動態類型
  • 您可以通過類、函數、模塊和腳本擴展 PowerShell 的功能
  • 對各種數據格式的原生支持,包括 XML、JSON 和 CSV

如果您對通過代碼管理和配置企業基礎架構更感興趣,您會很高興了解到 PowerShell 還通過其所需狀態配置 (DSC) 管理框架為您提供了這種可能性。在使用 PowerShell 的 DSC 可以輕鬆執行的操作中,我們提醒您:

  • 使用推或拉模型部署各種配置方案
  • 設計可用於環境中可重複部署的自定義腳本和聲明性配置
  • 強制執行各種配置方案
  • 配置漂移報告

PowerShell 有一個專有的命令行,它附帶了一種有點類似於 Perl 的專有編程語言。請注意,最初開發 PowerShell 是為了幫助用戶管理其計算機上的對象,但正如您所看到的,它已經取得了長足的進步,現在用於更廣泛、更複雜的工作。

例如,您不僅可以利用 PowerShell 的廣泛工作環境來執行各種系統管理操作,還可以自動執行這些操作,這樣您就不必時不時地從事乏味、重複的任務。值得一提的是,您可以通過一個程序(即 PowerShell)訪問大量資源,包括但不限於:

  • Windows 管理規範
  • .NET 框架 API
  • 命令提示符
  • Windows 組件對像模型
  • PowerShell 命令

如今,PowerShell 最流行的目的之一是幫助最終用戶自動執行系統管理任務,從而幫助他們避免從事一系列無聊、重複的操作。消除重複操作中的人為因素已被證明可以提高效率並減少由於各種原因造成的人為錯誤,因此對每個人來說都是雙贏的。

您可以使用 PowerShell 發出簡單或更複雜的命令,但該程序還可以幫助您根據這些命令創建腳本,這些腳本將由 PowerShell 自動運行。此外,您可以自定義和發出大量命令,稱為 cmdlet。

值得一提的是,PowerShell 是跨平台和開源的,這意味著您也可以在其他系統(例如 Mac 或 Linux)上使用它本機,而無需求助於 Wine 或 Boot Camp 等技巧和兼容性增強工具。

基本 PowerShell 命令列表

我們知道 PowerShell 可能有點嚇人,尤其是現在您發現它不僅僅是計算機上的另一個命令提示符,它實際上包含 CMD 功能,還包含一種特定的編程語言和各種可用於自動化的腳本系統管理操作。

但是,如果您決心掌握 PowerShell 及其提供的所有功能,我們強烈建議您從其最基本的功能開始。這樣,當您發現不小心使用了錯誤的函數並且在此期間執行的所有工作開始看起來更像是遙遠的記憶時,您就不必回滾數月的進展。

這正是我們準備了一份基本命令列表的原因,您可以在 PowerShell 會話中安全地使用這些命令來測試這個強大程序的功能並查看哪個命令的功能。下面的列表包括命令名稱、它們的別名以及每個命令功能的簡要說明。

請注意,您可以使用命令名稱或其別名,結果將完全相同。人們更喜歡使用別名的原因是它們的鍵入速度要快得多,如果您能正確記住它們並將它們與相應的命令名稱相關聯,那麼如果您想快速完成工作就更有意義。

命令名稱 別名 描述
添加內容 交流電 允許您將內容(例如單詞或數據)附加到文件
添加 PSSnapIn asnp 幫助您將多個 Windows PowerShell 管理單元添加到
當前會話
清晰的內容 液晶顯示器 清除項目的內容而不刪除實際項目
清除歷史記錄 克萊伊 清除命令歷史記錄中的任何和所有條目
清除主機 清除 清除主機程序的顯示
清除主機 做同樣的事情明確
清除項目 命令行 刪除項目的內容而不刪除實際項目
清除項目屬性 剪輯 擦除屬性的值而不實際刪除屬性本身
清除變量 氯仿 刪除變量的值
比較對象 比較 讓您比較兩組對象
比較對象 差異 做同樣的事情比較
連接-PSSession cnsn 讓您重新連接到已斷開連接的會話
轉換路徑 註冊會計師 允許您將 Windows PowerShell 路徑轉換為 Windows
PowerShell 提供程序路徑
複製項目 複製 幫助您將項目從特定位置複製到另一個位置
複製項目 cp 做和復制一樣的事
複製項目 消費價格指數 copycp做同樣的事情
複製項目屬性 cp 允許您將值和屬性從給定位置複製到
不同位置
禁用-PSBreakpoint 分貝 幫助您禁用當前控制台中的斷點
斷開連接-PSSession 域名解析 斷開您與當前會話的連接
啟用-PSBreakpoint ebp 允許您在當前控制台中啟用斷點
Enter-PSSession ETSN 幫助您啟動與遠程設備的交互式會話
退出-PSSession 外號 終止與遠程設備的交互會話
導出別名 埃帕 允許您將有關當前定義的別名的信息導出
到輸出文件
導出-CSV 導出文件 允許您將對象轉換為多個逗號分隔 (CSV)
字符串並將字符串導出到 CSV 文檔
導出-PSSession 愛普生 從不同的會話導入命令並將它們導出到
Windows PowerShell 模塊
ForEach-Object %
對輸入對象集合中包含的每個項目執行特定操作
ForEach-Object foreach 做同樣的事情%
格式-自定義 FC 幫助您使用自定義視圖來格式化輸出
格式列表 佛羅里達州 允許您將輸出格式化為屬性列表,其中每個屬性
都放在一個新行上
格式表 英尺 允許您將輸出格式化為表格
格式範圍 轉發 幫助您將對象格式化為寬表,其中僅
顯示每個對象的一個屬性
獲取別名 加侖 獲取當前會話的別名
獲取子項 目錄 獲取文件系統驅動器中所有文件和文件夾的列表
獲取子項 地理標誌 dir做同樣的事情
獲取子項 ls dirgci做同樣的事情
獲取命令 通用汽車 獲取您可以使用的所有命令的列表
獲取內容 顯示文件的內容
獲取內容 GC 做和一樣的事
獲取歷史 嘿嘿 獲取您在當前會話期間輸入的所有命令的列表
獲取歷史 H ghy做同樣的事情
獲取歷史 歷史 ghyh做同樣的事情
獲取項目 讓您獲取文件和文件夾
獲取項目屬性 GP 獲取您指定的項目的屬性
找工作 吉寶 檢索
當前在您的會話中運行的所有 Windows PowerShell 後台作業的列表
獲取位置 高爾 獲取有關您當前位置堆棧或工作位置的信息
獲取位置 密碼 gl做同樣的事情
獲取會員 通用汽車 獲取指定對象的所有屬性和方法
獲取模塊 轉基因 檢索導入的模塊或可以導入
當前會話的模塊的列表
獲取進程 全球定位系統 獲取在本地或遠程
計算機上運行的所有進程的列表
獲取進程 ps gps做同樣的事情
獲取 PSBreakpoint 英鎊 檢索當前會話中設置的所有斷點
獲取-PSCallStack 地面站 顯示您當前的調用堆棧
獲取-PSDrive 廣東 獲取當前會話中的驅動器
獲取-PSSession 全球網 檢索本地和遠程 Windows PowerShell 會話列表
獲取 PSSnapIn 銷售網點 獲取計算機上所有 Windows PowerShell 管理單元的列表
獲取服務 gsv 列出本地或遠程計算機上的所有服務
獲得獨一無二 從排序列表中檢索唯一項
獲取變量 重力 顯示當前控制台中所有變量的列表
獲取-WmiObject 吉米 獲取 Windows Management Instrumentation (WMI) 類
實例或有關可用類的信息
組對象 團體 允許您對包含
指定屬性的相同值的對象進行分組
幫助 男子 顯示有​​關 Windows PowerShell 命令和
概念的更多詳細信息
導入別名 伊帕爾 允許您從文件導入別名列表
導入-CSV 文件 使用
CSV 文件中包含的所有項目構建類似表格的自定義對象
導入模塊 網名 將模塊導入當前會話
導入 PSSession ipsn 將不同會話中的命令導入當前會話
調用命令 集成電路 允許您在本地和遠程計算機上執行命令
調用表達式 交換器 允許您在本地計算機上執行命令或表達式
調用歷史 嘿嘿 執行會話歷史記錄中的命令
調用歷史 r ihy做同樣的事情
調用項 ii 對指定項目執行默認操作
調用-RestMethod 艾爾姆 向 RESTful Web 服務發送 HTTP 或 HTTPS 請求
調用 WebRequest 捲曲 從 Internet 上的網頁檢索內容
調用 WebRequest 伊爾 curl做同樣的事情
調用-WMIMethod 網名 允許您調用 Windows 管理規範 (WMI)
方法
測量對象 措施 確定對象的數字屬性,以及
字符串對像中的單詞、線條和字符
目錄 醫學博士 創建一個新項目(目錄)
移動項目 允許您將項目從特定位置移動到其他位置
移動項目 移動 mi做同樣的事情
移動項目 MV 做同樣的事情mimove
移動項目屬性 mp 允許您將資產從特定位置移動到其他位置
新別名 納爾 允許您創建新別名
新物品 允許您創建新項目
新模塊 納米 生成僅存在於內存中的新動態模塊
新-PSDrive 允許您創建臨時和永久映射網絡驅動器
新-PSDrive 博士 mount做同樣的事情
新PSSession 網易 建立到本地或遠程計算機的持久連接
新的 PSSessionConfigurationFile 國家安全委員會 創建會話配置文件
新變量 NV 允許您創建新變量
外網格視圖 OGV 允許您將輸出發送到單獨窗口中的交互式表格
外主機 將輸出發送到命令行 (CMD)
外印機 脂蛋白 讓您將輸出發送到打印機
流行位置 彈出 將您的當前位置修改為
最近推送到堆棧的位置。您可以使用 Push-Locationcmdlet ( pushd )
從其默認堆棧或您創建的堆棧中彈出位置。
powershell_ise.exe 伊勢 顯示有​​關如何使用 PowerShell_ISE.exe
命令行工具的說明
推送位置 將當前位置附加到位置堆棧的頂部
接工作 熱火朝天 獲取當前會話 Windows PowerShell 後台
作業的結果
接收-PSSession 註冊機 從斷開連接的會話中檢索命令的結果
除去項目 德爾 刪除文件和文件夾
除去項目 擦除 del做同樣的事情
除去項目 delerase相同
除去項目 del , eraserd做同樣的事情
除去項目 R M deleraserdri做同樣的事情
除去項目 目錄 刪除文件夾
刪除項目屬性 轉速 允許您從給定項目中刪除屬性及其值
刪除作業 樓主 允許您刪除 Windows PowerShell 後台作業
移除模塊 rmo 幫助您從當前會話中刪除模塊
刪除-PSBreakpoint 轉速 允許您從當前控制台中刪除斷點
刪除-PSDrive 讀音 刪除臨時 Windows PowerShell 驅動器,以及斷開
映射的網絡驅動器
刪除-PSSession rsn 允許您關閉一個或多個 Windows PowerShell 會話 (PSSession)
刪除-PSSnapin rsnp 使您能夠從當前
會話中刪除 Windows PowerShell 管理單元
刪除變量 房車 清除變量及其值
刪除-WMIObject rwmi 允許您刪除現有 Windows Management
Instrumentation (WMI) 類的實例
重命名項目 幫助您重命名 Windows PowerShell 提供程序命名空間中的項目
重命名項目 ren做同樣的事情
重命名項目屬性 淨值 使您能夠重命名項目的屬性
解析路徑 房車 解析路徑中的通配符,並顯示
路徑的內容
簡歷-工作 魯吉布 幫助您重新啟動暫停的作業
選擇對象 選擇 允許您選擇對象及其屬性
設置別名 薩爾 Lets you create or change a cmdlet’s or command element’s alias
(alternate name) in the current Windows PowerShell session
Set-Content sc Allows you to replace a file’s contents with contents that you specify.
Set-Item si Changes an item’s value to a value that’s specified in the command
Set-Location cd Lets you set your current working location to a specified location (changes
the active location)
Set-Location chdir Does the same thing as cd
Set-PSBreakpoint sbp Lets you set a breakpoint on a command, variable, or line
Set-Variable set Enables you to set a variable’s value or generates a variable if one with
the requested name does not exist
Show-Command shcm Displays a list of Windows PowerShell commands in a graphical
command window
Start-Job sajb 在 Windows PowerShell 中啟動後台作業
啟動進程 汁液 啟動一個或多個本地進程
啟動服務 薩維 允許您啟動一項或多項已停止的服務
停止進程 幫助您停止一個或多個正在運行的進程
哪裡-對象 ? 使您能夠根據
屬性值從集合中選擇某些對象
寫輸出 迴聲 允許您將對象發送到管道中的下一個命令。如果
到達管道中的最後一個命令,該命令將
在控制台中顯示對象

不要讓大量的 基本PowerShell 命令嚇倒您。儘管我們稱它們為基礎,但您絕對沒有必要開始記住它們。事實上,這就是我們創建上表的確切原因,這樣您就可以繼續您的工作,而不必擔心必須記住我們上面提到的每個命令。

您可以將其用作快速復習,甚至可以使用瀏覽器的搜索功能來定位特定命令、其別名以及在您感到困惑時它的作用。儘管我們已經在上表中包含了這條信息,但如果您在 PowerShell 中工作時感到困惑,使用 help命令將顯示一些有關如何更有效地使用此程序及其命令的有用詳細信息。

如果您想了解有關該特定命令的更多詳細信息,您還可以將help命令與另一個命令或別名配對 。例如,這是當您鍵入help Add-Computer時 PowerShell 顯示的內容 :

Windows PowerShell 命令備忘單 - 您需要的終極指南

但是,您可以對上表中的任何其他命令或其別名使用 幫助。確保您了解同一個命令可以有多個別名,這意味著您可以通過使用不同的別名來獲得相同的結果。儘管這聽起來可能令人困惑,但它實際上為您提供了足夠的靈活性,以防您不記得一個命令別名,但您記住了另一個可以幫助您實現相同目標的別名。

使用 PowerShell

當然,您要做的第一件事就是找到 PowerShell 並啟動它。從 PC 上的任何位置啟動 PowerShell 的一種可靠方法是按住鍵盤上的 Shift 按鈕,右鍵單擊屏幕上的任何空白點(不是菜單、圖標、按鈕或類似對象),然後從上下文菜單中選擇在此處打開 PowerShell 窗口

除了讓您快速訪問 PC 上任何位置的 PowerShell 控制台之外,這樣做還會自動將 PowerShell 的默認工作目錄切換到您當前所在的目錄。如果您使用的是 Windows 10 PC,還可以通過按鍵盤上的Win鍵,在“開始”菜單中鍵入PowerShell,然後在結果列表中可見時選擇 PowerShell 來啟動PowerShell。

在舊版本的 Windows 上,您需要手動找到 PowerShell 可執行文件,您可以在“開始”菜單的“附件”或“系統”文件夾中找到它。此外,查看較舊的系統(例如 Windows 7)默認情況下如何不為您提供 PowerShell,您還必須在您的計算機上安裝它,以及它的所有依賴項。

請注意如何從“開始”菜單啟動 PowerShell 會將您的活動工作目錄設置為C:\Users\[your username here]. 相比之下,使用我們上面介紹的 Shift + 右鍵單擊方法會將 PowerShell 的活動目錄設置為您生成控制台時當前所在的目錄。例如,如果您使用 Shift + 右鍵單擊並從桌面打開 PowerShell,您會注意到活動目錄將為C:\Users\[your username here]\Desktop. 出於顯而易見的原因,該[your username here]部分將根據您的用戶名而有所不同。

儘管您可以將 PowerShell 留作家庭使用,但如果您能充分利用它所提供的一切,那就更好了。順便說一句,這些功能使 PowerShell 非常適合企業使用,您需要在短時間內執行大量操作,並且很可能在大量設備上執行。

因此,無需在每台機器上手動運行每個命令,您只需在 PowerShell 中創建一個自動化腳本並自動接收您需要的信息,而無需與設備進行物理交互,以防萬一甚至靠近它們。就像 CMD 一樣,PowerShell 可以通過命令行使用。但是,與更基本的對應物(即 CMD)不同,PowerShell 還允許您調用腳本和 cmdlet,這使其功能更強大,但使用起來也更複雜。

如何使用 cmdlet

我們在指南中多次使用術語 cmdlet,因此您可能想知道它們的含義。好吧,從頭開始,值得提醒您的是 CMD 與命令一起工作。cmdlet,讀作 command-let,也是一個命令,但與傳統的 CMD 命令不同,cmdlet 特定於 PowerShell,可讓您執行單個特定操作,例如復製文件、將項目從一個地方移動到另一個地方、更改活動的目錄,或查看項目的內容。

簡而言之,cmdlet 是單功能命令,您可以直接在 PowerShell 的命令行中鍵入。如果您之前有使用 CMD 的經驗,您會發現 PowerShell 使用起來有些直觀。PowerShell 的一件有趣的事情是它與 CMD 共享大量命令。因此,在 PowerShell 中使用 CD 仍將更改您的活動目錄,DIR 仍將顯示當前文件夾的內容,而 CP 仍將允許您將項目從一個地方復製到另一個地方。

值得一提的是,PowerShell 不區分大小寫,這與許多其他 shell 不同,如果您在其中鍵入命令時未使用正確的大小寫,則會返回錯誤。因此,copy-item 將與Copy-Item 一樣工作,如果您不記得它們中的任何一個,您也可以使用 CopyCP和 CPI(但也可以使用copyCOPYcpcpi)。

大多數 PowerShell cmdlet 都是用 C# 編寫的,專門用於執行將返回 .NET 對像作為結果的操作。目前,您可以在 PowerShell 中找到超過幾百個可以使用的 cmdlet,公平地說,就執行操作而言,這些 cmdlet 為您提供了更多的空間。

雖然很難記住您可能必須使用的所有 cmdlet(請記住,您可以使用上表),但有一些您會更頻繁地使用,這將使它們非常容易記住。更不用說其中一些足夠直觀的事實,以至於它們的名字實際上暴露了它們的用途(例如,  copy 用於復制項目,  move 可用於移動文件,  compare可幫助您比較對象集等)。

但是,如果您不完全想為本文添加書籤以供以後使用,您也可以在 PowerShell中輸入 Get-Command cmdlet 或 gcm(如果您想保持簡短)。這樣做將顯示可供您使用的完整命令列表,您可以使用該列表提前計劃要執行的任何操作。

解鎖自定義 cmdlet

不利的一面是,Microsoft 不僅讓您完全訪問您可以在 PowerShell 中默認使用的整個 cmdlet 數組,因此您必須跳過一堆額外的圈子才能解鎖此功能並在您的電腦上使用它。閒暇。好消息是解鎖過程不需要很長時間,而且事實上它也可以通過PowerShell完成,這對你來說是一個很好的練習。事不宜遲,讓我們看看如何在 PowerShell 中解鎖自定義 cmdlet 權限。

  1. 登錄管理員帳戶(沒有管理員權限將無法使用)
  2. 以管理員權限啟動 PowerShell(以管理員身份運行)
  3. 在 PowerShell 中鍵入以下命令並按 Enter:
    • Set-ExecutionPolicy
  4. 如果操作正確,PowerShell 將提示您一個對話框,要求您輸入新的 ExecutionPolicy 值
  5. 鍵入RemoteSignedPowerShell 命令提示符並按 Enter
  6. PowerShell 將提醒您修改 ExecutionPolicy 值的風險
  7. 鍵入 Ÿ,然後按Enter鍵Windows PowerShell 命令備忘單 - 您需要的終極指南
  8. 如果您需要關閉自定義 cmdlet,只需按照步驟 1-4 操作,當 PowerShell 要求您輸入值時,Restricted請像在步驟 7 中所做的那樣輸入並確認您的選擇

如果您想簡化整個過程而不是浪費時間在 PowerShell 的命令提示符下輸入所有內容,您會很高興得知有一種更簡單的方法可以實現相同的結果。像在第一步一樣以管理員權限啟動 PowerShell,而不是輸入每個命令並等待提示,您將通過輸入以下命令將所有內容進行管道傳輸直到確認:

  • Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

當然,您仍然需要通過在鍵盤上鍵入Y並按 Enter來確認您的選擇 ,但您只是跳過了一個步驟並同時執行了一系列操作。這正是高級 PowerShell 用戶創建自動化腳本以自動執行各種管理操作的原因:節省時間和麻煩。如果你願意,你可以使用相同的命令以上禁用系統的自定義cmdlet,但你必須更換RemoteSigned帶有Restricted而且在最後確認您的選擇。

在 Windows PowerShell 上運行可能不安全的腳本時,您還可以使用AllSignedUnrestricted授予自己更多權限。在使用AllSigned 選項將讓你運行由受信任的發布者創建的所有腳本,而 無限制選項將啟用PowerShell來運行任何腳本,無論其provenience守信。當然, 不受限制的選項也是最危險的,所以如果可能的話,盡量避免它,特別是如果你是 PC 新手。

看?PowerShell 已經開始看起來比幾分鐘前更易於訪問。

如何在 PowerShell 中創建和使用腳本

正如我們之前提到的,我們肯定您還記得,您可以使用 PowerShell 來運行自動化腳本。但是,您不能只是對 PowerShell 大喊“嘿,您,為我創建這個腳本!” 並期望它神奇地工作,所以你必須加入一些肘部油脂並自己完成。無論現在這聽起來多麼不方便,請相信我們,從長遠來看,考慮到您不再需要做的所有工作,您會心存感激。

儘管我們中的大多數人都依賴諸如 IDE 之類的專用軟件來使用特定的編程語言創建腳本或程序,但說實話,您可以使用任何文本編輯器,只要它可以將文件保存到正確的擴展名。即使它不能,您也可以導航到您創建的文件並通過重命名手動修改其擴展名,但讓我們回到我們的羊。

如果您有興趣創建一個可以在 PowerShell 中運行的腳本,您會很高興地了解到這個腳本您可能已經聽說過很多,它只是一個帶有擴展名的文本文檔,使其與 PowerShell、PS1 兼容. 因此,很容易理解為什麼創建這些腳本實際上可以在幾乎任何文本編輯器中處理,只要您使用正確的 (PS1) 擴展名保存它。

Write-host "Please enter your name:"

$Name = read-host

"Hello $Name! Visit TipsWebTech360.com for more awesome tutorials and guides!"

現在是實際的創建部分:

  1. 啟動記事本(或任何其他與此相關的文本編輯器)
  2. 複製上面的代碼(您將創建和運行的腳本)
  3. 將其粘貼到您的新記事本文檔中
  4. 使用 CTRL + S 保存文檔
  5. 鍵入 script.ps1作為文件名
  6. 將文件保存在可訪問的地方
  7. 用管理員權限打開一個PowerShell實例(很重要)
  8. 確保您已在系統上啟用自定義腳本(檢查上面的部分)
  9. 導航到保存腳本的位置
  10. 鍵入腳本的完整路徑以運行它
    • 例如,如果您的腳本位於 C 驅動器上的 Scripts 文件夾中,您的命令將是 C:\Scripts\script.ps1
    • 或者,您可以簡單地導航到腳本的位置並使用此命令來運行它: .\script.ps1

如果您無法運行該腳本並且 PowerShell 返回錯誤,請確保您已啟用 PowerShell 以在您的系統上運行自定義腳本,並且您以管理員身份運行 PowerShell。不執行我們在說明中指定的任何一項或兩項操作很可能會導致錯誤,並且您將無法運行您的腳本。

請記住,這只是一個與經典的“Hello, world!”有些相似的基本腳本。一。它通過與您互動(即詢問您的名字是什麼)並讓您與之互動(即輸入您的姓名以用於為您打印消息)來旋轉它。然而,PowerShell 能夠運行更複雜的腳本,從從一系列機器收集數據到復雜的數據管理、高級系統配置操作,甚至在眨眼間創建 SQL 數據庫的備份。

如何使用 PowerShell 備份 SQL 數據庫?

我們很高興你問。正如我們在指南中無數次提到的那樣,在 PowerShell 可以幫助您執行的操作方面,幾乎有無限的可能性。最受歡迎的方法之一是備份 SQL 數據庫,而無需花費大量精力或擁有非凡的數據庫管理功能。您所要做的就是啟動一個提升的 PowerShell 實例(具有管理員權限)並使用Backup-SqlDatabase命令。然而,事情比這要復雜一些,但我們將在稍後討論。

備份 SQL 數據庫並不像簡單地將文件從 PC 複製到安全位置那麼簡單,並希望它們在您需要它們執行數據恢復操作時保持安全,但從好的方面來說,使用 PowerShell 可以使它看起來就像在公園裡散步一樣。儘管有多種方法可以實現這一點,但使用我們上面提到的命令是備份 SQL 數據庫的最快、最簡單的方法。

在 Backup-SqlDatabase 命令的功能中,可以找到完整的數據庫備份、數據庫文件備份以及事務日誌備份,因此您可以在單個命令行工具中獲得完整的包。默認情況下,使用此命令將執行完整數據庫備份,因此您需要使用BackupFile參數指定是否希望它遵循一組特定規則。

請注意,某些版本的 PowerShell 默認不提供此命令,因此您必須導入或安裝它。好消息是安裝 SQL 模塊並不完全是火箭科學,即使是新手也可以完成。如果您無法在 PowerShell 會話中使用 Backup-SqlDatabase 命令,您必須執行以下操作:

  1. 以管理員權限啟動 PowerShell
  2. 輸入以下命令:
    • install-module sqlserver
  3. 當要求確認您的操作時,輸入Y並按鍵盤上的Enter
  4. 通過鍵入YEnter再次確認不受信任的存儲庫Windows PowerShell 命令備忘單 - 您需要的終極指南
  5. 安裝完成後,輸入以下命令:
    • import-module sqlserver
  6. 嘗試通過在 PowerShell 命令行中鍵入來運行 Backup-SqlDatabase 命令
    • 如果有效,您應該會看到 PowerShell 要求您提供某些參數的值
    • 如果它不起作用,請確保您已設置 PowerShell 的權限以允許其運行自定義腳本

1.完整的SQL數據庫備份

  • Backup-SqlDatabase -ServerInstance "Computer\Instance" -Database "Tips.WebTech360"

我們在上面舉例說明的命令將生成一個名為 TipsWebTech360 的數據庫的完整數據庫備份,並將其作為“Tips.WebTech360.bak”保存到“Computer\Instance”服務器實例的默認備份位置。

2. 執行基於位置的數據庫備份

  • Set-Location "SQLSERVER:\SQL\Computer\Instance"
  • PS SQLSERVER:\SQL\Computer\Instance> Backup-SqlDatabase -Database "Tips.WebTech360"

上面的第一個命令會將您的位置更改為將發生備份的服務器實例中的活動目錄。本質上,這種技術的工作原理幾乎與我們上面舉例說明的完整數據庫備份類似,但在此示例中,您需要更改工作目錄以定位發生備份的服務器實例。

此操作還將創建名為Tips.WebTech360的數據庫的完整備份,並將其作為“Tips.WebTech360.bak”文件導出到您所連接的服務器實例的默認位置。

3. 執行事務日誌備份

  • Backup-SqlDatabase -ServerInstance "Computer\Instance" -Database "Tips.WebTech360" -BackupAction Log

如果您只需要備份特定數據庫的事務日誌,PowerShell 還可以幫助您通過在其命令行界面中直接輸入的單個命令來完成此操作。上述命令將生成“Tips.WebTech360”數據庫事務日誌的備份副本,並將其作為名為“Tips.WebTech360.trn”的文件導出到“Computer\Instance”服務器實例的默認位置。

4.創建加密的SQL數據庫備份

  • $EncryptionOption = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorType ServerCertificate -EncryptorName "BackupCert"
  • Backup-SqlDatabase -ServerInstance "." -Database "Tips.WebTech360" -BackupFile "Tips.WebTech360.bak" -CompressionOption On -EncryptionOption $EncryptionOption

如果您擔心您的數據庫備份可能落入壞人之手,PowerShell 還可以幫助您創建現成的加密備份文件。自然,您必須指定一些參數,例如加密算法、加密類型(即證書)、服務器實例、數據庫名稱、備份文件以及是否要壓縮輸出。

上面的示例將創建某個“Tips.WebTech360”數據庫的備份,使用 AES-256 加密和服務器證書對其進行加密,對其進行壓縮,並將生成的“Tips.WebTech360.bak”文件保存在服務器實例的默認備份位置。如果您計劃遷移並且沒有萬無一失的方法來傳輸所有備份文件而不冒疏遠其中任何一個的風險,那麼這非常重要。

5. 對服務器實例中的所有數據庫執行備份

  • Get-ChildItem "SQLSERVER:\SQL\Computer\Instance\Databases" | Backup-SqlDatabase

另一個可能會派上用場的工具是 PowerShell 同時備份服務器實例上的所有數據庫的能力。不管它們的數量是多少,您只需啟動 PowerShell,鍵入上述命令的改編版本,然後等待備份過程結束。請注意,由於這將備份服務器實例中的所有數據庫,因此您可能需要等待一段時間,因此請耐心等待。

上面的命令將備份位於“Computer\Instance”服務器實例上的所有數據庫,並將生成的文件導出到同一服務器實例上的默認備份位置。備份文件的名稱會根據各自對應的數據庫自動生成,後跟BAK擴展名(即.bak)。

儘管有多種方法可以通過各種方式使用 PowerShell 執行 SQL 備份,但我們只介紹了一些我們認為更重要的方法。請注意,我們在上面的示例中使用的命令不太可能以其當前形式在您的環境中使用,因此您必須使它們適應您當前的情況。

例如,您必須更改“Computer\Instance”參數以匹配您自己的服務器實例並修改您的數據庫名稱以反映您自己數據庫的名稱。請記住,如果您覺得嘗試運行的命令令人困惑或無法正常工作,則可以隨時求助於PowerShell 中的 幫助命令。

必須知道的 PowerShell 命令

1. 獲取幫助

我們對此再怎麼強調也不為過,但是 Get-Help 命令應該是您學過的第一個命令,因為它可以讓您從許多棘手的情況中解脫出來,在這些情況下您不確定自己是否使用了正確的命令,或者正是您嘗試部署的命令可以實現的目標。

現在您已經在系統上安裝了sqlserver模塊,您現在可以嘗試使用Get-Help命令並查看Backup-SqlDatabase 的工作原理。只需在PowerShell的命令行中輸入 Get-Help Backup-SqlDatabase就能刷出你的PowerShell SQL數據庫備份技巧。

Windows PowerShell 命令備忘單 - 您需要的終極指南

請注意,如果您剛剛在系統上安裝了sqlserver模塊,則幫助數據庫可能仍然過時,您可能需要對其運行更新,以便它能夠趕上任何新腳本。默認情況下,PowerShell 會檢測到您嘗試訪問的內容在線可用,但您無法在本地訪問它,甚至會主動為您更新數據庫。在這種情況下,您需要做的就是在出現提示時輸入 Y,然後鍵盤上的Enter鍵。

但是,如果 PowerShell 只是提示您一個錯誤,指出您感興趣的命令沒有可用的幫助手冊,您可以通過鍵入Update-Help並按鍵盤上的 Enter 鍵來手動更新它。更新過程結束後,您應該能夠查看您感興趣的命令的可用幫助文檔。

2.獲取進程

如果您想了解有關您當前正在使用的系統的更多信息,Get-Process是最重要的。更具體地說,儘管您可能僅僅通過查看就已經猜到了該命令的作用,但 Get-Process 將為您提供當前在您正在使用的系統上運行的所有進程的列表。

默認情況下,Get-Process 將檢索在您正在使用的當前系統上運行的每個進程的列表,因此如果您想要更具體的信息並縮小結果列表的範圍,您可能需要向此命令附加一些額外的參數。在下面的屏幕截圖中查看當您單獨運行Get-Process命令時獲得的結果,以及如果您更具體並格式化結果時的外觀。

  • Get-Process

Windows PowerShell 命令備忘單 - 您需要的終極指南

  • Get-Process explorer | Format-List *

Windows PowerShell 命令備忘單 - 您需要的終極指南

可以自定義第二個命令以顯示有關係統上任何活動進程的其他詳細信息。您可以使用 svchost或 Chrome或系統上您感興趣的任何其他活動進程替換 資源管理。 正如我們上面提到的,單獨使用Get-Processes可以幫助您解決這個問題(即查找所有正在運行的進程的列表)。

3. 停止進程

這個命令是不言自明的,因為您可能已經發現它可以幫助您停止當前在系統上運行的進程。使用 PowerShell 而不是使用 Windows 任務管理器執行此操作的最常見原因是有時進程會凍結並使 GUI 應用程序幾乎無法使用。

PowerShell 用戶可以使用我們之前解釋過的Get-Process命令輕鬆識別麻煩的進程,然後使用 Stop-Process終止它,從而疏通系統。在 PowerShell 命令行界面中單獨運行 Stop-Process(不帶任何附加參數)將提示您輸入要終止的進程的 ID。 

但是,您也可以通過將-Name參數附加到 cmdlet 來按名稱(如果您知道的話)終止進程,如下例所示:

  • Stop-Process -Name "explorer"

上面的命令將終止 Explorer 進程,這非常有用,尤其是在它凍結或崩潰並拒絕正確加載時。請注意,在指定要終止的進程的名稱時需要使用引號。如果進程頑固並且拒絕終止(通常更高權限的進程會這樣做),您可以通過在命令中附加-Force參數來“說服”它。例如,假設您無法終止 Explorer 進程。在這種情況下,您只需鍵入以下命令:

  • Stop-Process -Force -Name "explorer"

此外,值得一提的是,在Stop-Process命令中使用-Force參數不會要求確認,而不是在沒有此選項的情況下運行命令。如果您想了解有關此 cmdlet 的更多信息,請確保使用Get-Help命令。

4. 獲取服務

此命令是必不可少的命令列表之一,這是有充分理由的:它可以為您提供當前安裝在您正在使用的系統上的所有服務的列表,無論它們是否正在運行。與許多其他 cmdlet 一樣,您可以自定義Get-Service以向您提供更具體的信息,無論是關於特定服務還是顯示您計算機上所有正在運行(或停止)的服務的列表。

您可以繼續並在 PowerShell 命令行中鍵入 Get-Service。這樣做應該會為您提供計算機上所有可用服務的列表,以及它們的顯示名稱和狀態。如果向原始 cmdlet 附加一個附加命令,則可以更改輸出,使其僅顯示您感興趣的結果。

  • Get-Service "W*"

例如,鍵入上面的命令應該會返回您計算機上所有可用服務的列表,這些服務以字母“W”開頭。但是,您可以更進一步自定義您的命令,以進一步縮小結果列表的範圍。

  • Get-Service | Where-Object {$_.Status -eq “Running”}

上面的命令將讓您看到計算機上所有可用服務的列表,這些服務在您運行 cmdlet 時也在運行。像我們在前面的示例中所做的那樣附加“W*” 將顯示您計算機上所有以字母“W”開頭的正在運行的服務的列表,命令應如下所示:

  • Get-Service "W*" | Where-Object {$_.Status -eq "Running"}

Windows PowerShell 命令備忘單 - 您需要的終極指南

5. 獲取事件日誌

每個負責任的系統管理員都應該了解處理事件日誌的方法,因為這些文檔可以為您提供有關係統上發生的事情、發生的時間,有時甚至是觸發特定事件的原因的有用知識。

因此,我們可以安全地假設 PowerShell 的Get-EventLog 命令不是您希望從您的工具帶中丟失的東西,尤其是當您計劃磨練您的系統管理技能時。如果您了解有關事件日誌及其名稱的所有信息,則可以直接在 PowerShell 的命令行中鍵入 Get-EventLog。請注意,PowerShell 會提示您輸入要查看的日誌的名稱。

如果您鍵入空事件日誌的名稱(沒有條目的事件日誌),PowerShell 將提示您錯誤並返回命令行界面。因此,如果您只使用下面的命令會更容易,該命令將為您提供系統上的事件日誌列表,以及有關每個事件日誌的其他詳細信息,例如默認溢出操作和條目數。

  • Get-EventLog -List

事件日誌最流行的用例之一是檢查錯誤,特別是如果它們以靜默方式發生、緊隨其後的是系統崩潰或導致 BSOD,我們都知道這是多麼神秘。但是,如果您想縮小結果列表的範圍,則需要更具體地使用 Get-EventLog cmdlet,這通常可能很大。

  • Get-EventLog -LogName Security -EntryType Error

在 PowerShell 的命令行界面中鍵入上面的命令應該會為您提供安全事件日誌中註冊的所有錯誤的列表。請注意,您可以使用 -List 參數查看系統中的所有日誌類型,並Security在上面的命令中替換為您在列表中找到的任何其他日誌類型,只要它包含多個零條目即可。

如果您想了解有關在 PowerShell 中使用Get-EventLog 命令的更多信息 ,請隨時使用我們在本子章節的第一部分中討論過的 Get-Help命令。 

6. 轉換為 HTML

有時,當您使用 PowerShell 時,您可能會偶然發現要提取並保留以供將來參考、創建報告或只是從其他應用程序��入的某些信息。從 PowerShell 中提取此數據並將其導出到計算機上的外部文件的最常用方法之一是ConvertTo-HTML 命令。

使用此命令將幫助您構建綜合報告,通過為您提供 HTML 表格,您可以通過添加自定義樣式和顏色編碼數據來自定義這些表格,從而幫助您以更有效的方式分析提取的信息和見解。與許多其他 PowerShell 命令一樣,ConvertTo-HTML不能單獨工作,您需要將它與將用作輸入(或數據源)的附加命令配對。

例如,如果您要打印一份報告,其中包含所有以字母“W”開頭且當前正在您的計算機上運行的服務,您可以鍵入以下命令:

  • Get-Service "W*" | Where-Object {$_.Status -eq "Running"} | ConvertTo-HTML

這將為您提供您提供給 ConvertTo-HTML 函數的數據的 HTML 代碼,您可以直接從 PowerShell 的命令行界面複製該代碼,將其粘貼到您喜歡的文本編輯器中,然後將其保存為 HTML 文件,您可以使用在任何網絡瀏覽器中查看結果。

您幾乎可以將ConvertTo-HTML與任何 PowerShell 命令一起使用,只要您用作數據源的命令將生成輸出。您可以嘗試使用其他 cmdlet,例如Get-ProcessGet-EventLogGet-Help。請注意,除了 HTML 轉換之外,ConvertTo cmdlet 還可用於生成 JSON、CSV 和 XML 文件。您只需將命令語法中的 HTML 替換為您感興趣的格式。

7. 導出-CSV

如果您正在處理您認為更適合放在表格中的各種對象,您可以使用 PowerShell 將您當前處理的項目轉換為一系列 CSV(逗號分隔值)字符串並將這些字符串導出到通過 Export-CSV cmdlet 快速創建文件。

與 ConvertTo-HTML 一樣,Export-CSV 需要一個可以轉換為 CSV 字符串的輸入,因為它不能單獨工作。因此,您需要將它與可用於生成數據的命令配對,例如我們之前解釋過的 Get-Service 或 Get-Process。

本質上,Export-CSV 幾乎與我們上面討論的 ConvertTo-HTML cmdlet 做同樣的事情,除了一個不容忽視的重要方面:這個 cmdlet 實際上生成一個文件並將其保存在您的計算機上,而不是ConvertTo 命令,它只為您提供輸出並允許您自己創建文件。

例如,假設您想將計算機上運行的服務列表轉換為 CSV 文件,以便您可以使用第三方軟件進一步處理該文件,或將其放入電子表格中以供進一步參考。您所要做的就是輸入 Get-Service 命令,然後輸入 Export-CSV 命令,並提及您希望生成 CSV 文件的位置,如下例所示:

  • Get-Service | Export-CSV c:\Tips.WebTech360.csv

上面的命令將獲取您計算機上所有可用服務的列表,無論是否運行,將它們轉換為一系列 CSV 字符串,並將結果保存為 C 盤根目錄中名為“Tips.WebTech360”的 CSV 文件. 然後,您可以在第三方軟件解決方案中打開該文件,將其轉換為完整的表格,或者只是將其存儲以備將來使用。

PowerShell 備忘單——結論

儘管仍然有很多人支持 CMD,但說實話 PowerShell 更通用、更強大,但同時比傳統的 CMD 對應物更複雜。數量龐大的功能,再加上您可以在 PowerShell 中創建自動化腳本並執行複雜的系統管理操作,這讓 CMD 處於陰影之中。

如果您剛剛開始了解 PowerShell,並且正在努力弄清楚每個命令的作用、如何管道化多個命令,或者如何自己創建和運行簡單的 PowerShell 腳本,那麼我們的指南是一個很好的起點。我們花時間解釋了您在 PowerShell 中應該了解的一些最重要的命令,創建了一些簡短的教程,還包括基本 PowerShell 命令列表、它們的別名以及每個項目的簡短描述,只是為了簡化您的 PowerShell 發現之旅。


6 個跟踪性能的最佳網絡管理工具

6 個跟踪性能的最佳網絡管理工具

網絡管理軟件市場非常擁擠。按照我們推薦的最佳網絡管理工具來縮短您的搜索。

10 個最佳 Ping 掃描工具,讓您了解更多有關網絡的信息

10 個最佳 Ping 掃描工具,讓您了解更多有關網絡的信息

Ping 掃描可以通過多種方式為您帶來好處。請繼續閱讀,我們將討論如何操作並介紹您能找到的 10 種最佳 Ping 掃描工具。

6 個最佳網站監控工具

6 個最佳網站監控工具

網站很重要,必須不斷密切監控以獲得足夠的性能。以下是一些用於監控網站的最佳工具。

2022 年開發團隊最佳軟件部署工具

2022 年開發團隊最佳軟件部署工具

以下是一些最好的軟件部署工具,可以減輕管理任意數量機器的痛苦

HIPAA 合規檢查表和使用工具

HIPAA 合規檢查表和使用工具

如果您從事健康行業或以某種方式參與該行業的 IT,您很有可能聽說過 HIPAA。健康保險的便攜性

2021 年審查的最佳免費 sFlow 收集器和分析器

2021 年審查的最佳免費 sFlow 收集器和分析器

sFlow 是一種內置於眾多網絡設備中的流分析協議。我們回顧了前五名的最佳免費 sFlow 收集器和分析器。

2021 年最佳無代理基礎設施監控工具和軟件

2021 年最佳無代理基礎設施監控工具和軟件

為了幫助您選擇合適的工具,我們引入了最好的無代理基礎設施監控工具,並讓您快速查看每個工具。

在 Linux 上監控帶寬:2021 年排名前 5 的工具

在 Linux 上監控帶寬:2021 年排名前 5 的工具

隨著 Linux 在數據中心變得越來越流行,他們正在研究 Linux 上的帶寬監控,同時也在審查最佳工具。

SolarWinds Mail Assure – 2021 年回顧

SolarWinds Mail Assure – 2021 年回顧

電子郵件安全是託管服務提供商的一項重要任務。正在審查 SolarWinds Mail Assure,這是為此目的的最佳工具之一。

Windows PowerShell 命令備忘單 - 您需要的終極指南

Windows PowerShell 命令備忘單 - 您需要的終極指南

如果您是 Windows 高級用戶,您可能知道並了解如何在您的 PC 上執行各種操作可以有不止一種方法和