在這個版本的Geek School中,我們將幫助您瞭解構建在Windows中的強大PowerShell指令碼語言,它在IT環境中非常有用。
雖然本系列文章不是圍繞考試展開的,但學習PowerShell是作為網路管理員可以做的最重要的事情之一,因此,如果有一件事你想學習,以幫助你的IT職業生涯,那就是它。另外,這很有趣。
PowerShell是微軟提供的最強大的自動化工具,它既是shell,又是指令碼語言。
請注意,此係列基於PowerShell 3,它與Windows 8和Server 2012一起提供。如果您執行的是Windows 7,請在繼續之前下載PowerShell 3更新。
有兩種與PowerShell進行即時互動的方式:控制檯和整合指令碼環境(也稱為ISE)。ISE與PowerShell 2附帶的可怕版本相比有了很大的改進,可以透過按Win+R鍵盤組合開啟run框,然後鍵入PowerShell\u ISE並按enter來開啟。
正如您所看到的,ISE使用了一個分割檢視,這樣您可以快速編寫指令碼,同時仍然可以在ISE的下半部分看到結果。ISE的下半部分(列印指令碼結果的地方)也可以用作REPL提示符,與命令提示符非常相似。V3ISE最終在指令碼窗格和互動控制檯中添加了對intellisense的支援。
或者,您可以使用PowerShell控制檯與PowerShell進行互動,這也是我將在本系列的大部分內容中使用的控制檯。PowerShell控制檯的行為與命令提示符非常相似—您只需輸入命令,它就會輸出結果。要開啟Windows PowerShell控制檯,請再次按Win+R鍵盤組合開啟一個執行框,鍵入PowerShell,然後按enter。
像這樣的REPL提示對於即時滿足來說是很棒的:輸入一個命令就可以得到結果。儘管控制檯不提供intellisense,但它確實提供了一種稱為tab completion的功能,其功能基本相同—只需開始鍵入命令,然後按tab鍵在可能的匹配項之間迴圈。
在以前版本的PowerShell中,安裝Windows時會包含幫助檔案。這在很大程度上是一個很好的解決方案,但給我們留下了一個重大的問題。當PowerShell幫助團隊不得不停止處理幫助檔案時,PowerShell開發人員仍然忙於編寫程式碼和進行更改。這意味著在PowerShell釋出時,幫助檔案是不正確的,因為它們不包含對程式碼所做的較新更改。為了解決這個問題,PowerShell 3沒有現成的幫助檔案,並且包含了一個可更新的幫助系統。這意味著在您做任何事情之前,您都需要下載最新的幫助檔案。您可以透過開啟PowerShell控制檯並執行:
Update-Help
恭喜你運行了你的第一個PowerShell命令!事實上,Update-Help命令有比僅僅執行它更多的選項,要檢視它們,我們需要檢視命令的幫助。要檢視命令的幫助,只需將需要幫助的命令的名稱傳遞給Get help命令的name引數,例如:
Get-Help –Name Update-Help
你可能想知道如何解釋所有的文字無論如何,我的意思是,為什麼有兩個在語法部分下的資訊很多,為什麼有這麼多括號的地方?首先:syntax部分下有兩個資訊塊的原因是它們表示執行命令的不同方式。這些技術上稱為引數集,一次只能使用一個(不能混合來自不同集的引數)。在上面的螢幕截圖中,您可以看到頂部的引數集有一個SourcePath引數,而底部的引數集沒有。原因是,如果您正在從網路上已下載的另一臺計算機更新幫助檔案,您將使用頂部的引數集(包括SourcePath的引數集),如果您只想從Microsoft獲取最新的檔案,則無需指定源路徑。
為了回答第二個問題,有一個特定的語法幫助檔案遵循,這裡是:
雖然您應該學習閱讀幫助檔案語法,但如果您不確定某個特定引數,只需在get help命令的末尾附加–Full,然後向下滾動到parameters部分,在那裡它將告訴您有關每個引數的更多資訊。
Get-Help –Name Update-Help –Full
關於幫助系統,您最不需要知道的是如何使用它來發現命令,這實際上非常簡單。你看,PowerShell幾乎在任何地方都接受萬用字元,所以將它們與Get-Help命令一起使用可以讓你輕鬆地發現命令。例如,我正在尋找處理Windows服務的命令:
Get-Help –Name *service*
當然,所有這些資訊可能不是蝙蝠所能提供的,但是相信我,花點時間學習如何使用幫助系統。它隨時都會派上用場,即使是那些已經做了多年的高階編劇。
如果不提到安全性,這就不是一個恰當的介紹。PowerShell團隊最擔心的是,PowerShell會成為指令碼小子們最新、最強大的攻擊點。他們已經採取了一些安全措施,以確保這不會發生,所以讓我們看看他們。
最基本的保護形式來自這樣一個事實:PS1副檔名(用於表示PowerShell指令碼的副檔名)沒有在PowerShell主機上註冊,實際上是在Notepad上註冊的。這意味著如果你雙擊一個檔案,它將開啟記事本而不是執行。
其次,不能只輸入指令碼的名稱就從shell執行指令碼,必須指定指令碼的完整路徑。因此,如果要在C驅動器上執行指令碼,必須鍵入:
C:\runme.ps1
或者,如果您已經在C驅動器的根目錄下,則可以使用以下命令:
.\runme.ps1
最後,PowerShell有一個叫做執行策略的東西,它可以阻止您執行任何舊指令碼。事實上,預設情況下,您不能執行任何指令碼,如果希望允許您執行指令碼,則需要更改執行策略。有4個值得注意的執行策略:
要檢視當前執行策略的設定,請開啟PowerShell控制檯並鍵入:
Get-ExecutionPolicy
對於本課程和大多數其他情況,RemoteSigned策略是最好的,因此請繼續使用以下命令更改策略。
注意:這需要從提升的PowerShell控制**成。
Set-ExecutionPolicy RemoteSigned
這一次就到此為止了,各位,明天見,我們會有更多的動力地獄的樂趣。
免責宣告:PowerShell命令的正確術語是cmdlet,從現在起,我們將使用這個正確的術語。在這個介紹中,把它們稱為commands更合適。
如果你有任何問題,可以發推特給我@taybgibb,或者只留下評論。
使用Windows10的PowerShellcmdlet,您可以輕鬆地新增應用程式,以便在啟動時自動觸發VPN連線。自動化這個任務意味著當你使用某些應用程式時,你甚至不必考慮連線到VPN。 要利用PowerShell中的此功能,如果您還沒有VPN服務,則必須...
Windows PowerShell具有內建的命令歷史記錄功能,可提供有關已執行命令的詳細資訊。與命令提示符一樣,PowerShell只記住當前會話的命令歷史記錄。 如何使用命令列緩衝區 相關:極客學校:學習如何用PowerShell自動化Windows PowerShel...
...以輕鬆地重新命名一個或多個檔案,但使用命令提示符或PowerShell,您還可以執行更多操作。再加上第三方重新命名工具,可能性是無窮的。讓我們看看每個選項及其工作原理。 在windows資源管理器中重新命名多個檔案 Windows資...
....1和7上執行此操作的幾種不同方法。 簡單的方法:使用powershell命令 相關:極客學校:學習如何用PowerShell自動化Windows PowerShell是Windows中最強大的工具之一,所以它當然可以做一些簡單的事情,比如列出你安裝的程式。事實上...
...嘗試執行它。這不需要太多時間,可能會有幫助。 向powershell重新註冊windows應用商店 如果所有這些都失敗了,您可以嘗試重新註冊Windows應用商店,這是您可以重新安裝它。為此,您需要使用PowerShell,這是一種內置於Windows中...
...題,通常可以透過更換至少一個柱塞杆來解決。 windows powershell(x86) PowerShell是一種高階指令碼環境。對於那些在Windows上真正需要命令列介面的人來說,PowerShell是Windows命令提示符的強大繼承者。如果您不需要一個強大的命令...
Windows7增加了PowerShell,一種比命令提示符更強大的命令列shell和指令碼語言。自Windows7以來,PowerShell變得更加突出,它甚至成為Windows10的預設選擇。 PowerShell比傳統的命令提示符更復雜,但它也更強大。命令提示符明顯不如Linux...
我們的極客學校文章可能會變得相當複雜,沒有理由在你自己的臺式電腦上做大量瘋狂的事情。相反,你可以像我們一樣建立虛擬機器來進行所有測試。下面是如何做到這一點。 您甚至可以將多個虛擬機器連線在一起,因此只...
...的計算機上一次啟動的時間。在上一次安裝Geek School for PowerShell時,我們將編寫一個可重用的PowerShell命令來完成同樣的任務。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如...
PowerShell為您提供了兩種擴充套件shell的方法。您可以使用管理單元,它是二進位制的,並且是用成熟的程式語言(如C#)開發的,也可以使用模組,它可以是二進位制的,也可以是基於指令碼的。 請務必閱讀本系列之前的文章...