Windows Server System 系統管理之命令列工具

**作者:**賴榮樞
goodman_lai@yahoo.com

我曾以《Windows Server System 的系統管理工具與 MMC》對 Windows Server System 的管理工具起了個頭,在那篇文章,我說明了 Windows Server System 圖形化的 MMC 管理工具。圖形化的操作方式是最為 Windows 使用者或管理者所熟悉,而圖形化的操作方式也是 Windows 崛起的重要原因之一。

但如同我之前所言:戰士在面臨各種不同的狀況,需要不同的武器;圖形化的操作方式相當直覺,也容易學會、使用,但圖形化的操作方式對某些情況就顯得力有未逮了,特別是當系統或整個組織的電腦環境越來越龐大,系統管理的工作就會相形複雜且繁瑣,在這種情況之下,命令列工具或腳本程式(script)等系統管理方式的優點便立刻被凸顯了。

為此,微軟也強化了 Windows Server System 命令列工具和腳本程式的系統管理功能,讓 Windows Server System 也能適合大型或複雜的電腦環境,並減輕系統管理人員的負擔。舉凡磁碟、系統事件記錄、登錄資料庫、群組原則、程式形成、印表機、分頁檔案、共用資料夾、IIS、網路、Active Directory 等等,都可以利用命令列工具或腳本程式來管理。

本頁內容

Windows Server 2003 內建的命令列工具
Windows Server 2003 Support Tools
從命令列存取 WMI
管理者必備的命令列工具
結語

Windows Server 2003 內建的命令列工具

命令列工具要在『命令提示字元』環境執行,Windows Server 2003 內建的命令列工具相當多,完整的命令列工具以及使用細節,可以參考 Windows Server 2003 的 %windir%\help 資料夾裡面的 ntcmds.chm(如圖 1),這個線上說明檔案詳列了 Windows Server 2003 內建的命令列工具,除了完整的命令列工具使用參考內容之外,也詳列了新增的命令列工具、已被廢除的命令列工具,也說明了命令列工具的基本使用概念,和命令列工具執行環境的設定方式。您也可以在 TechNet 網站的 Microsoft Windows Server 2003 TechCenter 找到可能更新過的英文內容(詳細資料請連上 Command-line reference)。

圖 1:Windows Server 2003 內建命令列工具的說明(ntcmds.chm)

圖 1:Windows Server 2003 內建命令列工具的說明(ntcmds.chm)

Windows Server 2003 Support Tools

除了內建的命令列工具之外,Windows Server 2003 Support Tools 也包含了相當多的命令列工具(以及腳本程式),這些工具都相當實用。您可以在 Windows Server 2003 原版光碟的 SUPPORT\TOOLS 資料夾找到 Windows Server 2003 Support Tools,只要執行資料夾裡面的 SUPTOOLS.MSI,就可以將 Windows Server 2003 Support Tools 安裝到系統。

安裝程式也會在『開始/所有程式』建立『Windows Support Tools』資料夾,執行裡面的 Support Tools Help 就會列出 Windows Server 2003 Support Tools 完整而詳細的英文說明(如圖 2)。如果您是第一次接觸 Windows Server 2003 Support Tools,建議先看看 Introduction 的內容,而這份英文說明除了在 Alphabetical List of Tools 以英文字母順序詳列所有的命令列工具,也分門別類的列出各種工具,包括:Active Directory Management Tools、Disk and Data Management Tools、File and Folder Management Tools、Hardware Management Tools、Internet Services Management Tools、Network Services Management Tools、Performance Monitoring Tools、Printer and Fax Management Tools、Process and Service Management Tools、Remote Administration Tools、Security Management Tools、Software and System Deployment Tools、System Management Tools 等類型,非常方便系統管理者找到適當的工具。

圖 2:Windows Server 2003 Support Tools 的說明

圖 2:Windows Server 2003 Support Tools 的說明

Windows Server 2003 Support Tools 裡面的工具程式通常會隨著 Service Pack 的推出而改版,因此當您為系統安裝 Service Pack 之後,也應該找找 Service Pack 光碟的 SUPPORT 資料夾,或上網下載新版的 Windows Server 2003 Support Tools。您應該安裝與 Windows Server 2003 相同語系的 Windows Server 2003 Support Tools,而且安裝之前必須先移除舊版的 Windows Server 2003 Support Tools。

從命令列存取 WMI

WMI(Windows Management Instrumentation)是微軟根據 DMTF(Distributed Management Task Force)所制訂的 Web-based Enterprise Management(WBEM)為基礎的實作。話說眾多的系統、周邊、網路、通訊等軟硬體大廠為了讓系統管理人員便於管理大型的企業網路,便聯合組成 DMTF,希望透過 DMTF 制訂出讓大廠共同遵守的規格,進而簡化資訊產品之間的溝通與聯繫。

