極客學校:學習如何用powershell自動化windows

在這個版本的Geek School中,我們將幫助您瞭解構建在Windows中的強大PowerShell指令碼語言,它在IT環境中非常有用。...

極客學校:學習如何用powershell自動化windows

在這個版本的Geek School中,我們將幫助您瞭解構建在Windows中的強大PowerShell指令碼語言,它在IT環境中非常有用。

雖然本系列文章不是圍繞考試展開的,但學習PowerShell是作為網路管理員可以做的最重要的事情之一,因此,如果有一件事你想學習,以幫助你的IT職業生涯,那就是它。另外,這很有趣。

介紹

PowerShell是微軟提供的最強大的自動化工具,它既是shell,又是指令碼語言。

請注意,此係列基於PowerShell 3,它與Windows 8和Server 2012一起提供。如果您執行的是Windows 7,請在繼續之前下載PowerShell 3更新。

接控制檯和ise

有兩種與PowerShell進行即時互動的方式:控制檯和整合指令碼環境(也稱為ISE)。ISE與PowerShell 2附帶的可怕版本相比有了很大的改進,可以透過按Win+R鍵盤組合開啟run框,然後鍵入PowerShell\u ISE並按enter來開啟。

極客學校:學習如何用powershell自動化windows

正如您所看到的,ISE使用了一個分割檢視,這樣您可以快速編寫指令碼,同時仍然可以在ISE的下半部分看到結果。ISE的下半部分(列印指令碼結果的地方)也可以用作REPL提示符,與命令提示符非常相似。V3ISE最終在指令碼窗格和互動控制檯中添加了對intellisense的支援。

極客學校:學習如何用powershell自動化windows

極客學校:學習如何用powershell自動化windows

或者,您可以使用PowerShell控制檯與PowerShell進行互動,這也是我將在本系列的大部分內容中使用的控制檯。PowerShell控制檯的行為與命令提示符非常相似—您只需輸入命令,它就會輸出結果。要開啟Windows PowerShell控制檯,請再次按Win+R鍵盤組合開啟一個執行框,鍵入PowerShell,然後按enter。

極客學校:學習如何用powershell自動化windows

像這樣的REPL提示對於即時滿足來說是很棒的:輸入一個命令就可以得到結果。儘管控制檯不提供intellisense,但它確實提供了一種稱為tab completion的功能,其功能基本相同—只需開始鍵入命令,然後按tab鍵在可能的匹配項之間迴圈。

極客學校:學習如何用powershell自動化windows

極客學校:學習如何用powershell自動化windows

使用幫助系統

在以前版本的PowerShell中,安裝Windows時會包含幫助檔案。這在很大程度上是一個很好的解決方案,但給我們留下了一個重大的問題。當PowerShell幫助團隊不得不停止處理幫助檔案時,PowerShell開發人員仍然忙於編寫程式碼和進行更改。這意味著在PowerShell釋出時,幫助檔案是不正確的,因為它們不包含對程式碼所做的較新更改。為了解決這個問題,PowerShell 3沒有現成的幫助檔案,並且包含了一個可更新的幫助系統。這意味著在您做任何事情之前,您都需要下載最新的幫助檔案。您可以透過開啟PowerShell控制檯並執行:

Update-Help

極客學校:學習如何用powershell自動化windows

極客學校:學習如何用powershell自動化windows

恭喜你運行了你的第一個PowerShell命令!事實上,Update-Help命令有比僅僅執行它更多的選項,要檢視它們,我們需要檢視命令的幫助。要檢視命令的幫助,只需將需要幫助的命令的名稱傳遞給Get help命令的name引數,例如:

Get-Help –Name Update-Help

極客學校:學習如何用powershell自動化windows

你可能想知道如何解釋所有的文字無論如何,我的意思是,為什麼有兩個在語法部分下的資訊很多,為什麼有這麼多括號的地方?首先:syntax部分下有兩個資訊塊的原因是它們表示執行命令的不同方式。這些技術上稱為引數集,一次只能使用一個(不能混合來自不同集的引數)。在上面的螢幕截圖中,您可以看到頂部的引數集有一個SourcePath引數,而底部的引數集沒有。原因是,如果您正在從網路上已下載的另一臺計算機更新幫助檔案,您將使用頂部的引數集(包括SourcePath的引數集),如果您只想從Microsoft獲取最新的檔案,則無需指定源路徑。

