Windows PowerShell關鍵學習指引

雖然Windows的圖形介面可讓使用者很方便地進行各類操作上的需求,但是對於專業IT人員來說,許多日常維護工作恐怕無法完全透過圖形介面來完成,必須善用Windows PowerShell命令介面來協助達成各種自動化管理與批次管理上的進階需求。本文將說明Windows PowerShell的安裝方式和使用範例。

在磁碟的管理中,若要取得目前指定路徑下的所有檔案(包括隱藏的檔案與資料夾)、資料夾路徑資訊,可以如圖19所示輸入「Get-ChildItem -Path C:\Windows -Force -Recurse」,其中的Force參數,便是用以顯示位於Windows資料夾下所有隱藏的檔案與資料夾。


▲圖19 列出所有的子資料夾與檔案。

在Windows PowerShell中對於任何資訊的取得,一旦陳列出來的資訊太多時,如果有可以進行翻頁的機制是不是會更方便呢?在此以取得「Windows\System32」資料夾下的所有檔案清單為例進行示範。如圖20所示,只要在管線之後輸入「Out-Host -Paging」即可,由範例中可以清楚看到,在頁面的下方會出現可進行顯示下一頁或下一行的按鍵,其中的代表〔Enter〕按鍵。


▲圖20 使用分頁顯示功能。

對於檔案資料夾的管理,除了可以取得指定路徑下的清單外,也能夠用來建立新的資料夾或檔案。如圖21所示,下達「New-Item -Path 'C:\temp\New Folder' -ItemType "directory"」命令參數,即可建立「C:\temp\New Folder」的新資料夾。如果所要新增的項目為檔案,只要將-ItemType的參數值改為"File"即可。


▲圖21 新增資料夾與檔案。

前面是關於新增資料夾與檔案的範例,如果想要進行移除,那又該怎麼做呢?其實很簡單!無論是移除資料夾或是檔案,都可以如圖22所示的範例,只要下達「Remove-Item 路徑資料夾或檔案」即可,不過必須注意的是,倘若要移除的資料夾或檔案的命名中包含空格,則必須加上使用雙引號(”)才行。


▲圖22 刪除指定的資料夾。

接著,講解一些與系統資訊取得有關的命令用法。如圖23所示,可以透過下達「Get-WMIObject -Class Win32_ComputerSystem」命令得知目前本機電腦的系統基本資訊,包括所屬的網域名稱、硬體廠商、模組資訊、記憶體大小等等。倘若想要查詢的是網域內的另一部電腦資訊,只要加上「-ComputerName 電腦名稱」即可。


▲圖23 取得指定電腦的資訊。

假若想要取得的是這部電腦的硬體系統架構類型,則使用管線搭配Select-Object命令來篩選特定物件的屬性欄位資訊,然後再加上-Property SystemType參數值。如圖24所示便是藉由此命令與參數的搭配,得知這部電腦為x86的PC。


▲圖24 取得指定電腦的系統類型。

若想取得本機或另一部電腦所設定的當地時間,則如圖25所示輸入「Get-WmiObject -Class Win32_LocalTime -ComputerName 電腦名稱 | Select-Object -Property [a-z]*」命令,其中[a-z]*表示採用欄位由a至z的排序方式來呈現。


▲圖25 取得電腦的當地時間。

在Windows PowerShell中,除了可執行一般的Ping指令來偵測網路電腦的連線回應外,也可以使用本身特有的命令參數來進行這項測試工作。首先,說明針對單一電腦的測試方法。

如圖26所示,輸入「Get-WMIOBject -Class Win32_PingStatus -Filter "Address='168.95.1.1'" -Computer . | Select-Object -Property Address,ResponseTime,StatusCode」,在這個命令中,利用Win32_PingStatus進行Ping的作業,而透過管線後的Select-Object來取得IP位址、回應時間以及狀態碼欄位資訊。


▲圖26 Ping單一電腦回應。

如果透過如此複雜的命令參數,只是為了Ping單一電腦的回應狀態,那倒不如使用原有的Ping命令就好。因此,接著來看看如何透過類似的命令語法,來Ping指定的IP網段範圍。

如圖27所示,進一步透過ForEach-Object迴圈命令的方式,來Ping指定的網路IP啟始168.95.1.10到168.95.1.254的範圍,就會比原有的Ping命令更好用了。


▲圖27 Ping指定的IP網路區段。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!