如果您已經透過命令提示符使用ipconfig或ping,那麼您就已經成為PowerShell忍者的一半了。所以,來加入我們,因為我們發現在這個安裝的極客學校cmdlet。
請務必檢視我們介紹PowerShell的第一篇文章,並在一週內繼續關注本系列的其餘部分。
在本系列的第一部分中,我們看到了一個類似以下內容的cmdlet:
Update-Help
PowerShell cmdlet有一個動詞-名詞語法,如上圖所示。需要注意的重要一點是,儘管cmdlet可能返回多個結果,但名詞始終是單數。要檢視PowerShell中的合法動詞列表,可以使用Get-Verb cmdlet。
瞭解合法動詞並記住單數名詞規則確實有助於猜測cmdlet名稱。例如,假設您想要獲取服務及其狀態的列表—沒錯,這和獲取服務一樣簡單。您認為我們將如何獲得一個正在執行的程序列表—沒錯,get Process就可以做到這一點。
Get-Process
這使得使用任何技術都非常容易。例如,如果已載入Exchange cmdlet,我們可以使用以下命令輕鬆獲取伺服器上的郵箱列表:
Get-Mailbox
不過,也有例外。撇開交換不談,所有其他特定於技術的命令都需要字首。例如,如果我們想獲取當前透過遠端桌面登入的使用者,我們可以鍵入:
Get-RDUserSession
可以在下面的截圖中看到。
注意:這個螢幕截圖是在一個Server2012盒子上拍攝的,因為在那裡您可以找到大多數特定於技術的模組。
不久前,我讀了PowerShell教父Don Jones的一篇文章,他在文章中解釋說,Exchange在將這個字首新增到cmdlet之前就已經發布了,所以它從來沒有實現過它們,也永遠不會實現。
PowerShell的另一個特性是,如果願意的話,可以使用多種方式運行同一個命令–別名。關於它們的可怕之處在於,它們包含了許多您可能在命令提示符中使用的命令,以及一些Linux別名。例如,在PowerShell中,我們可以使用以下命令獲取目錄列表:
Get-ChildItem
習慣使用命令提示符嗎?別擔心,他們會保護你的。
有Linux背景嗎?他們也在那裡掩護你。
當你已經編寫了幾年的指令碼,你往往會變得懶惰,並開始使用別名很多,但這並不能幫助新手誰將要閱讀我們的程式碼。要檢視別名在引擎蓋下執行的命令,可以使用以下命令:
Get-Alias –Name ls
另一方面,如果您覺得是時候升級遊戲了,可以使用definition引數獲取cmdlet的所有別名:
Get-ChildItem –Definition Get-ChildItem
如果您來自其他背景,可以透過執行以下操作新增自己的別名:
New-Alias –Name icanhazfilez –Value Get-ChildItem
顯然,您需要將“icanhazfilez”替換為新別名的名稱,並使用希望它在後臺執行的cmdlet Get ChildItem。
需要注意的一點是,關閉shell時將丟失已定義的所有別名。您可以透過將它們的定義新增到配置檔案指令碼中來繞過此問題。
Windows PowerShell還允許您截斷引數名稱,直到它們變得模稜兩可為止,也就是說,直到PowerShell無法再找出您所談論的引數為止。例如:
Get-Service -Name ‘Apple Mobile Device’ -ComputerName localhost
同:
Get-Service -Na ‘Apple Mobile Device’ -Com localhost
如果您有任何機會使引數名稱太模糊,您將得到一個錯誤。
最後,您所知道和喜愛的命令仍將在PowerShell中工作。
ping www.google.com
請記住,像ping這樣的遺留應用程式會輸出一個字串,使用PowerShell cmdlet通常有更好的方法來完成同樣的任務。
我們現在只剩下一個物件,而不是輸出一長串文字,我們將在明天的Geek School版本中看到這個物件。
大多數使用者從未聽說過PowerShell,更不用說觸控它並試用了。這可能是因為這個名字,聽起來像是隻有鐵桿IT極客才會使用的東西。或者是因為PowerShell的好處還不清楚。可能是因為最初的學習曲線。 ...
使用Windows10的PowerShellcmdlet,您可以輕鬆地新增應用程式,以便在啟動時自動觸發VPN連線。自動化這個任務意味著當你使用某些應用程式時,你甚至不必考慮連線到VPN。 要利用PowerShell中的此功能,如果您還沒有VPN服務,則必須...
Windows PowerShell具有內建的命令歷史記錄功能,可提供有關已執行命令的詳細資訊。與命令提示符一樣,PowerShell只記住當前會話的命令歷史記錄。 如何使用命令列緩衝區 相關:極客學校:學習如何用PowerShell自動化Windows PowerShel...
Windows10包括一個內建在PowerShell中的包管理工具。在最終版本中,它被命名為“PackageManagement”,但它仍然基於一個名為OneGet的開源專案。 PackageManagement(aka OneGet)在技術上不是包管理器。它是一個包管理器—一個框架和一組Powe...
...論您是在Linux上使用bashshell,在Windows上使用命令提示符或PowerShell,還是在macosx上使用終端視窗。 此功能可以極大地幫助您加快鍵入命令的速度。只需在鍵入命令、選項或檔名時單擊Tab,shell環境就會自動完成您鍵入的內容或向...
Windows7增加了PowerShell,一種比命令提示符更強大的命令列shell和指令碼語言。自Windows7以來,PowerShell變得更加突出,它甚至成為Windows10的預設選擇。 PowerShell比傳統的命令提示符更復雜,但它也更強大。命令提示符明顯不如Linux...
我們的極客學校文章可能會變得相當複雜,沒有理由在你自己的臺式電腦上做大量瘋狂的事情。相反,你可以像我們一樣建立虛擬機器來進行所有測試。下面是如何做到這一點。 您甚至可以將多個虛擬機器連線在一起,因此只...
...的計算機上一次啟動的時間。在上一次安裝Geek School for PowerShell時,我們將編寫一個可重用的PowerShell命令來完成同樣的任務。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如...
PowerShell為您提供了兩種擴充套件shell的方法。您可以使用管理單元,它是二進位制的,並且是用成熟的程式語言(如C#)開發的,也可以使用模組,它可以是二進位制的,也可以是基於指令碼的。 請務必閱讀本系列之前的文章...
PowerShell有四種類型的作業—後臺作業、遠端作業、WMI作業和計劃作業。加入我們,瞭解它們是什麼以及如何使用它們。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如何在Po...