為了回答第二個問題,有一個特定的語法幫助檔案遵循,這裡是:

  • 引數名及其型別周圍的方括號表示它是可選引數,如果沒有它,命令將正常工作。
  • 引數名稱周圍的方括號表示引數是位置引數。
  • 尖括號中引數右邊的東西告訴您引數所期望的資料型別。

雖然您應該學習閱讀幫助檔案語法,但如果您不確定某個特定引數,只需在get help命令的末尾附加–Full,然後向下滾動到parameters部分,在那裡它將告訴您有關每個引數的更多資訊。

Get-Help –Name Update-Help –Full

極客學校:學習如何用powershell自動化windows

關於幫助系統,您最不需要知道的是如何使用它來發現命令,這實際上非常簡單。你看,PowerShell幾乎在任何地方都接受萬用字元,所以將它們與Get-Help命令一起使用可以讓你輕鬆地發現命令。例如,我正在尋找處理Windows服務的命令:

Get-Help –Name *service*

極客學校:學習如何用powershell自動化windows

當然,所有這些資訊可能不是蝙蝠所能提供的,但是相信我,花點時間學習如何使用幫助系統。它隨時都會派上用場,即使是那些已經做了多年的高階編劇。

安全

如果不提到安全性,這就不是一個恰當的介紹。PowerShell團隊最擔心的是,PowerShell會成為指令碼小子們最新、最強大的攻擊點。他們已經採取了一些安全措施,以確保這不會發生,所以讓我們看看他們。

最基本的保護形式來自這樣一個事實:PS1副檔名(用於表示PowerShell指令碼的副檔名)沒有在PowerShell主機上註冊,實際上是在Notepad上註冊的。這意味著如果你雙擊一個檔案,它將開啟記事本而不是執行。

其次,不能只輸入指令碼的名稱就從shell執行指令碼,必須指定指令碼的完整路徑。因此,如果要在C驅動器上執行指令碼,必須鍵入:

C:\runme.ps1

或者,如果您已經在C驅動器的根目錄下,則可以使用以下命令:

.\runme.ps1

最後,PowerShell有一個叫做執行策略的東西,它可以阻止您執行任何舊指令碼。事實上,預設情況下,您不能執行任何指令碼,如果希望允許您執行指令碼,則需要更改執行策略。有4個值得注意的執行策略:

  • 受限:這是PowerShell中的預設配置。此設定意味著無論指令碼的簽名如何,都不能執行任何指令碼。使用此設定,唯一可以在PowerShell中執行的是單個命令。
  • AllSigned:此設定不允許指令碼在PowerShell中執行。指令碼必須具有來自可信釋出者的關聯數字簽名。在從受信任的釋出者執行指令碼之前,將出現一個提示。
  • RemoteSigned:此設定允許執行指令碼,但要求從Internet下載的指令碼和配置檔案具有來自受信任釋出者的關聯數字簽名。從本地計算機執行的指令碼不需要簽名。在執行指令碼之前沒有提示。
  • 無限制:這允許執行未簽名的指令碼,包括從Internet下載的所有指令碼和配置檔案。這將包括來自Outlook和Messenger的檔案。這裡的風險是執行沒有任何簽名或安全性的指令碼。我們再次建議您不要使用此設定。

要檢視當前執行策略的設定,請開啟PowerShell控制檯並鍵入:

Get-ExecutionPolicy

極客學校:學習如何用powershell自動化windows

對於本課程和大多數其他情況,RemoteSigned策略是最好的,因此請繼續使用以下命令更改策略。

注意:這需要從提升的PowerShell控制**成。

Set-ExecutionPolicy RemoteSigned

極客學校:學習如何用powershell自動化windows

這一次就到此為止了,各位,明天見,我們會有更多的動力地獄的樂趣。


免責宣告:PowerShell命令的正確術語是cmdlet,從現在起,我們將使用這個正確的術語。在這個介紹中,把它們稱為commands更合適。


如果你有任何問題,可以發推特給我@taybgibb,或者只留下評論。

  • 發表於 2021-04-11 23:23
  • 閱讀 ( 55 )
  • 分類:網際網路

