雖然Windows的圖形介面可讓使用者很方便地進行各類操作上的需求,但是對於專業IT人員來說,許多日常維護工作恐怕無法完全透過圖形介面來完成,必須善用Windows PowerShell命令介面來協助達成各種自動化管理與批次管理上的進階需求。本文將說明Windows PowerShell的安裝方式和使用範例。
在Windows PowerShell的管理中,對於命令的下達,最常見的不外乎是以Get或Set為開頭的命令。
當想要檢視以某些字串開的命令,就可以如圖11所示透過「Get-Command -Verb」來取得,例如想要得到全部以Get開頭的命令清單,則輸入「Get-Command -Verb Get」。
|
▲圖11 查看所有以GET開頭的命令。 |
上一個範例是列出特定命令開頭的命令清單,接下來要看的是關於以特定命令為結尾的命令清單。如圖12所示,同樣是下達Get-Command命令,但是搭配-Noum為參數來取得所有以Item為結尾的命令清單。
|
▲圖12 查看所有以Item字眼為結尾的命令。 |
關於取得以特定命令為結尾的命令清單,再以另一個範例來做說明。如圖13所示,下達「Get-Command -Noum Object」命令參數來列出所有以Object為結尾的命令清單,其中的Select-Object便是往後會最常用到的命令。
|
▲圖13 查看所有以Object字眼為後段的命令。 |
除了取得以特定命令字眼為開頭或結尾的命令清單外,系統管理人員通常都希望可以看到一些針對指定命令的使用範例說明。
以圖14範例中所下達的「Help Get-WmiObject -example」命令參數為例,便是取得Get-WmiObject 這個命令的幾個範例說明。
|
▲圖14 查看特定命令的使用範例。 |
緊接著,要與大家分享的是命令別名的使用。關於命令別名的使用,在UNIX的作業環境中是相當普遍的,因為它可以簡化許多較長原始命令的下達方式,更重要的是,除了使用內建的命令別名外,系統管理員也能夠自行新增別名的設定。
想要知道系統預設有哪些命令別名可以使用,只要如圖15所示輸入「Get-Alias」來取得即可。至於針對一些相容於UNIX環境內的常見命令,同樣也可以在Windows PowerShell下達,這部分請參考表2的說明。
|
▲圖15 取得所有預設的別名清單。 |
表2 Windows PowerShell內可用的Cmd.exe和UNIX命令
這麼多的命令可以在Windows PowerShell與UNIX作業環境來下達,如圖16所示的範例便是最簡單也是最常用的dir命令,當然也可以下達ls命令。由此發現其呈現資料夾與檔案的方式,與UNIX頗為相似。
|
▲圖16 顯示目前路徑中的資料夾與檔案。 |
如果想要針對某些常用的命令設定別名,只要透過Set-Alias來設定即可,例如下達「Set-Alias -Name gi -Value Get-Item」,則別名gi便可以簡化取代系統預設的Get-Item命令。但是,系統內建的這些別名設定無法進行修改,否則會出現錯誤訊息。
接下來,介紹其他更進階的命令使用範例。首先是關於本機磁碟清單資訊的取得部分。如圖17所示,下達「Get-WinObject -Class Win32_LogicDisk」命令參數來取得目前本機內所有連接的磁碟,包括固定式磁碟、卸除式磁碟以及光碟機等等。從範例中除了可以看到這一些磁碟目前的容量與剩餘的可用空間外,還可以發現它們都有各自的裝置類型編號,例如固定式磁碟=3、卸除式磁碟=2等等。
|
▲圖17 查看磁碟相關資訊。 |
緊接著前一個操作範例,如果眼前所查詢出來的磁碟類型相當多又不易檢視,這時候可以透過篩選的方式列出所需要的即可。如圖18所示,筆者下達「Get-WMIObject -Class Win32_LogicalDisk -Filter "DriveType=3" | FT」命令參數,其中關鍵性的參數在於Filter的使用,以資料表的方式來呈現出目前本機內的所有固定磁碟資訊,主要用來查看每一個磁碟所剩餘的磁碟空間大小。
|
▲圖18 只查看固定磁碟的資訊。 |