因此,WBEM 便是 DMTF 所制訂的規格,而各個大廠便再根據這項共通的規格,各自實作自己的管理介面、甚至管理工具。WMI 便是微軟根據 DMTF/WBEM 的實作。除了微軟、除了 Windows 之外,還有許多微軟的產品、以及許多廠商也都支援 WBEM。例如微軟的 Exchange Server 和 System Management Server 也都開始支援 WMI,而其他如英特爾、Computer Associates、昇陽、IBM、HP 等公司也已經開始實作自己的 WBEM,並且用在自身的資訊產品之中。

就實用或使用的角度而言,WMI 其實是一組龐大的物件模組(Object Model),透過這組物件模組,就可以掌控整個 Windows 系統的軟硬體資源,包括目前登入的使用者、執行中的行程或服務、連線的印表機、磁碟空間等等。

WMI 的架構

如果包含利用 WMI 來管理系統的程式,整個 WMI 的架構一共有四層(如圖 3),不過 WMI 的核心部分則是圖 3 的中間兩層。

圖 3:WMI 的架構

圖 3:WMI 的架構

  • 利用 WMI 的程式:如前所述,WMI 其實是一組龐大的物件模組,而這個層級所在的便是呼叫、使用 WMI 物件模組的程式。程式設計師或系統管理者可以使用 C、C++、Visual Basic、Delphi 等 Windows 程式語言或開發工具,也可以利用 VBScript、JavaScript 或 PerlScript 等描述語言來開發這個層級的程式,也可以直接透過命令列工具來存取。

  • WMI Object Model:這個層級便是之前提過的 WMI 物件模組。

  • WMI Provider:WMI 物件模組之所以得以發揮作用,全都是因為 WMI Provider 提供了相關的必要資訊,因此系統廠商如果要讓他們的產品可以透過 WMI 物件模組加以存取、控制,就必須為他們的產品提供 WMI Provider。

  • Managed System:這個層級指的是被 WMI 管理的部分。它可能是 Windows 作業系統的行程、服務,或者是安裝在 Windows 的硬體周邊設備。不論是 Windows 系統上的軟體或硬體資源,都必須透過各自的 WMI Provider,將相關的資訊或規格提供給 WMI Object Model,以便程式設計師或系統管理者藉以掌控。

WMI Provider

之前提過 WMI 物件模組之所以得以發揮作用,是因為 WMI Provider 提供了相關的必要資訊,因此系統廠商如果要讓他們的產品可以透過 WMI 物件模組加以存取、控制,就必須為他們的產品提供 WMI Provider。

  • Win32 Provider:Win32 Provider 提供了核心、基本的 Windows 系統管理功能,舉凡作業系統、周邊裝置、檔案系統等等的功能,都是由 Win32 Provider 所提供。例如之前列出所有執行中的行程範例,也是透過 Win32 Provider 而完成。

  • Disk Quota Provider 管理磁碟限額的 WMI Provider。

  • Event Log Provider:Event Log Provider 提供了記錄系統事件的相關功能;它可以讓您讀取系統所記錄的事件、調整事件記錄選項,也可以掌控事件記錄的備份狀況。

  • Internet Information Services Provider:管理 IIS 的 WMI Provider。

  • Registry Provider:Registry Provider 讓 WMI 物件模組具備建立、讀取和寫入系統登錄資料庫的能力。

  • Printing Provider:管理印表機的 WMI Provider。

  • Performance Counter Provider:Performance Counter Provider 讓 WMI 物件模組具備瞭解系統效能的功能。

  • Active Directory Provider:顧名思義,Active Directory Provider 提供了存取 AD 服務的功能。

  • Active Directory Replication and Trust Provider。

  • Terminal Server (TS) and TS Time Zone Redirection Provider。

  • Windows Installer Provider:Windows Installer 是微軟新制訂的視窗安裝程式設計規格,而這組 Provider 則可以讓 WMI 物件模組掌控系統內的程式安裝狀況—當然,程式必須是以 Windows Installer 規格,才能被監控。

  • Volume Shadow Copy Provider。

  • SNMP Provider:SNMP(Simple Network Management Protocol)是網路管理的業界標準,而 SNMP Provider 則讓 WMI 物件模組具備 SNMP 的網管功能。

除了透過程式來控制 WMI 而達到系統管理的目的,也可以利用 WMIC 這個命令列工具。WMIC 提供了兩種操作模式,一種是互動模式,只要在『命令提示字元』輸入 WMIC 再按下 Enter 按鍵,就會進入互動模式。互動模式會等待管理者進一步的輸入 WMI 命令,此時輸入 /? 則會顯示說明訊息。如圖 4 是個取得特定主機(formosa)C 磁碟機可用空間的簡單範例,上半部是互動模式的執行結果;輸入 QUIT 可以結束 WMIC 的互動模式。

圖 4:WMIC 互動模式使用範例

圖 4:WMIC 互動模式使用範例

另一種是非互動的執行模式,是直接以 WMIC 執行 WMI 命令,執行完畢即返回命令提示字元。同上例,就是直接在提示字元輸入 wmic /node:formosa logicaldisk where(deviceid="c:") get deviceid,freespace 並按下 Enter 按鍵;如圖 4 下半部即為執行結果。