你可能感興趣的文章

如何在Windows10中自動連線到特定應用的vpn

使用Windows10的PowerShellcmdlet,您可以輕鬆地新增應用程式,以便在啟動時自動觸發VPN連線。自動化這個任務意味著當你使用某些應用程式時,你甚至不必考慮連線到VPN。 要利用PowerShell中的此功能,如果您還沒有VPN服務,則必須...

  • 發佈於 2021-04-02 15:58
  • 閲讀 ( 85 )

如何在windows powershell中使用命令歷史記錄

Windows PowerShell具有內建的命令歷史記錄功能,可提供有關已執行命令的詳細資訊。與命令提示符一樣,PowerShell只記住當前會話的命令歷史記錄。 如何使用命令列緩衝區 相關:極客學校:學習如何用PowerShell自動化Windows PowerShel...

  • 發佈於 2021-04-08 03:50
  • 閲讀 ( 82 )

如何在windows中批次重新命名多個檔案

...以輕鬆地重新命名一個或多個檔案,但使用命令提示符或PowerShell,您還可以執行更多操作。再加上第三方重新命名工具,可能性是無窮的。讓我們看看每個選項及其工作原理。 在windows資源管理器中重新命名多個檔案 Windows資...

  • 發佈於 2021-04-08 21:05
  • 閲讀 ( 59 )

如何在windows上建立已安裝程式的列表

....1和7上執行此操作的幾種不同方法。 簡單的方法:使用powershell命令 相關:極客學校:學習如何用PowerShell自動化Windows PowerShell是Windows中最強大的工具之一,所以它當然可以做一些簡單的事情,比如列出你安裝的程式。事實上...

  • 發佈於 2021-04-09 18:20
  • 閲讀 ( 55 )

如何修復windows應用商店中卡住的下載

...嘗試執行它。這不需要太多時間,可能會有幫助。 向powershell重新註冊windows應用商店 如果所有這些都失敗了,您可以嘗試重新註冊Windows應用商店,這是您可以重新安裝它。為此,您需要使用PowerShell,這是一種內置於Windows中...

  • 發佈於 2021-04-09 18:36
  • 閲讀 ( 41 )

21 windows管理工具說明

...題,通常可以透過更換至少一個柱塞杆來解決。 windows powershell(x86) PowerShell是一種高階指令碼環境。對於那些在Windows上真正需要命令列介面的人來說,PowerShell是Windows命令提示符的強大繼承者。如果您不需要一個強大的命令...

  • 發佈於 2021-04-11 07:55
  • 閲讀 ( 53 )

powershell與windows命令提示符的區別

Windows7增加了PowerShell,一種比命令提示符更強大的命令列shell和指令碼語言。自Windows7以來,PowerShell變得更加突出,它甚至成為Windows10的預設選擇。 PowerShell比傳統的命令提示符更復雜,但它也更強大。命令提示符明顯不如Linux...

  • 發佈於 2021-04-11 20:41
  • 閲讀 ( 89 )

如何建立一個測試實驗室,讓你可以跟隨極客學校(不破壞你的電腦)

我們的極客學校文章可能會變得相當複雜,沒有理由在你自己的臺式電腦上做大量瘋狂的事情。相反,你可以像我們一樣建立虛擬機器來進行所有測試。下面是如何做到這一點。 您甚至可以將多個虛擬機器連線在一起,因此只...

  • 發佈於 2021-04-11 21:51
  • 閲讀 ( 46 )

極客學校:寫你的第一個完整的powershell指令碼

...的計算機上一次啟動的時間。在上一次安裝Geek School for PowerShell時,我們將編寫一個可重用的PowerShell命令來完成同樣的任務。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如...

  • 發佈於 2021-04-11 22:17
  • 閲讀 ( 50 )

極客學校:學習如何擴充套件powershell

PowerShell為您提供了兩種擴充套件shell的方法。您可以使用管理單元,它是二進位制的,並且是用成熟的程式語言(如C#)開發的,也可以使用模組,它可以是二進位制的,也可以是基於指令碼的。 請務必閱讀本系列之前的文章...

  • 發佈於 2021-04-11 22:25
  • 閲讀 ( 70 )
zdqd1245689
zdqd1245689

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