管理者必備的命令列工具

除了可以利用上述的線上說明文件查詢命令列工具的使用方式之外,也可以利用 /? 選項(option)即時的查詢該命令的使用方式,例如在『命令提示字元』視窗輸入 net /? 再按下 Enter 按鍵,隨時會顯示 net 的使用語法。

包括內建與 Windows Server 2003 Support Tools 在內的命令列工具數量相當多,如果您剛接觸命令列工具,可以利用如圖 2 所列的分類尋找適當的工具。以下我將列出並簡要說明常用的命令列工具。

  • IPCONFIG:如果沒有使用任何參數,這個工具可以顯示系統目前所有的 TCP/IP 網路設定值,加上 /all 參數將可顯示更詳細的網路設定值。此外,也可以利用 /renew 參數重新取得 IP 位址,/release 參數可以釋放 DHCP 設定值和 IP 位址。

  • PING:以「網際網路控制訊息通訊協定」(ICMP)的「回應要求」訊息,測試目的電腦的 TCP/IP 連線狀況。

  • TRACERT:顯示本機與目的電腦之間的路徑。這個命令列工具是以逐漸遞增的「存留時間」(TTL)欄位值傳送「網際網路控制訊息通訊協定」(ICMP)的「回應要求」訊息到目的電腦。

  • PATHPING:顯示本機與目的電腦之間的網路路徑,以及封包遺失的相關資訊。這個命令列工具也是向目的電腦傳送上述的「回應要求」訊息,並且執行與 TRACERT 相同的功能,再定期 ping 所有的路由器,並且統計路由器傳回的資訊。

  • ARP:顯示或設定 Address Resolution Protocol 快取中的 IP 位址與實體位址的對應。

  • ROUTE:顯示或修改本機 IP 路由表。

  • HOSTNAME:顯示電腦的主機名稱。

  • WHOAMI:顯示目前系統的網域名稱、電腦名稱、使用者名稱、群組名稱、燈入識別元、特殊權限。

  • DNSCMD:顯示或修改 DNS 服務的設定值,由 Windows Server 2003 Support Tools 提供。

  • NET:提供 20 多種網路功能的命令列工具,其中最常用的包括 NET SEND(傳送訊息給已經登入特定系統的使用者)、NET START(啟動系統的服務)、NET STOP(停止系統的服務)、NET TIME(顯示目前系統的時間,或者與其他電腦同步系統時間)、NET USE(連接或中斷其他電腦共享出來的資源)、NET VIEW(顯示系統的網路資源)。每個 NET 的子功能都可以用 NET HELP 再加上子功能而查到,例如 NET HELP SEND 會顯示 NET SEND 的使用說明。

  • NETSH:顯示或管理本機或遠端主機的的網路設定。這個工具和 NET 是管理網路的最重要工具。您可以參考《如何使用 Netsh.exe 工具和命令行切換指令》。

  • NETSTAT:顯示目前 TCP/IP 網路連線及相關協定的統計值。

  • DIR:顯示目錄裡的目錄及檔案清單,也可以指定要顯示的範圍和檔案或目錄的類型。

  • WHERE:在指定的範圍尋找符合條件的檔案位置,如果沒有指定尋找範圍,預設是目前的目錄和 PATH 環境變數。

  • SYSTEMINFO:顯示本機或目的電腦系統資訊,包括主機名稱、網域名稱、作業系統名稱、作業系統版本、作業系統識別碼、處理器、實體記憶體空間、可用實體記憶體空間、分頁檔、已安裝的 Hotfix、網路卡相關資訊等等。可以利用轉向字元(>)將結果存到文字檔。

  • COPY/XCOPY:複製檔案、目錄的命令列工具。

  • GPUPDATE:重新整理本機群組原則和存放在 Active Directory 的群組原則設定(也包括安全設定)。如果更動了群組原則卻發現不如預期生效,可以試試這個命令列工具,以重整群組原則設定。

  • BOOTCFG:顯示或更改系統的開機設定檔 boot.ini。

  • SHUTDOWN:這個命令列工具讓管理者可以關機、重開機、強迫結束執行中的程式,它也可以設定倒數關機的時間,並且可以在倒數的時間內中止關機。

結語

雖然 Windows Server System 提供了相當優異的圖形化管理操作工具,但同樣也提供了非常完整的命令列工具,對於管理大型、複雜的電腦環境特別有用,而對於原本熟悉 UNIX 或 Linux 系統的管理者來說,藉由命令列工具也能較快熟悉 Windows 系統管理。

Windows Server System 命令列工具的功能已經比以往提升許多,每個工具都可以利用 /? 顯示詳細的使用說明,並且具有一致的操作方式,也大多具備管理遠端電腦的能力。不過對許多日常性的管理作業來說,結合命令列工具的批次檔,以及腳本程式的管理方式,往往是更佳的選擇,而我也會找機會談談這些主題。